Triggers and conditions
Alerts, Goals & Subathon and Stream Counter do not use a fixed list of events. Each of their tables holds rows, and each row is a Streamer.Bot trigger you picked — with, if you want, a condition. In Alerts and Goals & Subathon, a row can also post a chat message and play a sound, and in Alerts show its own picture and post a Discord message. The categories and clear triggers of End Credits, the reset, show and hide triggers of Chat First, Stream Counter and Viewer Counter, are picked the same way. The triggers that show, hide, reset or clear a widget are on its page's Controls tab.
In Alerts and the subathon's Time added, the rows are a list of their own (Alert list, Trigger list): pick a row there to edit it in the main area — Change trigger reopens the picker, then its title and text (or seconds), picture, chat message, Discord message and sound as fields. Elsewhere they are a table.
Adding a trigger
Every list or table has an Add trigger button. It opens Configure trigger:
- Trigger shows Streamer.Bot's own trigger menu, with the same sections and names as in Streamer.Bot — e.g. Twitch › Subscriptions › Gift Subscription. Only the table's platform or integration is listed.
- Only triggers your connected Streamer.Bot offers are listed, so you need to be connected to pick one.
- Save trigger adds the row. The pencil on a row reopens the dialog; the × removes it.
A row whose trigger your Streamer.Bot no longer offers reads Trigger not found, please edit.
Conditions
Switch on Activate when a specific condition is met to make a row react only to some events of its trigger — a resub of 12 months or more, a cheer between 100 and 499 bits, a reward with a given name.
| Field | Detail |
|---|---|
| Variable name | The variable of the event to look at, typed with its full name inside the event's data, e.g. months, user.name or scene.sceneName. Find the names in Streamer.Bot's WebSocket events documentation, or with the Event inspector button beside the field (its copy button gives the name ready to paste). |
| Variable type | Text, Number or Boolean. |
| Match | A single value, A range of values, A list of values or Every multiple of a number. |
| Operation | For a single value: = (Equals), ≠ (Not equals), Starts with (Text only, upper and lower case alike: a file in a folder), > (Greater than), < (Less than), ≥ (Greater or equal), ≤ (Less or equal). |
| Value | The value the variable must have; for a Boolean, True or False. |
The four matches:
| Match | Matches when the variable… | Allowed for |
|---|---|---|
| A single value | compares to the value with the operation | Text (=, ≠ and Starts with), Number, Boolean (=) |
| A range of values | is between From and To, both ends included | Number |
| A list of values | equals any of the comma-separated Values | Text, Number |
| Every multiple of a number | is a multiple of Every (3 → 3, 6, 9…) | Number |
The row then shows its condition under the trigger name, e.g. months ≥ 12,
months 6–11, streak ∈ 3, 6, 9 or streak ×3.
obs.sceneName but scene.sceneName in the
payload. Always take the name from the WebSocket events documentation or the Event
inspector, without the leading data..Several rows for one trigger
You can add the same trigger several times with different conditions. In Alerts, an event
shows the first row whose condition it meets; if none matches, the row of that trigger
without a condition; if there is none, nothing. A typical setup: one "Resub" row
without a condition, and one with months ≥ 12 and a bigger thank-you.
Triggering a widget from your own actions
Any trigger list can react to one of your own Streamer.Bot actions — a reward, a command, a mini game — through a custom event. Example: show a timer when your action runs.
Fire a custom event from your action
In Streamer.Bot, add a Custom Event Trigger sub-action to your action. Give it a
name, e.g. Show Muted Timer, and tick Use Args if the widget should use information
from the action (who set it off, their platform…).
Add the trigger on the widget's page
Click Add trigger on the list that should react: for a timer, Show on its Controls tab. Pick Custom › Other › Event.
Keep only your event
Switch on Activate when a specific condition is met, then fill in:
| Field | Value |
|---|---|
| Variable name | eventName |
| Variable type | Text |
| Match | A single value |
| Operation | = (Equals) |
| Value | The name you gave the custom event, e.g. Show Muted Timer |
Click Save trigger.
Without the condition, the row would react to every custom event your actions fire.
args: use any
of them as args.<name>, in conditions and in texts — e.g. args.user, args.eventSource
or args.rewardName, so a timer's Text template can read {args.user} muted me!.
Names holding dots or brackets are typed as they are: args.reward.title,
args.match[0]. The Event inspector shows every argument your action sends.Text variables
Titles, texts and chat messages take variables between braces, named as Streamer.Bot
names them in the event's payload: {user.name}, {bits}, {recipient.name},
{amount}… Each is its full name inside the event's data, read exactly as typed.
The names for each trigger are in Streamer.Bot's WebSocket events documentation, linked under each table. A variable the event does not carry stays as typed, braces and all — a quick way to spot a typo in the preview.
What a goal row adds
In goals and Stream Counter's count up triggers, each row also says what it adds — called Goal increment in goals, What it adds in Stream Counter:
- Add 1 — each event counts one.
- Add the value from a variable — the event adds the value of one of its variables,
typed in Variable name with its full name inside
data, e.g.bitsfor a cheer,gift.amountfor Kicks.
Stream Counter's Count down triggers say What it takes away instead: Take away 1 or Take away the value from a variable.
A subathon goal's trigger also has Subathon timer increment under it, its Seconds added: the time it adds for each 1 counted (per bit, per €…). → Time added
The Scoreboard and Viewer Cards call it Score increment, with one more choice: Set the value from a variable, and under it Only replace if the new value is higher than the current value to keep the highest value seen (peak viewers).
A chat message per row
The speech-bubble button on a row — in Alerts and the subathon's Time added, the picked row's Send a chat message switch, with Chat message settings on its right opening the Chat message window while it is on — adds a Chat message, sent when the row fires:
| Field | Detail |
|---|---|
| Chat message | E.g. Thank you {user.name}!. Same variables as above. |
| Post to | Twitch, YouTube, Kick. A platform trigger posts on its own platform by default; an integration trigger on every platform Streamer.Bot is logged in to. |
| Send as bot | On by default. Where no bot account exists (YouTube reports none), the broadcaster account sends it. |
Chatter Greeting and Chat Activity Rewards have the same message outside any row: a Send a chat message switch, then Send as bot on the same line, the message and, where it applies, Post to. Switched on with no platform picked yet, it picks the platforms where Streamer.Bot has an account logged in.
A sound per row
The speaker button (Play sound) opens the sound window — Alert sound on trigger rows. Saving it turns the sound on; clicking the speaker again turns it off, and the pencil next to it edits it. In an alert, a Play sound switch turns the sound on and off (it never opens the window), and Sound settings, on its right, enabled while it is on, opens the window. Chatter Greeting (Greeting sound) and Polls & Predictions (Twitch poll sound, Twitch prediction sound or YouTube poll sound) use the same window.
A sound comes from one of three places:
| Source | Detail |
|---|---|
| File on this PC | Sound file, e.g. C:\Sounds\alert.mp3. Browse… opens Windows' file picker on the PC running Streamer.Bot. |
| File from folder | Sound folder, e.g. C:\Sounds\Alerts: a random file of the folder plays each time. Include subfolders adds theirs. |
| Link | Sound file URL: a direct link to an audio file. The browser source loads it from there, so the link must stay online — temporary links, such as Discord attachments, stop working after a while. |
Files and folders are played by Streamer.Bot itself, through the Stream UI - Sounds action, on its default audio device. Browse… needs Streamer.Bot connected and the latest Stream UI - Backend code. Every source has Play to test it and Volume from 0 to 100 % (default 80). Files and folders also have:
| Setting | Default | Detail |
|---|---|---|
| Finish before the next sound | off | The next sound waits for this one to end (needs the Sounds action in a blocking queue). |
| Stop other sounds | off | Stops every sound Streamer.Bot is playing first. |
| Use the file name as name | on | Off: the Sound name field names the sound in Streamer.Bot. |
Cancel closes the window, Save sound keeps it.
In Alerts, the sound plays when the alert actually shows: a queued alert plays its sound when its turn comes. In the subathon's Time added, it plays when the event counts. A goal has one sound of its own, played when it is reached, and a subathon count one, played at each milestone. Sounds play from the overlay that runs the actions only. The website's preview plays links, never files: a file would play on stream.
A picture per row
In Alerts, the Use viewer profile picture switch of an alert and Picture settings, on its right, pick its picture: the viewer's profile picture or an image you upload, styled like the alerts' Picture (Style tab) or on its own. → Alerts › The picture
A Discord message per row
In Alerts, once Post alerts to Discord is switched on (Alerts settings), each alert has a Post to Discord switch, and Discord message settings on its right, enabled while it is on, opens Discord message: reuse the alert's chat message or write one of its own. Whether it is posted as the viewer or under the default name is set with the webhook. Like chat messages, it is sent by the overlay that runs the actions only. Setting up the webhook → Alerts › Discord webhooks.
Connection
Import the four Stream UI actions, connect to Streamer.Bot's WebSocket server, choose your platforms and integrations, and back up your settings.
Chat Overlay
Multi-platform chat with emotes, badges, Twitch announcements, channel point redemptions, Bits, Kicks, YouTube Super Chats and Jewels, and an optional chat relay between your platforms.

