Distribution Methods

RealityRipple's Home-Made Emote Wall is available in three unique methods, each with their own benefits and issues. The tool itself runs through javascript, entirely inside your OBS browser source, although it makes calls to various servers to keep an eye on events and display emotes.

LocalShortURLFull URL
EmoteWall.htmlhttps://ew.realityripple.com/XXXX-XXXX-XXXX-XXXX#key=...https://realityripple.com/Tools/Twitch/EmoteWall/live.php?...
Hard DriveWebsiteWebsite
Always Works*Requires Website and DatabaseRequires Website
Config in FileConfig in DatabaseConfig in URL
Manual UpdateAutomatic UpdateAutomatic Update
* May require OAuth2 URL and/or code changes. May not support all features.
Stored tokens are encrypted, but URL options are safer when used with Interactive Login.

Local Copy (Download)

The local copy is, in many ways, the best and most surefire method of setting up your Emote Wall for the long haul - the file exists on your hard drive, and will work as-is for as long as the streaming services and servers used do not make breaking changes to their communication interfaces. A local copy will run independently of the RealityRipple Software website, and will never* have down-time. Additionally, all your preferences are stored inside the file. This includes your OAuth2 Tokens, which, while read-only, could be considered akin to passwords.

However, the local copy requires manual updating. You can import the HTML file into the Emote Wall Wizard to load all your previous settings and download a new copy, but this must be done manually.


ShortURL

A ShortURL stores your preferences in a database, and uses a randomly generated ID number. This makes for very simple, short URLs (48 characters with Interactive Login, 75 with Wizard Authorization). These can be easier to deal with and save, or possibly even remember, and your Emote Wall will always be the latest version.

This version, while the simplest, also has the most potential issues. Of course, the Emote Wall will not work if there's a problem with the website, but also if there's a problem with the database server. Anyone with your ShortURL can also pull your configuration data out of the website and decrypt your OAuth2 Tokens very easily, so Interactive Login is recommended.


Full (Long) URL

The URL copy can seem messy at first, especially compared to the ShortURL method (above), but has its benefits. Your configuration is stored inside the URL itself, meaning that you don't need a file on your computer, but you also don't have to worry about your settings being stored on a server, and you also get the automatic updates from using an online copy. The URL also never expires, so you will always have an up-to-date version that works with your settings.

The length of the URL can make it seem excessive, and there are some configurations that are too long, even though your configuration is compressed. If you pre-authorize through the Wizard, your OAuth2 Tokens will also be encrypted in your URL data. Since the URL is https and the decryption key is never transmitted, the data should be reasonably safe (if you don't share it), but it's recommended to use the Interactive Login process for better security. And, of course, if the RealityRipple Software website is down, your Emote Wall will also not load.


Security

A final note about the security of your OAuth2 tokens: this project uses tokens with read-only scopes on Twitch, YouTube, and StreamElements, while Streamlabs uses a specific socket-only token, which itself is read-only. This means that any security issues are not to you as a streamer, or your accounts, but to the viewers of your stream from data collectors. Such information can include the amount of money specific users spend related to specific content, users' chat contents, and possibly inferrable viewing habits, among other metrics. In order to keep this information safe, please be careful to only share your Emote Wall files or URLs with trusted individuals.

If you do use the Authorization process through the Wizard, your tokens will be encrypted with AES-128-GCM, but the decryption key will be in the URL. This will protect your tokens from being read if your URL is somehow leaked over the internet. However, if the entire URL (including the key portion) is shared, the tokens can easily be decrypted.