Extensions

Extend SAMMI's functionality with our community made extensions.

Submit Extension


Create an extension

SAMMI communicates with all its extensions via Bridge.html and its own websocket.
Information about how to make your own extension can be found in SAMMI/Bridge/how to make an extension.txt file.
We encourage you to go over a few premade extensions to understand the process.

Test an extension

Developed a new extension? Head over to our #development channel in the official SAMMI Discord server where you can post it for testing!

Release an extension

Is your extension ready to be released to public? Have you fully tested its functionality? Great! You can use the form below to submit it!

Rules for submitting a new extension
  1. The extension and its name is unique
    Do not release slightly modified existing extensions or extensions with a very similar functionality, but rather collaborate with the original author. Do not copy and paste code from other extensions without the explicit approval from the original author.
  2. You’ve tested the extension extensively
    The best way to test an extension is to download a clean copy of SAMMI, use a clean Bridge file and use a new scene collection in your OBS. Even better way is to share it with a few select beta testers to test it with different setups.
  3. Publicly accessible source code
    If your extension is not publicly accessible, you must provide us a way to verify its source code before having it posted on the website. This is to protect users from downloading malicious extensions. Contact one of the SAMMI Discord mods before submitting your extension in this case.
  4. The extension is hosted on a secure server (https)
    We recommend using Github where you can easily create a new account to upload your creations.
  5. No obscure external libraries
    Unless you’re a verified extension developer in our Discord server, do not link to obscure external libraries in the extension file.
  6. Follow best coding practices
    • do not pollute global namespace
      Users can have dozens of different extensions installed. Try to avoid using global variables both in SAMMI and Bridge.
    • optimize loops in Bridge
    • beware of memory leaks in Bridge
      For example, calling an api every second might cause a memory leak and subsequent crash as some streamers run Bridge for 5+ hours without refreshing it.
    • do not overwrite global event handlers in Bridge
      For example, instead of window.onload use addEventListener()method.
    • leave comments where needed
  7. We reserve the right to reject or delete an existing extension for any reason or no reason, and without notice to you.