La_Syl Studio
Guide

Triggers and conditions

How Alerts, Goals & Subathon, Stream Counter, End Credits and the reset triggers react to the Streamer.Bot triggers you pick, with conditions, text variables, a chat message, a sound and a Discord message.

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.

FieldDetail
Variable nameThe 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 typeText, Number or Boolean.
MatchA single value, A range of values, A list of values or Every multiple of a number.
OperationFor 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).
ValueThe value the variable must have; for a Boolean, True or False.

The four matches:

MatchMatches when the variable…Allowed for
A single valuecompares to the value with the operationText (=, ≠ and Starts with), Number, Boolean (=)
A range of valuesis between From and To, both ends includedNumber
A list of valuesequals any of the comma-separated ValuesText, Number
Every multiple of a numberis 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.

Stream UI reads a variable at exactly the name you type, nothing else. Streamer.Bot's trigger documentation lists action arguments, which are often named differently from the WebSocket payload: OBS's scene is the argument 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:

FieldValue
Variable nameeventName
Variable typeText
MatchA single value
Operation= (Equals)
ValueThe 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.

With Use Args ticked, the action's arguments come with the event under 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. bits for a cheer, gift.amount for 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:

FieldDetail
Chat messageE.g. Thank you {user.name}!. Same variables as above.
Post toTwitch, 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 botOn 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.

Messages are sent only by the overlay that runs the actions — never by your other overlays, a single-widget URL or the website's preview — so they are never sent twice. → Which overlay runs the actions. Sending messages needs a Streamer.Bot password — see Connection.

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:

SourceDetail
File on this PCSound file, e.g. C:\Sounds\alert.mp3. Browse… opens Windows' file picker on the PC running Streamer.Bot.
File from folderSound folder, e.g. C:\Sounds\Alerts: a random file of the folder plays each time. Include subfolders adds theirs.
LinkSound 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:

SettingDefaultDetail
Finish before the next soundoffThe next sound waits for this one to end (needs the Sounds action in a blocking queue).
Stop other soundsoffStops every sound Streamer.Bot is playing first.
Use the file name as nameonOff: 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.