Every Flow is built out of nodes. See Flow Builder for what nodes are, their three categories (Data loaders, Operations, Actions), and why small nodes like this make the Flow Builder flexible. This page is the full reference — every node, every field.
flowchart TD
A["🗄️ Read event data"] --> C["🔤 Text comparison"]
B["🗄️ Create value"] --> C
C --> D["⚡ an action further down the chain"]
One thing worth knowing first: a few nodes cover more than one option. Numeric comparison is one node, but it lets you pick equals, greater than, less than, and more from a dropdown once it's on the canvas — its two inputs are still named for the kind of value they hold (First number / Second number), not for what the comparison does, since that part changes with the option you pick. Switch is the one exception that stays fully generic (First input / Second input), since even its type, not just its meaning, depends on what you wire in and the Type you pick. Single-purpose nodes show plainly-named inputs instead, like Amount.
Nodes that grow. Join text, Numeric arithmetic (Add and Multiply), And and Or take as many inputs as you need: connect the last one and a new optional input appears below it, up to 10. Number to text, Datetime to text, Delay and Not grow the same way, but each input gets its own output on the same row, so one node converts or shifts several values at once. Disconnect an input in the middle and it stays as a required gap, ready for something else; the small (-) button next to it removes the gap and moves the inputs below it up.
- Data loaders — Read event data, Create value, Load value, Collectable, Retrieve
- Text operations — Apply highlight, Join text, Replace, Text comparison
- Numeric operations — Number to text, Numeric arithmetic, Numeric comparison, Random
- DateTime operations — Datetime comparison, Datetime to text, Delay, Difference
- Logical operations — And, Or, Not, Switch
- Actions — Command, Play alert, Save value, Add collectable, Spend collectable
- Other — Comment, Macro
| Category |
What it's for |
| 🗄️ Data loaders |
Bringing information into your Flow |
| 🔤 Text operations |
Working with words and sentences |
| 🔢 Numeric operations |
Working with numbers |
| 📅 DateTime operations |
Working with dates and times |
| 🔀 Logical operations |
Combining and branching on true/false answers |
| ⚡ Actions |
Actually doing something real |
| 🗒️ Other |
Organizing your Flow, not changing what it does |
Nodes that bring information into your Flow.
Grabs one or more pieces of information out of the event that started this Flow.
- Fields — pick one or more. Each gets its own labeled output on the right (hover a label to see what it holds). Only fields that actually exist on your chosen event will show up (see the Events page for the full list per event).
Lets you type in a fixed value yourself, instead of reading it from anywhere.
- Type — Text, Number, Bool, or Datetime.
- Value — the actual value you want to use, entered however fits that type (a text box, a number spinner, a True/False toggle, or a date & time picker with a "Now" shortcut).
- Empty text (Text type only) — turn this on to provide an empty string instead of typing something, rather than leaving Value blank.
Gets back a value you stored earlier.
- Default value — what to use if nothing was ever actually saved.
- Source — where to load from: Variable (something saved during a Flow with a Save value action — you then give its Key, the name it was saved under) or Constant (something you set up ahead of time on the Constants page — you then just pick it from a list).
Looks up how many points of a collectable someone currently has.
- Scope — Streamer (the whole channel's total) or User (one specific person's total).
- User ID (User scope only) — whose total: that person's ID on the collectable's platform, e.g. the event's Viewer Twitch ID, or a Retrieve with Get User By Name. Someone StreamWizard has never seen reads 0.
- Filter type — Active (only points that are still unspent and unexpired) or All (every point ever given: the active ones plus the ones already spent or expired).
- From (optional), To (optional) — only count points originally given between these two moments, instead of all-time (leave either empty to reach all the way back, or up to right now). Filter type still always compares against right now, not To — an Active count can exclude a point that's expired since, even if To is in the past.
- Type — which collectable to look up. Its platform is shown in brackets, e.g. Priority Requests (Twitch).
Calls one of StreamWizard's built-in lookup commands and reads back one or more answers — without counting as an action that changes anything. Handy for looking something up mid-Flow, like getting a viewer's Twitch ID from their username before you need it.
- Platform — which connected platform to look something up on.
- Command — which lookup command to call (only ones that look something up, not ones that change something, show up here — see the Commands page for the full list).
- Properties — which pieces of that command's response you want back. Pick several and each gets its own labeled output (hover a label to see what it holds). StreamWizard still makes one lookup for all of them, and the node counts as one Retrieve for your plan.
If the lookup needs one of your Discord servers or channels, you pick it from a list, exactly like on the Command node.
If the lookup finds nothing (a name or ID nobody has), the Flow carries on. Its yes/no output, like Viewer Exists? or Is Member?, says No, and the other outputs come back as "Anonymous" (names), "null" (other text), 0 or No. Wire the yes/no into an action's Condition (optional) point to decide what happens next (see When a lookup finds nothing on the Commands page). OBS lookups work the same way; only when OBS isn't running does the lookup count as failed.
Nodes that work with words and sentences.
Wraps a piece of text in one of your saved Highlight styles, so it stands out visually. The styling only shows up in an alert on your stream (Play alert's on-screen text). Chat can't display it, so don't feed this into a Command.
- Text to highlight — the text to style.
- Highlight — which saved style to use.
Sticks pieces of text together, top to bottom.
- First text, Second text, and a new optional input each time you connect the last one (up to 10).
Finds one piece of text inside another, and swaps it for something else.
- Replace this, Replace by, Replace in.
Compares two pieces of text and answers true or false.
- First text, Second text.
- Operation — Same (are they identical?), Contains (does Second text contain First text?), or Starts with (does Second text begin with First text?).
Nodes that work with numbers.
Turns numbers into text, so they can be dropped into a message.
- Number — connect it and a Number 2 (optional) appears below, with its own output on the same row (up to 10).
Does basic math on numbers.
- First number, Second number — for Add and Multiply, a new optional input appears each time you connect the last one (up to 10), and all of them are added or multiplied together. Divide always takes two.
- Operation — Add, Multiply, Divide (quotient) (the whole-number result), or Divide (remainder) (what's left over).
Compares numbers and answers True/Yes or False/No.
- First number, Second number — or Minimum, Value, Maximum for the Between operations.
- Operation — Equals, Greater than, Greater or equals than, Less than, Less or equals than, Between (inclusive) (the value is between the two, or equal to one of them) or Between (exclusive) (strictly between them). Hover an option in the list to see exactly what it checks.
¶ Random
Picks a random whole number.
- Minimum, Maximum — both are possible results.
Nodes that work with dates and times.
Compares points in time and answers True/Yes or False/No.
- First datetime, Second datetime — or Earliest, Value, Latest for the Between operations.
- Operation — Concurrent (the same moment), Earlier than, Earlier or concurrent than, Later than, Later or concurrent than, Between (inclusive) or Between (exclusive). Hover an option in the list to see exactly what it checks.
Turns dates & times into readable text.
- Datetime — connect it and a Datetime 2 (optional) appears below, with its own output on the same row (up to 10).
- Format — how you want them displayed (the same for all).
Shifts dates & times forward or backward.
- Delay — how much to shift by; use a negative number to shift backward.
- Datetime — connect it and a Datetime 2 (optional) appears below, with its own output on the same row (up to 10), shifted by the same Delay.
- Unit — what the Delay is counted in: seconds, minutes, hours, days, weeks, months, or years.
Don't confuse this with an action's own Delay (s) field (see Actions, below) — this node does math on a date/time value (e.g. "3600 seconds after this redemption" for a later comparison), while an action's Delay (s) postpones when that action actually fires. Use this node to calculate a future or past moment; use an action's Delay (s) to make the action itself wait before running.
Works out the gap between two points in time, in one or more units at once.
- First datetime, Second datetime.
- Units — pick one or more of seconds, minutes, hours, days, weeks, months and years. Each gets its own labeled output.
- Mode (two or more units) — Progressive (the default) counts the biggest unit first, and each smaller unit only counts what is left over, like reading a clock: from 2025-01-01 to 2026-06-20, Years, Months and Days give 1 year, 5 months and 19 days. Independent lets each unit measure the whole gap on its own: Years and Months give 1 and 17 for the same dates.
Nodes that work with true/false answers.
¶ And
True/Yes only if every connected condition is True/Yes, otherwise False/No.
- First condition, Second condition, and a new optional input each time you connect the last one (up to 10).
True/Yes if any connected condition is True/Yes, otherwise False/No.
- First condition, Second condition, and a new optional input each time you connect the last one (up to 10).
Flips True/Yes to False/No, and False/No to True/Yes.
- Condition — connect it and a Condition 2 (optional) appears below, with its own output on the same row (up to 10).
Picks between two values depending on a true/false switch — like saying "if this, use one thing, otherwise use the other." Works with text, numbers, dates, and more.
- Switch — the true/false input that decides.
- First input, Second input — the two values to pick between, if Switch is true or false respectively.
- Type — which kind of value First input/Second input are: Text, Number, or Datetime.
The nodes that actually do something — sending a message, handing out points, playing an alert. Every action shares two extra things: an optional Condition (optional) point (leave it empty to always run, or wire in a true/false answer to make it conditional), and a Delay (s) field, if you want it to fire a bit later instead of right away.
¶ Command
Runs one of StreamWizard's built-in commands that actually change or create something on a connected platform — sending a chat message, adding a VIP, starting a poll, and many more. See the Commands page for the full list.
- Platform — which connected platform to run it on.
- Executor — which of your connected accounts actually performs it. This decides which commands you can even pick:
- A bot account already has a standard set of permissions granted the moment you connected it, so its Type list only shows commands that bot account is actually allowed to run.
- Your own account (or any non-bot account) can run any command — StreamWizard requests the specific permission it needs on the fly, when you publish the Flow.
- On OBS Manager, the executor is your connected OBS.
- When only one account can perform the Command (always the case on Discord and OBS Manager), the node doesn't show an Executor box at all.
- On Discord, the executor is always StreamWizardIO - Shared, the StreamWizard bot you invited to your server. What it can do depends on the roles it has in your server. StreamWizard checks this when you publish — see Permissions and the publish check.
- Type — which command to run. Once picked, you'll get extra boxes specific to that command (for example, "Send Chat Message" asks you for the message text).
Picking a Discord server, channel, category, or thread. Discord Commands act on something in your server. You choose it from a dropdown in the Command node instead of typing an ID:
- The dropdown shows your server as a heading, its categories under it, and each category's channels indented below. Channels without a category sit directly under the server. Threads sit under the channel they belong to.
- Only things that fit that box can be picked; everything else stays greyed out as a heading, so you can still see where you are in the tree. A Server box offers your server, a Channel box offers text, announcement, voice and stage channels, a Thread box offers threads, and a Category or Parent Category box offers categories. Forum and media channels don't show up in any list.
- A box that can stay empty says (optional) in its title, and its list starts with None - Clear Selection. A box that still needs a choice says - Mandatory next to its title. When a list has only one choice, it's picked for you.
- When a Command needs your server and something inside it, both come from one list. On Create Channel, Server or Parent Category shows your server with its categories under it: pick a category to put the new channel in it, or the server for a channel without a category.
- The lists are built from what the StreamWizard bot has reported about your server, and they update on their own. If a channel you expect is missing, a deleted one still shows up, or the Flow Builder says a resource is not available to the selected executor, press Resync next to your server on Connect platforms (re-inviting the bot works too), wait a few seconds, then open the list again.
- Every list except the server one starts with I will connect the ID. Pick it when the target is only known while the Flow runs: a channel or thread the Flow itself just created, an archived thread, a channel you want to delete. A new input shows up on the node; connect the ID there (for example the Thread Discord ID of a Thread Created event). A connected ID isn't checked when you publish, so you're responsible for it. The server is always picked from the list.
- When the Flow runs, StreamWizard checks that the channel, thread or server is one of yours. If it belongs to someone else's account, the command doesn't run, the Flow stops and you get a notification. If StreamWizard hasn't seen the ID yet (say, a channel created a moment ago), it asks Discord which server it's in and runs the command if that server is yours. If it can't tell, or your Flows ask about many unknown IDs within one minute, the Flow stops and you get a notification.
- Each Discord Command also needs a Discord permission on the thing you pick, for example Send Messages on the channel. StreamWizard checks it when you publish; see Permissions and the publish check.
Picking an OBS scene or source. Every OBS Command that acts on a scene or source has a Scene, Source or Source in Scene box with a dropdown of what's in your OBS:
- Your scenes and sources are listed by name. A source in a scene is listed under its scene.
- Like the Discord lists, each one starts with I will connect the ID, for a scene or source the Flow only learns about while it runs.
- The lists come from your OBS through the StreamWizard browser source, and stay up to date while OBS is running with that source in it. Created a scene or source and don't see it yet? Make sure OBS is open, then check again.
- Rename, delete and remove Commands use these lists too. For a scene or source the Flow only learns about while it runs, pick I will connect the ID and wire in the ID from an OBS event or a Get ... Information lookup. See Commands.
Picking from a fixed list. Some boxes only accept certain values: an announcement color, a stream language, a Discord channel type, and so on. Those are a dropdown; hover over an entry to see what it does. A few let you pick several at once, like the permissions a Discord channel allows or denies. You always pick these on the node itself; they can't be connected from another node. If an older Flow had something connected there, open it and pick a value from the list before publishing again.
If a command needs someone's ID and you only know their username, use a Retrieve node first: Get User By Name on Twitch, Get Member By Username on Discord. The same goes for the User ID of the Collectable nodes. If nobody has that name, Viewer Exists? or Is Member? says No, so the Flow can tell the viewer instead of guessing.
Triggers one of your Alert overlays — the pop-ups/animations you show on stream.
- Text content, TTS content (both optional) — on-screen text, and text-to-speech to read out loud if that alert has a TTS voice set up. Leave either empty and it's simply skipped: no on-screen text, or no speech.
- Source — which alert overlay (browser source) it should play on.
- Group — which specific alert to play (its look, sound, animation).
See Alerts for how to set up Sources and Groups.
Remembers a value under a name you choose, so you (or a different Flow) can get it back later with a Load value node.
- Value — the value to remember.
- Type — what kind of value it is: Text, Number, Datetime, or Bool.
- Key — the name to save it under. Saving under a name that's already in use overwrites the old value.
Hands out points of one of your collectables to a person.
- Amount — how many points to give.
- Expires at (optional) — the exact moment these particular points expire and can no longer be spent. Leave it empty for points that never expire. To make points expire in some amount of time rather than at a fixed moment, wire in a Create value set to Datetime + Now, run through a Delay.
- User ID — who gets them: their ID on the collectable's platform. Someone StreamWizard hasn't seen yet is looked up on that platform and added. If the ID is empty, or nobody on the platform has it, nothing is added and you get a notification.
- Type — which collectable to give.
Takes points of one of your collectables away from a person.
- Amount — how many points to take.
- User ID — whose points: their ID on the collectable's platform. If it's empty, nothing is spent and you get a notification. Someone StreamWizard has never seen has nothing to spend, so nothing happens.
- Type — which collectable to spend from.
Having too few points never stops it: it simply takes them down to zero rather than going negative or failing.
Nodes that help you organize a Flow rather than change what it does.
A sticky note you can place on the canvas — just a free-text box. It doesn't do anything; it's just there to remind you (or a teammate) what a part of the Flow is for.
A saved bundle of nodes you can reuse across Flows, so you don't have to rebuild the same steps every time. Build it once, then drop it into any Flow that needs it.