Actually, an addon isn’t much more than a combination of at least one of these: persistent scripts, userscripts and userstyles. If any of these are related, then we make them part of the same addon, under a single name. For example, the “Scratch 3 Developer Tools” addon has a userscript in charge of adding a find box to the editor, and a userstyle that adds CSS to that box.
Userscripts are useful to change the behavior of the Scratch website, for example, adding or removing buttons to the navbar.
You might wonder if it’s a better idea to create a new addon, or modify an existing one.
If 2 addons share some of these, they should probably be merged.
- Both need, or don’t need, permissions that require user interaction (like notifications).
- They share lots of code.
- The user would expect that addon to offer both features.
- If being separated, they would interfere with each other.
Remember addons are customizable by the user - adding new functionality does not affect old users of the addon, unless we intentionally make it do so.