| title | Addon Compatibility Checklist | |
|---|---|---|
| aliases |
|
When developing an addon, make sure to review the categories that you're editing for any factors that need to be considered.
New addons that modify the navbar must be compatible with the following addons:
- Customizable navigation bar
- Expandable search bar
Any elements inside <div id="app"> that are modified with a userscript will be wiped and restored to vanilla Scratch when the user switches to the project page. This also happens with other parent divs: for example, when a new button is added to the color picker, then the color picker is closed. The convention is to reinstate custom UI elements by using a while (true) loop with addon.tab.waitForElement like so:
while (true) {
let element = await addon.tab.waitForElement(/* CSS selector of desired parent element from regular Scratch */, {
markAsSeen: true,
}
/* Re-initialize anything related to the UI here */
}New addons that add elements to the stage header must be compatible with the following addons by using their respective spaces with the addon.tab.appendToSharedSpace API:
- 60FPS project player mode
- Clone counter
- Gamepad support
- Mouse position
- Muted project player mode
- Pause button
Other things that affect the stage header:
- Entering and exiting full screen (the
fullscreenStageHeaderspace must be used in full screen) - Activating Turbo Mode
- The "reverse order of project controls" addon