Automation Scenarios
- how do I make a reward switch an obs scene
- how do I run one scenario from two different rewards
- how do I put a pause between two actions
- how do I hide rewards while the camera is off screen
- how do I have a donation say something out loud
- the group toggle is grey and will not switch on
- can a scenario run on a schedule
- my reward is greyed out and I cannot tick it
- the scenario read only one message when the reward was bought three times
- does buying the effect again make it last longer
- a follow raid ran my scenario hundreds of times
- how do I stop one viewer starting the same scenario over and over
- how do I greet each viewer only once per stream
- the sound and the voice talk over each other
- the pause before the voice is skipped when the reward is bought twice in a row
- the scenario stopped halfway and never finished the rest of the steps
- how do I run a scenario when my countdown reaches zero
- can a scenario add time to a timer
- how do I make the bot greet new viewers when they write in chat
- can the bot welcome new chatters automatically
- does a voice phrase scenario spend credits
- do I have to say the bot name before a voice phrase
- the call another service step stopped working after I moved to a new computer
Comes with strAImer: this module is installed together with the app, so there is nothing to download. It is listed under Module Catalog → Built-in.
What this page is
Automation → Scenarios wires an event to a chain of actions: a viewer redeems a reward, and OBS switches scene, a sound plays and the bot writes a line in chat. Its own description puts it as "Configure reaction rules for Twitch rewards and timers".
Three things make up a scenario, and it helps to keep them apart:
- Triggers — the ways in. Several triggers can start the same scenario.
- Step chain — what happens, top to bottom. No branching, no conditions.
- Group — an optional wrapper that can switch a whole set of scenarios on and off by itself, based on what OBS is showing.
Building a scenario
1. Create it
Create Scenario in the header. An empty page reads "No scenarios found. Create your first scenario above." Fill in Scenario Name and pick a Group — No Group is a valid answer, and [ Create new group... ] makes one on the spot.
2. Add a trigger
Triggers is the list of ways in, and the page says why there is a list rather than one: "Any of these starts the same chain of steps. Add a second one instead of copying the scenario." + Trigger opens Add Trigger, and Trigger Type offers fourteen:
| Trigger | What it asks for |
|---|---|
| Channel Reward | a reward from -- Choose Reward --, grouped by Twitch and Kick, each showing its cost. -- Enter ID manually -- takes an id instead |
| Panel Button | a Panel Button Slot — one of the buttons on the Panel: Buttons tile of the Control Panel |
| Donation | an Amount condition and which services count |
| Subscription | Which subscriptions — Any subscription, Only new ones, Only renewals |
| Gifted subscriptions | Minimum subscriptions gifted at once |
| Raid | Minimum viewers in the raid |
| Bits (cheer) | Minimum bits |
| New follower | nothing |
| Stream started | nothing |
| Stream ended | nothing |
| Timer reached zero | Which timer: one of your countdowns, or Any timer |
| Voice phrase | Phrases, one per line; How to compare — The phrase is said somewhere in the sentence, The sentence is exactly the phrase or Regular expression |
| Chat message | Commands and words, one per line; How to compare — Command: the first word of the message, The message starts with the phrase, Word anywhere in the message; and Who can start it — Anyone in chat, Subscribers and above, Moderators and you, Only you |
| Built-in Twitch reward | which purchase: any, Highlight My Message, Send a Message in Sub-Only Mode, Gigantify an Emote, Message Effect |
On the three minimums, zero means any. Stream started and Stream ended say so themselves: "Fires once when the stream state changes. There is nothing to configure."
Timer reached zero listens to the countdowns from Widgets → Timers, and the hint under it says how: "Timers are set up in Widgets → Timers. A countdown that keeps going below zero fires once, when it crosses zero." Only countdowns are offered, because a timer that counts up never reaches zero. A timer that is switched off does not start the scenario, and a zero reached while the app was closed does not start it once the app is running again.
Chat message works on every connected chat at once, and the three ways of comparing differ more than they look. Command reads the first word only, so "!light" also catches "!light red"; the exclamation mark is optional in what you write, but if you write it, a plain "light" in conversation no longer counts. Word anywhere in the message means the whole word: "hi" does not match "hiking". Your own bot's replies never start a scenario, so a chain that writes to chat cannot feed itself.
Voice phrase is compared by the app itself, not by the AI: it needs no bot name in front of the phrase and spends no credits. It hears whatever speech recognition hears (Voice → Speech recognition). With When to listen set to Always, a phrase that comes up in ordinary talk starts the scenario too, so pick words you would not say by chance, or take The sentence is exactly the phrase. With Hold a key, the microphone listens only while the key is held, and what you say then also goes to the assistant, which is the part that costs credits. With Always, a sentence that starts with the name from How you call the bot goes to the assistant too, and with that name left empty every sentence does; the guide "Speech recognition" explains both modes.
Done puts the trigger into the list, where a saved one can be reopened or removed.
Two guards sit in the same window, and both start switched off. Do not run more often than, seconds is the pause between runs: "Zero means no limit — every event runs the scenario. A follow-bot raid sends hundreds of follows a minute, and without a cooldown each one writes to chat, speaks and clips." Once per viewer is the other half, with a list beside it: per hour means the same person cannot start it again within the hour, per stream means once until the next stream starts. Older scenarios stay on per hour. The per-stream memory starts over when Stream Status reports a new stream, and when the app restarts.
The pause is shown for the ways in that a crowd can push: a new follower, a subscription, gifted subs, a raid, bits, a built-in Twitch purchase and a chat message. Once per viewer is offered only for New follower and Chat message: both are free and easy to repeat, while a repeated sub or cheer is a second payment, and it is not silenced. A reward, a panel button, the edges of a stream, a timer reaching zero and a spoken phrase show neither guard: there is no storm to fear there. A new Chat message trigger opens with five seconds already in the pause, because viewers repeat commands; a scenario written before these guards existed behaves exactly as it did.
An empty reward list says "No rewards found. Please connect Twitch or check your Twitch Dashboard."
3. Donation triggers have two filters
Amount condition is Any donation, From this amount and up, Exactly this amount or Between two amounts, with Amount and Up to beneath it.
Count donations from lists your donation connectors as tickboxes: "Unchecked platforms are ignored by this scenario. A newly installed donation connector counts right away."
Amounts are compared in your base currency (Settings → Localization), and a donation that could not be converted does not fire the scenario at all. That is also why Exactly this amount is a trap for anything arriving in another currency — the page warns about it in as many words: "An exact match only works for donations already in your base currency: after conversion the amount lands on fractions of a unit and practically never matches."
4. Build the chain
Step chain is what happens. Empty, it reads "No steps yet. Add an action or a delay."
- + Delay drops in a Delay step with a seconds box.
- + Action opens Add Action, and the list comes in two groups.
A Delay also decides what a second trigger does while the chain is still waiting. A chain that switches something on and then off is extended: the deadline moves by the length of the delay and the actions are not run again — buying the effect twice buys twice the time, and repeating the switch would have turned it off. A chain that says or writes what the trigger brought — {message}, {user} — runs once per trigger instead: three redemptions in five seconds are three separate runs, so nobody's message is dropped. Nothing to set here; the app decides by what the steps do.
A chain that makes a sound keeps the app's sound to itself until its last sound step is done. That is what makes a pause before speech worth anything. "Wait 6 seconds, then say it out loud" holds on right through the reading, so three redemptions in a row are read one after another with six seconds of quiet between them, instead of all three counting down at the same time and arriving nose to tail. A chain whose sound comes first, "play a sound, wait 30 seconds, hide the filter", lets go the moment the sound ends: half a minute of an effect holds nobody up. A chain with no sound step never waits at all, so switching a scene is never delayed by somebody else's speech.
A pause runs even when the app cannot write it down. The countdown starts before the paused chain is saved, so a slow or failed save no longer swallows the rest of the chain. All that is lost in that case is surviving a restart of the app; the pause itself still reaches its end and the chain carries on.
OBS — needs the OBS connection, and the pickers are filled from OBS itself:
- OBS: Switch scene — Select Scene.
- OBS: Show or hide source — Select Scene, Select Source, What to do (Show source, Hide source, Toggle).
- OBS: Source filter — the same plus Select Filter and Filter State (Enable filter, Disable filter).
- OBS: Mute or unmute audio — Audio input, then Mute, Unmute or Toggle.
- OBS: Audio input volume — Audio input and a Volume slider.
strAImer — everything the app does itself:
- Play Sound: Select Sound is a slot with a ▶ button to listen. Click it and the Choose a sound window opens, where every file shows its length, a waveform and its own ▶, and any folder can be opened. Plus Volume.
- Say it out loud and Send chat message — both take Text; the chat one also takes Where to send (All connected chats, Twitch, YouTube or Kick).
- Smart Plug — the plug and What to do: Turn on for a while (which adds Duration, sec), Turn on and leave it on, or Turn off. With no plugs it says "No plugs added — see Devices → Shelly".
- Create Twitch clip.
- Timer: pick the timer, then What to do: Start, Pause, Start or pause, Reset, Add time or Take time away; the last two add Minutes. With no timers the list says "No timers yet. See Widgets → Timers".
- Call another service — Address, What to send (Send data (POST) or Just open the address (GET)), Data to send as JSON or Plain text, and Extra headers, one per line as "Name: value", if the service asks for an access key. It is how a word in chat reaches Discord, n8n, Make, a smart home or anything of your own. The reply is not read: the log keeps the status code and the name of the service, and the next step runs either way. The address and the headers are stored encrypted on this computer and are not part of a backup. After a backup is restored on another computer, the step says "Not saved on this computer. Enter the address again": paste the address, and the headers if the service needs them, once more. On the same computer a reopened step shows an empty field with "Saved: {host}. Leave empty to keep it", so the address is still there.
Under Text and Data to send sit the chips {user}, {amount}, {reward}, {message} and {args}: "Click a name below to insert it. It is replaced by what triggered the scenario; an unknown name is left as is." {args} belongs to the chat trigger — it is the text after the command, so "!order pizza" gives "pizza". Quotes and line breaks in what a viewer wrote are escaped on the way into JSON, so the data stays valid.
5. Order and save
Steps run top to bottom. Each row has arrows Up and Down, plus Edit and Delete. Save stores the scenario.
The card in the list then shows a tag per trigger, the whole chain and the number of steps. Beside it: the on/off switch, Test run, Duplicate (the copy opens for editing at once, named " (copy)"), Edit and Delete, which asks "Delete this scenario?"
Groups, and letting OBS switch them
A group is a folder that can also be a switch. Create Group in the header makes one; give it a Group Name, and scenarios join it through the Group field. An empty group says "No scenarios in this group yet."
Automatic control
Automatic control makes the group follow a Condition Type:
- Source visibility on scene
- Active scene
- Source visible on current scene
- Auction accepts channel points
The first three ask for Select OBS Scene and Select OBS Source, and each explains itself under the picker — for instance "The condition holds while the selected scene is live."
What the condition controls is the list underneath: "While the condition holds, everything listed here is on; once it stops holding, it is off." The first line is locked and always there — "Scenarios in this group do not fire while the condition is not met." + Add adds Twitch channel point rewards, a tickbox list of your rewards, and Remove takes an entry away.
Why some rewards are greyed out
A reward you created by hand on the Twitch site is greyed out, marked "created outside strAImer" and cannot be ticked. Twitch lets an app switch only the rewards it created itself, so such a reward would be refused every time — and the group would report itself as on while nothing changed on Twitch.
To automate one, recreate it as a managed reward on Automation → Channel Rewards; the guide "Channel Rewards Manager" covers that page. One that is already ticked can still be unticked, so an old setting is never stuck.
The three-second wait
A condition that changes does not switch the group at once: the new state has to hold for three seconds first. A source that blinks on and off again inside those three seconds changes nothing — the pending switch is dropped and the group stays as it was.
That is deliberate. A source nobody had time to see on stream is no reason to open the rewards, and switching a group means one write to Twitch per reward in it, so a flickering source used to fire dozens of them in a row.
The wait applies only to what comes from OBS. Turning Automatic control on or off, pressing Save, the auction opening or closing channel points, and OBS losing the connection all take effect immediately.
The group in the list
A group header carries the Auto tickbox, the group switch, Condition Settings and Delete; clicking the header folds the group. Deleting asks first and reassures: "Delete group "{name}"? All nested scenarios will be safely moved to the "No Group" section."
What it cannot do
- No branching and no conditions inside a chain. Steps run in order, top to bottom. Conditions live on the trigger and on the group, nowhere else.
- No trigger fires on every chat message. Chat message needs at least one command or word, so "greet everyone who writes for the first time" cannot be built. What works is New follower with Once per viewer and a Send chat message step, or Chat message on greeting words such as hi and hello, with Once per viewer set to per stream.
- No clock trigger. The trigger types are exactly the fourteen above: Timer reached zero fires when one of your countdowns ends, not at a time of day, and Delay is a step inside a chain, not a way to start one. Repeating chat messages are a different page: Chat Bot → Chat Timers.
- Scenes, sources, filters and audio inputs are read from OBS. Without the OBS connection those pickers have nothing to offer.
- A group's hold over its own scenarios cannot be switched off: "This is what a group is, so it cannot be turned off separately."
- Only rewards strAImer created can be put under a condition. Twitch channel point rewards is the only entry + Add offers under What the condition controls.
- With Automatic control on, the group's own switch is locked and reads "Managed automatically by a condition".
- The three seconds are fixed. There is no field for them and no way to make an OBS condition switch a group instantly.
- Duration, sec exists only for Turn on for a while. The other two plug actions are ended by the chain, not by a countdown.
- The wait for the sound cannot be switched off while the app plays it itself. With Where the sound plays (Settings → Sound) set to In an OBS browser source, the app cannot tell when a Play Sound step ends there, so the next sound chain does not wait for it and the sounds can overlap. There is no field for how long a chain may hold the sound.