[Multi-Platform] Dynamic On-Screen Voting


This extension does NOT tie into the Twitch polling system, it is 100% self-contained and only requires commands to be triggered. This extension will work whether you stream to any of the single listed platforms, or any combination of all four!!

Perfect for on-the-fly voting and/or if you vote on the same thing regularly, this also offers the option to save and load polls with 1 command!

Poll Live Demonstration

Kick integration assumes you are already using the Kick.bot extension created by @sehelitar. I am NOT a contributor to that project, simply added support for it here to expand the functionality of the ‘Play with Viewers’ queue.

Import Code

Mustached_Maniac On-Screen Voting [MP].sb (20.4 KB)


In Streamer.bot click the Import button in the top menu. Drag the downloaded .sb file into the Import String field and click Import . You will see 2 Actions and 2 Commands

Once imported, head over to the Commands tab and Right-Click on the group named [Multi-Platform] On-Screen Poll to Enable All commands

For the last step in Streamer.bot, go to the Servers/Clients tab and ensure the Auto Start box is checked, and if it’s not already running, press Start Server

SPECIAL NOTE: You’ll notice duplicate triggers for every action. If you don’t use Kick and do not have the Kick.bot extension installed, those triggers do not apply to you and will not affect how the extension works. (Feel free to delete them, or just leave them alone)


OBS Set-Up

Select the Polling Manager Action, Right-Click on the Test Trigger, and select Test Trigger

This trigger will build the OBS Scene and Source for you, giving a confirmation via chat message upon completion, like the GIF below.

Poll Create OBS Scene

The next thing you will want to do is “nest” this scene anywhere that you want to see your On-Screen Poll. Do NOT rename the Scene or Source, otherwise it will make another one the next time you run the !poll command. To nest the Scene, click on an already created Scene that you have in OBS, then go to the Sources and press the + to add a new source. Select Scene from the context menu and then click the Multi-Platform Polling scene.

Nest OBS Scene

Running Your First Poll

The Polling Manager Action has 2 folders that can be used to customize the poll in various ways. Click on the + sign to the left of the Group Name to expand the folder and see the editable arguments.

Customizable Options:

Customizable Options

%multiPollDuration% will set the length of the poll. It has hard-coded minimum and maximum values, meaning if you put anything over/under that amount, it WILL default to those values
%multiPollHideDelay% sets the duration (in seconds) that the poll will remain on screen UPON COMPLETION to show the results.
%votePosition% determines which side of the screen the overlay will show on, accepts Left , Right, and L or R.
%announcePollWinners% will enable (if set to ‘True’) or disable (if set to ‘False’) a chat message at the end of the poll that reads: “Users who voted for the winning option (option text): user1[user1Platform], user2[user2Platform], etc”.
%barFillColor% utilizes the Streamer.bot color picker to select what color fills the bar in on each vote cast.
%barBackgroundColor% utilizes the Streamer.bot color picker to select the “background” or “empty” bar color for all of the options.

Select Streaming Platforms:

Select Streaming Platforms

IMPORTANT: Set each platform to ‘True’ that you will be LIVE streaming to only. If you are streaming to multiple platforms simultaneously, set all applicable platforms to ‘True’ and leave the others ‘False’.


For Broadcaster/Moderators:

Command Description
!poll [option1] // [option2] // [option3] Dynamic, can be any number of options.
!poll save [name] Stores the options for the currently active poll to be recalled later. (Requires active poll)
!poll load [name] Recalls a previously stored poll and runs it immediately. (Cannot be used if there is an active poll)
!poll remove [name] Removes a saved poll from the stored list.
!poll list Lists the name(s) of all currently saved polls in a chat message.

For Viewers:

Command Description
!vote [#] Votes for the corresponding option number. (Viewers can only cast one vote per poll)

For the first part, it’s working fine out of the box or at least I haven’t experienced any bigger issues.

  1. I’m wondering why you are using temp globals, in case of the platform selection, for the Polling Manager action, since I don’t really see you using them outside of that action anyway

  2. I’m a bit concerned about the naming of the global variables as I could definitely see someone using those same names regarding their Twitch Poll like pollOptions for example. If possible you can try to make the name a bit more unique like MM_DynamicVote_pollOptions , that way it’s like 99% guaranteed it wouldn’t possibly overwrite another thing that is going on

  3. When you enable the Send Winners into chat option, there is a kinda big, possibility that it won’t send the message due to the max character limit (especially on youtube). If you want I can provide you with a sample code on how to split the messages up or if you already have your own then go ahead! lol