Actions reference¶
Every action a macro step can run, in the order the Actions page and the macro editor's palette list them: by integration, then by group. For how actions, steps and providers fit together, read Actions first.
How to read the tables:
- Setting is the label on the step's form. Ones marked required must be filled in.
- Type: Text boxes take
{variables}where the details say so; Pick is a list the app fills in (your scenes, your rewards); Choice is a fixed list, shown here with the exact words the app uses; Duration is written like30s,5mor1h30m; On/off is a switch; List takes several entries, separated by commas unless the details say one per line. - Default at the start of the details is what an empty setting means.
- Outputs are variables the step reports back for later steps, such as
{clip_url}. - The ID is shown under each action's name in the app; you never need to type it.
At a glance¶
| Integration | Groups | Actions |
|---|---|---|
| Twitch | Chat, Stream, Moderation, Raids, Lookups, Chat modes, Roles, Polls & predictions, Channel points, Ads | 33 |
| OBS Studio | Stream & recording, Sources, Audio, Filters, Advanced, Text & media, Scenes, Capture | 34 |
| Steam | Steam | 2 |
| Discord | Discord | 2 |
| Queues | Queue | 5 |
| Tools | Utilities, Web, Screen, Sound & files | 10 |
| Webhooks | Webhooks | 1 |
| Viewers | Viewers | 5 |
| Overlays | Overlays | 10 |
Shared actions¶
These do one job on several integrations, so they appear under each integration that can run them. A step with no provider picked runs on every connected one at once; pick providers on the step to limit it.
Send chat message¶
ID chat.send · runs on Twitch
Post a message in chat. {variables} are filled in from earlier steps.
| Setting | Type | Details |
|---|---|---|
| Message required | Text | Takes {variables}. |
Clip¶
ID clip · runs on Twitch and OBS Studio
Capture the moment: OBS saves its replay buffer, Twitch creates a clip.
Unless you pick providers on the step, it runs on both at once. The default !clip macro uses two steps instead, one per provider, so it carries on when only one of them works.
No settings.
Outputs from Twitch:
| Output | Meaning |
|---|---|
{clip_id} |
ID of the new clip. |
{clip_url} |
Public URL of the new clip. |
Outputs from OBS Studio:
| Output | Meaning |
|---|---|
{replay_path} |
Path of the saved replay file. |
Marker¶
ID marker · runs on Twitch and OBS Studio
Mark this moment: a Twitch stream marker for the VOD, an OBS recording chapter.
Unless you pick providers on the step, it runs on both.
| Setting | Type | Details |
|---|---|---|
| Description | Text | Optional, up to 140 characters. For example: {user} redeemed a highlight. Takes {variables}. |
Outputs from Twitch:
| Output | Meaning |
|---|---|
{marker_position} |
Where the marker is in the VOD, in seconds from its start. |
Outputs from OBS Studio:
| Output | Meaning |
|---|---|
{chapter_name} |
The name given to the chapter. |
Switch scene¶
ID scene.set · runs on OBS Studio
Make a scene the live (program) scene.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. |
Twitch¶
Twitch actions need you to be logged in. One that needs a Twitch permission your login lacks is marked re-login on the Actions page and with a warning sign in the macro editor's palette; log in again to grant it.
Also offered here: Send chat message, Clip, Marker (see Shared actions).
Chat¶
Send announcement¶
ID twitch.announce
Posts a highlighted announcement in your chat.
| Setting | Type | Details |
|---|---|---|
| Message required | Text | Up to 500 characters. Takes {variables}. |
| Color | Choice | Default primary Primary uses your channel's accent color. One of primary, blue, green, orange, purple. |
Reply to chat message¶
ID twitch.reply
Replies to the chat message that triggered this. If something else triggered it, sends a normal chat message.
| Setting | Type | Details |
|---|---|---|
| Message required | Text | Up to 500 characters. Takes {variables}. |
Shout out a channel¶
ID twitch.shoutout
Gives another streamer a shoutout in your chat. You must be live.
| Setting | Type | Details |
|---|---|---|
| Channel required | Text | A channel name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Output | Meaning |
|---|---|
{shoutout_user} |
Display name of the channel that got the shoutout. |
Stream¶
Set category¶
ID twitch.set_category
Change the game or category of your stream.
| Setting | Type | Details |
|---|---|---|
| Category required | Text | The name as shown on Twitch, for example Just Chatting. A close match is used if there is no exact one. Takes {variables}. |
| Output | Meaning |
|---|---|
{category} |
Name of the category that was set. |
Set tags¶
ID twitch.set_tags
Replace the tags of your stream. Leave the list empty to remove all tags.
| Setting | Type | Details |
|---|---|---|
| Tags | List | Up to 10 tags, each up to 25 letters or digits, with no spaces. Separate entries with commas. |
Set stream title¶
ID twitch.set_title
Change the title of your stream.
| Setting | Type | Details |
|---|---|---|
| Title required | Text | Up to 140 characters. For example: Chill stream with {user}. Takes {variables}. |
Moderation¶
Ban a user¶
ID twitch.ban
Bans a viewer from your chat until you unban them.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Reason | Text | Shown to the user and the other moderators. Up to 500 characters. Takes {variables}. |
Clear chat¶
ID twitch.clear_chat
Removes every message from your chat.
No settings.
Delete the chat message¶
ID twitch.delete_message
Removes a chat message: the one that triggered this, unless a message ID is given.
| Setting | Type | Details |
|---|---|---|
| Message ID | Text | Leave empty to delete the chat message that triggered this. Takes {variables}. |
Time out a user¶
ID twitch.timeout
Stops a viewer from chatting for a while.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Length | Duration | Default 10m For example 10m or 1h. From 1 second to 14 days. |
| Reason | Text | Shown to the user and the other moderators. Up to 500 characters. Takes {variables}. |
Unban a user¶
ID twitch.unban
Lifts a ban or timeout.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
Warn a user¶
ID twitch.warn
Warns a viewer. They cannot chat until they acknowledge the warning.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Reason required | Text | Shown to the user and the other moderators. Up to 500 characters. Takes {variables}. |
Raids¶
Cancel raid¶
ID twitch.cancel_raid
Cancel the raid you started, if it has not happened yet.
No settings.
Start raid¶
ID twitch.raid
Start a raid to another channel. Twitch gives you a short countdown, so you can still cancel it.
| Setting | Type | Details |
|---|---|---|
| Channel required | Text | The channel to raid, for example somestreamer or {user}. Takes {variables}. |
Lookups¶
Get stream info¶
ID twitch.channel_info
Read your current title, category, tags and language into variables, for example for a !title command.
No settings.
| Output | Meaning |
|---|---|
{channel_title} |
Your current stream title. |
{channel_category} |
Your current category (game). |
{channel_tags} |
Your tags, separated by commas. |
{channel_language} |
Your stream language as a two-letter code, for example en. |
Look up viewer¶
ID twitch.user_lookup
Look up a Twitch user and keep what you learn in variables, for example to show their follow age in chat.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A Twitch name, for example {user}, or {arg1} for the first word after a chat command such as !lookup bob. Takes {variables}. |
| Output | Meaning |
|---|---|
{lookup_user} |
The user's display name. |
{lookup_login} |
The user's login name, in lowercase. |
{lookup_id} |
The user's Twitch ID. |
{account_created} |
Day the account was created (YYYY-MM-DD). |
{account_age} |
How old the account is, for example 3 years. |
{avatar_url} |
Link to the user's profile picture. |
{description} |
The user's profile text. |
{broadcaster_type} |
partner, affiliate, or empty. |
{follows_since} |
Day the user followed you (YYYY-MM-DD), or "not following". |
{followage} |
How long the user has followed you, for example 1 year 2 months. Empty if not following. |
{last_game} |
The category the user last streamed, if any. |
{last_title} |
The title of the user's last stream, if any. |
Chat modes¶
Change a chat mode¶
ID twitch.chat_mode
Turns slow, followers-only, subscribers-only, emote-only or unique-chat mode on or off.
| Setting | Type | Details |
|---|---|---|
| Mode required | Choice | One of slow, followers, subscribers, emote_only, unique_chat. |
| State required | Choice | One of on, off. |
| Time | Duration | Slow mode: wait between messages, 3s to 120s (default 30s). Followers mode: how long they must have followed, such as 10m or 24h (default 0 = any follower). Ignored by other modes. |
Shield mode¶
ID twitch.shield_mode
Turns Shield Mode on or off. It applies the safety settings you set up on Twitch.
| Setting | Type | Details |
|---|---|---|
| State required | Choice | One of on, off. |
Roles¶
Add or remove a moderator¶
ID twitch.moderator
Makes someone a moderator of your channel, or takes it away.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Change | Choice | Default add One of add, remove. |
Add or remove a VIP¶
ID twitch.vip
Gives or takes away VIP status in your channel.
| Setting | Type | Details |
|---|---|---|
| User required | Text | A user name, such as {args} or {user_login}. A leading @ is fine. Takes {variables}. |
| Change | Choice | Default add One of add, remove. |
Polls & predictions¶
End poll¶
ID twitch.poll_end
End the running poll now.
| Setting | Type | Details |
|---|---|---|
| Poll ID | Text | Leave empty to end the poll that is running. Or use {poll_id} from "Start poll". Takes {variables}. |
| Hide the results | On/off | Default Off Off: the results stay visible in chat. On: the poll disappears. |
Start poll¶
ID twitch.poll_start
Start a poll in your chat. Only one poll can run at a time.
| Setting | Type | Details |
|---|---|---|
| Question required | Text | Up to 60 characters. Takes {variables}. |
| Choices required | List | Two to five choices, each up to 25 characters. Separate entries with commas. |
| Duration | Duration | Default 1m How long viewers can vote: 15s to 30m. |
| Channel points per extra vote | Number | 0 = viewers cannot spend channel points. Otherwise the price of each extra vote. |
| Output | Meaning |
|---|---|
{poll_id} |
ID of the new poll; give it to "End poll" to end this one. |
Cancel prediction¶
ID twitch.prediction_cancel
Cancel the running prediction and give the points back.
| Setting | Type | Details |
|---|---|---|
| Prediction ID | Text | Leave empty for the prediction that is running. Or use {prediction_id} from "Start prediction". Takes {variables}. |
Lock prediction¶
ID twitch.prediction_lock
Stop taking bets on the running prediction.
| Setting | Type | Details |
|---|---|---|
| Prediction ID | Text | Leave empty for the prediction that is running. Or use {prediction_id} from "Start prediction". Takes {variables}. |
Resolve prediction¶
ID twitch.prediction_resolve
Pick the winning outcome of a prediction and pay out the points.
| Setting | Type | Details |
|---|---|---|
| Prediction ID | Text | Leave empty for the prediction that is running. Or use {prediction_id} from "Start prediction". Takes {variables}. |
| Winning outcome required | Text | The outcome's text, or its number (1 is the first). Takes {variables}. |
Start prediction¶
ID twitch.prediction_start
Start a prediction where viewers bet channel points on an outcome.
| Setting | Type | Details |
|---|---|---|
| Question required | Text | Up to 45 characters. Takes {variables}. |
| Outcomes required | List | Two to ten outcomes, each up to 25 characters. Separate entries with commas. |
| Betting time | Duration | Default 2m How long viewers can place bets: 30s to 30m. |
| Output | Meaning |
|---|---|
{prediction_id} |
ID of the new prediction. |
Channel points¶
Create reward¶
ID twitch.reward_create
Create a new channel point reward. CroStream can change and fulfill rewards it created.
| Setting | Type | Details |
|---|---|---|
| Title required | Text | Up to 45 characters. Must differ from your other rewards. Takes {variables}. |
| Cost required | Number | Price in channel points, at least 1. |
| Description | Text | Up to 200 characters, shown to viewers. Takes {variables}. |
| Viewer must type a message | On/off | Default Off |
| Cooldown | Duration | Time between redemptions, for example 5m. Empty = none. |
| Output | Meaning |
|---|---|
{reward_id} |
ID of the new reward. |
Update reward¶
ID twitch.reward_update
Change a channel point reward that CroStream created: turn it on or off, pause it, or change its price.
Twitch only lets an app change rewards it created, so use Create reward for rewards you want macros to control.
| Setting | Type | Details |
|---|---|---|
| Reward required | Pick | A reward this app created. Twitch only lets an app change rewards it created. Picked from the channel point rewards CroStream created. Takes {variables}. |
| Visible to viewers | Choice | Default unchanged On shows the reward, off hides it. One of unchanged, on, off. |
| Paused | Choice | Default unchanged A paused reward is shown but cannot be redeemed. One of unchanged, on, off. |
| Cost | Number | New price in channel points. 0 = leave the price as it is. |
| Cooldown | Duration | Time between redemptions, for example 5m. Empty = leave as it is. |
Ads¶
Run ad¶
ID twitch.run_ad
Start an ad break on your stream. Only works while you are live and have not run one recently.
| Setting | Type | Details |
|---|---|---|
| Length | Number | Default 30 Seconds: 30, 60, 90, 120, 150 or 180. |
| Output | Meaning |
|---|---|
{ad_length} |
How long the ad runs, in seconds. |
{retry_after} |
Seconds until another ad can be started. |
Snooze next ad¶
ID twitch.snooze_ad
Push your next automatic ad back by five minutes.
No settings.
| Output | Meaning |
|---|---|
{snooze_count} |
How many snoozes you have left. |
{next_ad_at} |
When the next ad is due (UTC, YYYY-MM-DD HH:MM). |
OBS Studio¶
OBS actions need OBS connected. File locations are on the computer that runs OBS.
Also offered here: Clip, Marker, Switch scene (see Shared actions).
Stream & recording¶
Control the OBS recording¶
ID obs.record
Starts, stops, pauses or resumes the recording, or flips it between started and stopped.
| Setting | Type | Details |
|---|---|---|
| Action required | Choice | One of start, stop, toggle, pause, resume. |
| Output | Meaning |
|---|---|
{record_path} |
Path of the finished recording, when the recording was stopped. |
Start a new recording file¶
ID obs.record_split
Ends the current recording file and carries on in a new one, without stopping. Needs OBS 30 or newer.
No settings.
Control the OBS replay buffer¶
ID obs.replay_buffer
Starts or stops the replay buffer that clips are saved from.
| Setting | Type | Details |
|---|---|---|
| Action required | Choice | One of start, stop, toggle. |
| Output | Meaning |
|---|---|
{output_active} |
true or false: whether it is running afterward. |
Control the OBS stream¶
ID obs.stream
Starts or stops streaming from OBS, or flips it between the two.
| Setting | Type | Details |
|---|---|---|
| Action required | Choice | One of start, stop, toggle. |
| Output | Meaning |
|---|---|
{output_active} |
true or false: whether it is running afterward. |
Control the OBS virtual camera¶
ID obs.virtual_cam
Starts or stops the virtual camera other programs can use as a webcam.
| Setting | Type | Details |
|---|---|---|
| Action required | Choice | One of start, stop, toggle. |
| Output | Meaning |
|---|---|
{output_active} |
true or false: whether it is running afterward. |
Sources¶
Add browser source¶
ID obs.add_browser_source
Adds a browser source to a scene in OBS, set to load a web page at a size you choose. Handy for putting an overlay on stream in one step.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | The scene that gets the new source. Picked from your OBS scenes. Takes {variables}. |
| Source name required | Text | The name of the new source. OBS refuses a name already in use. |
| Web address required | Text | The page to show, starting with http:// or https://. |
| Width required | Number | In pixels, 1 to 8192. |
| Height required | Number | In pixels, 1 to 8192. |
| Control audio via OBS | On/off | Default On Sound from the page plays through OBS's mixer instead of the desktop. |
Lock or unlock an OBS source¶
ID obs.source_lock
A locked source cannot be moved by accident while you are live.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. Takes {variables}. |
| Source required | Pick | Picked from your OBS sources. Takes {variables}. |
| Lock required | Choice | One of lock, unlock, toggle. |
| Output | Meaning |
|---|---|
{source_locked} |
true or false: whether the source is locked afterward. |
Change the layer order of an OBS source¶
ID obs.source_order
Brings a source in front of the others, sends it behind them, or moves it one layer.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. Takes {variables}. |
| Source required | Pick | Picked from your OBS sources. Takes {variables}. |
| Move required | Choice | One of front, back, up, down. |
Move, scale or rotate an OBS source¶
ID obs.source_transform
Changes where a source sits in a scene, how big it is, or how it is turned. Only the values you fill in change.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. Takes {variables}. |
| Source required | Pick | Picked from your OBS sources. Takes {variables}. |
| Left position | Text | In pixels from the left edge of the canvas. Leave empty to keep it as it is. Takes {variables}. |
| Top position | Text | In pixels from the top edge of the canvas. Leave empty to keep it as it is. Takes {variables}. |
| Width scale | Text | 1 is the normal size, 2 is double. A negative number mirrors it. Leave empty to keep it as it is. Takes {variables}. |
| Height scale | Text | 1 is the normal size, 2 is double. A negative number flips it. Leave empty to keep it as it is. Takes {variables}. |
| Rotation | Text | In degrees, clockwise. Leave empty to keep it as it is. Takes {variables}. |
Show or hide an OBS source¶
ID obs.source_visibility
Shows, hides or flips a source (a camera, an overlay) inside one scene.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. Takes {variables}. |
| Source required | Text | Takes {variables}. |
| Visibility required | Choice | One of show, hide, toggle. |
| Output | Meaning |
|---|---|
{source_visible} |
true or false after a toggle. |
Audio¶
Mute or unmute an OBS audio source¶
ID obs.audio_mute
Mutes a microphone or any other audio source in OBS, unmutes it, or flips it.
| Setting | Type | Details |
|---|---|---|
| Audio source required | Pick | Picked from your OBS audio sources. Takes {variables}. |
| Audio required | Choice | One of mute, unmute, toggle. |
| Output | Meaning |
|---|---|
{muted} |
true or false: whether the source is muted afterward. |
Set an OBS audio delay¶
ID obs.audio_sync_offset
Delays an audio source so it lines up with the video, for example a microphone that is ahead of the camera.
| Setting | Type | Details |
|---|---|---|
| Audio source required | Pick | Picked from your OBS audio sources. Takes {variables}. |
| Delay (milliseconds) | Number | Default 0 From -950 to 20000. 1000 is one second. Negative plays the audio earlier. |
Set an OBS audio source's volume¶
ID obs.audio_volume
Sets how loud an audio source is, in decibels (dB). 0 is full volume, -20 is quieter, -100 is silent.
| Setting | Type | Details |
|---|---|---|
| Audio source required | Pick | Picked from your OBS audio sources. Takes {variables}. |
| Volume (dB) | Number | Default 0 From -100 to 26. 0 is OBS's normal full volume. |
Filters¶
Change an OBS filter's settings¶
ID obs.filter_settings
Updates some settings of a filter. Settings you leave out stay as they are.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | Picked from your OBS sources. Takes {variables}. |
| Filter name required | Text | Type the filter's name exactly as it shows in OBS. Takes {variables}. |
| Settings required | Text | A JSON object, for example {"brightness": 0.2}. Setting names are the ones OBS uses internally. Use {variables} inside string values. |
Turn an OBS filter on or off¶
ID obs.filter_toggle
Switches a filter (a color correction, a blur, a mask) on a source on, off or flips it.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | The source the filter is on. Audio inputs work too. Picked from your OBS sources. Takes {variables}. |
| Filter name required | Text | Type the filter's name exactly as it shows in OBS. Takes {variables}. |
| Filter required | Choice | One of on, off, toggle. |
| Output | Meaning |
|---|---|
{filter_enabled} |
true or false: whether the filter is on afterward. |
Advanced¶
Press an OBS hotkey¶
ID obs.hotkey
Runs one of OBS's hotkey actions by name, as if you pressed its key.
| Setting | Type | Details |
|---|---|---|
| Hotkey required | Pick | Picked from OBS's hotkey actions. Takes {variables}. |
Switch the OBS profile¶
ID obs.profile
Changes to another OBS profile (its output and video settings).
| Setting | Type | Details |
|---|---|---|
| Profile required | Pick | Picked from your OBS profiles. Takes {variables}. |
Switch the OBS scene collection¶
ID obs.scene_collection
Changes to another set of scenes. OBS may take a moment to load it.
| Setting | Type | Details |
|---|---|---|
| Scene collection required | Pick | Picked from your OBS scene collections. Takes {variables}. |
Send a request to an OBS plugin¶
ID obs.vendor_request
For plugins that add their own remote commands. Needs the plugin's vendor name and request type from its documentation.
| Setting | Type | Details |
|---|---|---|
| Vendor required | Text | Takes {variables}. |
| Request type required | Text | Takes {variables}. |
| Request data | Text | A JSON object, for example {"key": "value"}. Leave empty to send none. Use {variables} inside string values. |
| Output | Meaning |
|---|---|
{vendor_response} |
The plugin's answer, as JSON text. |
Text & media¶
Control an OBS video or audio file¶
ID obs.media
Plays, pauses, stops or restarts a media source, or jumps to the next or previous file of a playlist.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | A media source (a video or audio file). Picked from your OBS sources. Takes {variables}. |
| Action required | Choice | One of play, pause, stop, restart, next, previous. |
Jump to a time in an OBS video or audio file¶
ID obs.media_seek
Moves a media source to a point in the file, counted from the start.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | A media source (a video or audio file). Picked from your OBS sources. Takes {variables}. |
| Position required | Duration | Default 0s For example 30s or 1m30s, from the start of the file. |
Play sound in OBS¶
ID obs.play_sound
Plays a sound file through a media source in OBS, so it goes out on the stream and to OBS monitoring. Set up once: add a Media Source in a scene that is always shown (nest it in every scene), turn on "Close file when inactive", and pick it here.
| Setting | Type | Details |
|---|---|---|
| Media source required | Pick | A Media Source (an ffmpeg or VLC source) that plays the sound. Picked from your OBS media sources. Takes {variables}. |
| Sound file required | Text | The full path on the OBS computer, for example C:\Sounds\airhorn.mp3 Takes {variables}. |
| Wait until it finishes | On/off | Default Off Off: the next step starts right away while the sound plays. |
Reload an OBS browser source¶
ID obs.refresh_browser
Reloads a browser source's page, ignoring its cache. Useful when an overlay gets stuck.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | A browser source. Picked from your OBS sources. Takes {variables}. |
Change the web address of an OBS browser source¶
ID obs.set_browser_url
Makes a browser source load a different web page.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | A browser source. Picked from your OBS sources. Takes {variables}. |
| Web address required | Text | For example: https://example.com/alert?name={user|url}. Use {name|url} to put viewer text into a link safely. Takes {variables}. |
Change the picture of an OBS image source¶
ID obs.set_image
Points an image source at a different picture file on the computer running OBS.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | An image source. Picked from your OBS sources. Takes {variables}. |
| Picture file required | Text | The full path on the OBS computer, for example C:\Pictures\win.png Takes {variables}. |
Change the text of an OBS text source¶
ID obs.set_text
Replaces the words shown by a text source, such as a "latest follower" label.
| Setting | Type | Details |
|---|---|---|
| Source required | Pick | A text source (GDI+ on Windows, FreeType on macOS and Linux). Picked from your OBS sources. Takes {variables}. |
| Text | Text | For example: Latest follower: {user}. Empty clears the text. Takes {variables}. |
Scenes¶
Set the OBS preview scene¶
ID obs.preview_scene
Puts a scene in the preview side of studio mode, ready to be sent live. Studio mode must be on.
| Setting | Type | Details |
|---|---|---|
| Scene required | Pick | Picked from your OBS scenes. Takes {variables}. |
Choose the OBS scene transition¶
ID obs.set_transition
Picks which transition plays when scenes change, and optionally how long it lasts.
| Setting | Type | Details |
|---|---|---|
| Transition | Pick | Leave empty to keep the current transition and only change its length. Picked from your OBS transitions. Takes {variables}. |
| Length | Duration | For example 300ms or 1s. Leave empty to keep the current length. |
Turn OBS studio mode on or off¶
ID obs.studio_mode
Studio mode shows a preview next to the live scene. Turn it on, off, or flip it.
| Setting | Type | Details |
|---|---|---|
| Studio mode required | Choice | One of on, off, toggle. |
| Output | Meaning |
|---|---|
{studio_mode} |
true or false: whether studio mode is on afterward. |
Send the preview scene live¶
ID obs.studio_transition
In studio mode, plays the transition that swaps the preview scene into the live program.
No settings.
Capture¶
Save a screenshot of an OBS source¶
ID obs.screenshot
Saves a picture of a source or a whole scene to a file on the computer running OBS.
| Setting | Type | Details |
|---|---|---|
| Source or scene required | Pick | Type a scene name to capture the whole scene. Picked from your OBS sources. Takes {variables}. |
| Save to required | Text | A folder (the file is named after the source and the time) or a full file name, for example C:\Shots or C:\Shots\win.png Takes {variables}. |
| Picture type | Choice | Default png One of png, jpg. |
| Width | Number | Shrinks the picture to this many pixels wide. 0 keeps the full size. |
| Output | Meaning |
|---|---|
{screenshot_path} |
Where the picture was saved, on the computer running OBS. |
Steam¶
Steam actions need the Steam integration.
Look up a Steam game¶
ID steam.game_info
Reads an installed game's playtime into variables, for a chat command such as !playtime. Playtime is what Steam last recorded; the game being played also counts this session.
| Setting | Type | Details |
|---|---|---|
| Game | Pick | An app ID or a game's name, such as {args}. Leave empty for the game being played. Picked from your Steam games. Takes {variables}. |
| Output | Meaning |
|---|---|
{game} |
The game's name. |
{appid} |
The game's Steam app ID. |
{playtime_hours} |
Your total hours in the game, with one decimal. |
{playtime_2wks_hours} |
Your hours in the game over the last two weeks, with one decimal. |
{last_played} |
The day you last played it, as YYYY-MM-DD; empty when never. |
Launch a Steam game¶
ID steam.launch
Starts a game the way the Play button in Steam does. Steam starts first if it isn't running.
| Setting | Type | Details |
|---|---|---|
| Game required | Pick | Picked from your Steam games. |
| Output | Meaning |
|---|---|
{game} |
The game's name. |
{appid} |
The game's Steam app ID. |
Discord¶
These change your own Discord status through the Discord integration. To post into a channel, use Post to Discord under Tools.
Clear your Discord status¶
ID discord.clear_activity
Removes the activity CroStream set from your Discord profile.
No settings.
Set your Discord status¶
ID discord.set_activity
Shows an activity on your Discord profile, like "Watching" with your stream title and a Watch button. Parts left empty are left out. Discord shows buttons to others only, not to you.
| Setting | Type | Details |
|---|---|---|
| Activity | Choice | Default playing One of playing, watching, listening, competing. |
| Details | Text | The first line, such as {channel_title}. 2 to 128 characters; longer text is shortened. Takes {variables}. |
| State | Text | The second line, such as {channel_category}. Takes {variables}. |
| Timer | Choice | Default none Show the time elapsed: none, since now, or since the stream started (since now when it isn't live). One of none, now, stream. |
| Large image | Text | An image link starting with https://, or the name of an art asset of your Discord application. Takes {variables}. |
| Large image text | Text | Shown when hovering over the large image. Takes {variables}. |
| Small image | Text | A badge on the large image's corner: an https:// link or an asset name. Takes {variables}. |
| Small image text | Text | Takes {variables}. |
| Button 1 label | Text | Up to 32 characters, such as Watch stream. Takes {variables}. |
| Button 1 link | Text | Starts with https://, such as https://twitch.tv/yourname. Takes {variables}. |
| Button 2 label | Text | Takes {variables}. |
| Button 2 link | Text | Takes {variables}. |
Queues¶
Built in. See Queues.
Add to queue¶
ID queue.add
Puts this moment in line. The queue lets it out later at its own pace, and a Queue release trigger then reacts. If the queue is full and refuses new items, this step fails, so a channel point redemption is refunded.
See Queues.
| Setting | Type | Details |
|---|---|---|
| Queue required | Pick | Which queue. Create queues on the Queues page. Picked from your queues. |
| Values | Fields | What to store for each of the queue's fields. Leave a field empty to use its default. One box per field of the chosen queue. |
| Output | Meaning |
|---|---|
{queue_position} |
Where the item stands in line, starting at 1. |
{queue_waiting} |
How many items are waiting, including this one. |
{queue_item_id} |
The new item's ID. |
Clear queue¶
ID queue.clear
Throws away everything waiting in the queue.
| Setting | Type | Details |
|---|---|---|
| Queue required | Pick | Which queue. Create queues on the Queues page. Picked from your queues. |
| Output | Meaning |
|---|---|
{queue_dropped} |
How many items were thrown away. |
Pause queue¶
ID queue.pause
Stops the queue from letting items out. Items keep piling up until you resume it.
| Setting | Type | Details |
|---|---|---|
| Queue required | Pick | Which queue. Create queues on the Queues page. Picked from your queues. |
Release next now¶
ID queue.release_now
Lets the next items out right away without waiting for the interval. This counts as a release, so the interval starts over.
| Setting | Type | Details |
|---|---|---|
| Queue required | Pick | Which queue. Create queues on the Queues page. Picked from your queues. |
| Output | Meaning |
|---|---|
{queue_released} |
How many items were released. |
Resume queue¶
ID queue.resume
Lets a paused queue release items again.
| Setting | Type | Details |
|---|---|---|
| Queue required | Pick | Which queue. Create queues on the Queues page. Picked from your queues. |
Tools¶
Built in: CroStream's own helpers. The Delay, If, Switch and Stop steps are listed here in the macro editor's palette too; they're explained in Macros.
Utilities¶
Change a counter¶
ID tools.counter
Keeps a running number under a name, such as deaths or wins. Counters are remembered when the app restarts.
| Setting | Type | Details |
|---|---|---|
| Counter name required | Text | Capital letters and spaces around the name do not matter. Takes {variables}. |
| Change required | Choice | Default add One of add, subtract, set, reset, get. |
| Amount | Number | Default 1 Used by add, subtract and set. Add and subtract use 1 when this is 0. |
| Output | Meaning |
|---|---|
{count} |
The counter's value after this step. |
Pick at random¶
ID tools.random
Picks one entry from your list at random, for example a winner or a shout-out line. Use the result in later steps.
| Setting | Type | Details |
|---|---|---|
| Options required | List | One entry per line. You can use {variables} in entries. A single line with no line breaks is split at commas instead, as in older versions. |
| Output | Meaning |
|---|---|
{choice} |
The option that was picked. |
{choice_number} |
Its position in the list, starting at 1. |
Set a value¶
ID tools.variable
Saves a piece of text for later steps. Give this step an ID, then use {step_id.value} in a later step to get it back.
| Setting | Type | Details |
|---|---|---|
| Value | Text | Text to save. You can use {variables} in it. Takes {variables}. |
| Output | Meaning |
|---|---|
{value} |
The value that was set. |
Web¶
Post to Discord¶
ID tools.discord
Posts a message to a Discord channel through a webhook. The webhook address works like a password and is stored in your config file.
| Setting | Type | Details |
|---|---|---|
| Webhook address required | Text | From Discord: channel settings, Integrations, Webhooks. Stored in the config file. Left out of exports. |
| Message required | Text | Up to 2000 characters. You can use {variables}. Takes {variables}. |
| Name to post as | Text | Leave empty to use the webhook's own name. Takes {variables}. |
| Output | Meaning |
|---|---|
{status} |
The HTTP status code Discord answered with. |
Send a web request¶
ID tools.http
Calls a web address, for example to trigger another service. Headers can carry keys, so they are never written to the log.
| Setting | Type | Details |
|---|---|---|
| Method required | Choice | Default GET One of GET, POST, PUT, PATCH, DELETE. |
| Address required | Text | Starts with http:// or https://. You can use {variables}; use {args|url} to put viewer text into a link safely. A redirect to another site is refused. Takes {variables}. |
| Headers | List | One per line, written as Name: Value. You can use {variables} in values. A single line with no line breaks is split at commas instead, as in older versions. |
| Body | Text | Text to send with the request. Takes {variables}. |
| Give up after | Duration | Default 10s For example 10s. At most 60s. |
| Do not fail on error answers | On/off | Default Off Off: an answer such as 404 or 500 fails the step. |
| Output | Meaning |
|---|---|
{status} |
The HTTP status code the server answered with. |
{response} |
The start of the server's answer, as text (first 4 KB). |
Screen¶
Clear the screen flash¶
ID tools.screen_clear
Takes down the image that Flash an image on screen is showing, at once. Put it on a hotkey as a panic button.
No settings.
Flash an image on screen¶
ID tools.screen_flash
Flashes an image from your media library over your game for a moment, for example a jump scare. It never takes the keyboard focus and every click goes straight through to the game. Flashing images can trigger seizures in some people: keep it short and use a cooldown on the trigger.
Full guide: Screen flash.
Differences between Windows, macOS and Linux
| System | Support | Notes |
|---|---|---|
| Windows | Works | Shows over windowed and borderless games. A game in exclusive fullscreen hides it. |
| macOS | Limited | Shows over windowed and borderless games; a game in exclusive fullscreen hides it. In browser mode, All monitors flashes only the main one. |
| Linux | Limited | GNOME on Wayland does not allow it; X11 and most other desktops do. Some Linux versions of CroStream report that it isn't available. On Wayland the desktop decides where each monitor's flash goes. In browser mode, All monitors flashes only the main one. |
| Setting | Type | Details |
|---|---|---|
| Image required | Pick | A PNG, JPEG, GIF (animated ones play) or WebP image from your media library. Picked from the images in your media library. |
| Monitor | Pick | Default Main monitor Where to show it. Empty is your main monitor. Choices: Main monitor, All monitors. |
| Show for | Duration | Default 1.5s How long it is on screen, fades included. For example 1.5s; 0.1s to 30s. |
| Fade in | Duration | Default 0.1s For example 0.1s. 0s makes it appear at once. |
| Fade out | Duration | Default 0.4s For example 0.4s. Fades count towards "Show for". |
| Opacity (1-100) | Number | Default 100 Lower lets the game show through the image. Empty is 100, fully solid. |
| Fit | Pick | Default Fit inside How the image is sized to the monitor. Choices: Fit inside, Fill screen, Stretch, Actual size. |
| Size (5-100) | Number | Default 100 Percent of the fitted size. Empty is 100. |
| Position | Pick | Default Center Where an image smaller than the monitor sits. Choices: Center, Top, Bottom, Left, Right, Top left, Top right, Bottom left, Bottom right. |
| Background color | Color | Default #000000 Used when Background opacity is above 0. |
| Background opacity (0-100) | Number | Default 0 Darkens or tints the whole screen behind the image. 0 leaves the game fully visible around it. |
| Shake (0-100) | Number | Default 0 Jiggles the image. 0 holds it still, 100 is violent. |
| Sound | Pick | An optional sound from your media library, played along with the image. Picked from the sounds in your media library. |
| Volume (1-100) | Number | Default 100 Volume of the sound. Empty is 100. |
| Output device | Pick | Where the sound plays. Empty is the system default. Picked from this computer's sound outputs. |
| If one is already showing | Pick | Default Replace it Replace it, or skip this one (the macro carries on either way). Choices: Replace it, Skip this one. |
| Wait until it is gone | On/off | Default Off Off: the next step starts right away while the image shows. |
Sound & files¶
Play a sound¶
ID tools.sound
Plays an audio file (WAV, MP3, OGG or FLAC) on this computer, for example a sound effect for an alert. Choose the output device and the volume, or leave them for the system default.
| Setting | Type | Details |
|---|---|---|
| Sound file required | Text | Full path to the file, such as C:\Sounds\airhorn.mp3. Takes {variables}. |
| Output device | Pick | Empty plays on the system default. Picked from this computer's sound outputs. Takes {variables}. |
| Volume (1-100) | Number | Default 100 Empty plays at full volume (100). |
| Wait until it finishes | On/off | Default Off Off: the next step starts right away while the sound plays. |
Stop all sounds¶
ID tools.sound_stop
Ends every sound started by Play a sound, for example to cut off a long alert.
No settings.
Write to a text file¶
ID tools.write_file
Writes text to a file on this computer, for example a latest-follower name for an OBS text source.
| Setting | Type | Details |
|---|---|---|
| File required | Text | Full path to the file. Its folder must already exist. Takes {variables}. |
| Text | Text | What to write. You can use {variables} in it. Takes {variables}. |
| If the file exists | Choice | Default overwrite One of overwrite, append. |
| Add a new line after the text | On/off | Default On Only used when adding to the end of the file. |
| Output | Meaning |
|---|---|
{path} |
The file that was written. |
Webhooks¶
Built in. See Webhooks.
Send a webhook¶
ID webhooks.send
Sends text, JSON or a form to another system, to a saved destination or to an address of your own, and can turn a JSON answer into variables for later steps. The destination brings its address, sign-in and headers; headers and secrets are never written to the log.
See Webhooks and, for the paths, JSON paths and mapping.
| Setting | Type | Details |
|---|---|---|
| Destination | Pick | A saved destination brings its address, sign-in and headers. Leave empty to send to an address of your own. Picked from your destinations. |
| Address | Text | With a destination: an optional path added to its address, such as /events/{reward|url}. Without one: the full address, starting with http:// or https://. A path can't lead to another site, and a redirect to another site is refused. Takes {variables}. |
| Method | Choice | Default POST One of POST, GET, PUT, PATCH, DELETE. |
| Headers | List | One per line, written as Name: Value. You can use {variables} in values. They are never written to the log. Sent after the destination's own. |
| Body | Choice | Default json One of none, text, json, form, json_raw. none sends no body; text sends Text; json builds a JSON body from fields; form sends form fields; json_raw sends JSON you write yourself. |
| Text | Text | For body text. The text to send. Takes {variables}. |
| JSON fields | Fields | For body json. Each field puts a value at a path, such as user.name, items[0] or tags[] (adds to a list), as Text, Number, Yes / no, Null or JSON. Values take {variables}. At most 200 fields. See Building JSON. |
| JSON | Text | For body json_raw. JSON written out in full. Put variables inside strings as "{name|json}" so quotes and line breaks in them stay valid. Checked after the variables are filled in. |
| Form fields | Fields | For body form. Name and value of each field. Values take {variables}. |
| Read the answer | Fields | Turns values from a JSON answer into variables for later steps: a name, a path, a type, and what to use if the value is missing. At most 100 rows. |
| Give up after | Duration | Default 10s For each try. At most 60s. |
| Retries | Number | Default 0 0 to 5. Tries again, waiting longer each time (0.5s, 1s, 2s, up to 8s), when the request gets no answer or the server answers with a 5xx error. |
| Fail on an error answer | On/off | Default On Off: an answer such as 404 or 500 lets the macro go on, with {status} saying what happened. A request that gets no answer always fails. |
| Output | Meaning |
|---|---|
{status} |
The answer's HTTP status code, such as 200. |
{body} |
The answer's body as text (at most 64 KiB). |
{content_type} |
The answer's content type, such as application/json. |
| each row of Read the answer | One variable named after the row. status, body, content_type and detail can't be used as names. |
In a macro started by an incoming webhook, {body} and {content_type} are already the request's, and an event's variables win. Read the answer's as {stepid.body} and {stepid.content_type}.
Viewers¶
These work on the viewer database.
Look up a viewer¶
ID viewers.lookup
Reads a viewer's points, watch time, follow date and more into variables, for chat commands such as !points, !watchtime and !followage. A viewer who is not in the database is not an error: known is false and the numbers are 0.
| Setting | Type | Details |
|---|---|---|
| Viewer required | Text | Default {user_login} A login or @login. The person who triggered the macro by default. Takes {variables}. |
| Output | Meaning |
|---|---|
{known} |
true when the viewer is in the database, else false. |
{name} |
The viewer's display name. |
{login} |
The viewer's login name. |
{points} |
Their points. |
{rank} |
Their place by points, 1 is the richest; 0 when unranked. |
{watch_time} |
Time watched, such as 12h 5m or 45m. |
{watch_minutes} |
Minutes watched, as a number. |
{streams} |
How many streams they watched or chatted in. |
{messages} |
Chat messages written. |
{bits} |
Bits cheered. |
{gifted} |
Subs gifted. |
{sub_months} |
Months subscribed, the highest count seen. |
{following} |
true when they follow the channel, else false. |
{follow_age} |
How long they have followed, such as 1 year, 3 months or 12 days; empty when not following. |
{followed_at} |
The day they followed, as YYYY-MM-DD; empty when unknown. |
{first_seen} |
The day they were first seen, as YYYY-MM-DD. |
{currency} |
What the points are called. |
Change points¶
ID viewers.points
Adds points to a viewer, takes points away or sets their balance. Use it for rewards, bets and shop items.
See Viewers.
| Setting | Type | Details |
|---|---|---|
| Viewer required | Text | Default {user_login} A login or @login. The person who triggered the macro by default. Takes {variables}. |
| Change required | Choice | Default add One of add, subtract, set. |
| Amount required | Text | A whole number, 0 or more. You can use {variables}, such as {bits}. Takes {variables}. |
| Let the balance go below zero | On/off | Default Off |
| Reason | Text | Shown next to the change in the viewer's history. Takes {variables}. |
| Output | Meaning |
|---|---|
{points} |
The viewer's balance after the change. |
{change} |
How much the balance changed, such as +5 or -20. |
{viewer} |
The viewer's display name. |
Give points to everyone watching¶
ID viewers.points_all
Gives every viewer who is here right now the same number of points, for example as a reward for hitting a goal.
| Setting | Type | Details |
|---|---|---|
| Amount each required | Text | A whole number. A negative number takes points away (balances stop at zero). Takes {variables}. |
| Who required | Choice | Default watching Watching: everyone in the chat list, lurkers included. Chatting: only those who wrote recently. One of watching, chatting. |
| Chatted in the last (minutes) | Number | Default 10 Only used for chatting viewers: 1 to 240. |
| At least | Choice | Default everyone Only viewers with this role or higher. One of everyone, subscriber, vip, moderator. |
| Reason | Text | Shown next to the change in each viewer's history. Takes {variables}. |
| Output | Meaning |
|---|---|
{count} |
How many viewers got the points. |
{amount} |
The amount each of them got. |
Top viewers¶
ID viewers.top
Builds a leaderboard line, for example for a !top command. Points ignore the period; with the stream period an offline channel gives an empty list.
| Setting | Type | Details |
|---|---|---|
| Ranked by required | Choice | Default points One of points, watch, messages, bits, gifted. |
| Period | Choice | Default all This stream, the last 7 days or all time. Not used for points. One of stream, week, all. |
| How many | Number | Default 5 1 to 25. |
| Row format | Text | Default {rank}. {name} ({value}) Per viewer. Uses {rank}, {name}, {login} and {value} (watch time reads like 12h 5m). |
| Between rows | Text | Default · |
| Output | Meaning |
|---|---|
{list} |
The ranking as one line, rows joined by the separator. |
{first} |
The display name of the viewer in first place. |
{count} |
How many viewers are listed. |
Give points to another viewer¶
ID viewers.transfer
Moves points from one viewer to another, for a chat command such as !give. It fails when the giver has too few points.
| Setting | Type | Details |
|---|---|---|
| From required | Text | Default {user_login} The giver. The person who triggered the macro by default. Takes {variables}. |
| To required | Text | Default {arg1} A login or @login (the @ is removed). For a chat command such as !give bob 50, {arg1} is the receiver. Takes {variables}. |
| Amount required | Text | Default {arg2} A whole number above 0. For a chat command such as !give bob 50, {arg2} is the amount. Takes {variables}. |
| Reason | Text | Shown next to the change in both viewers' history. Takes {variables}. |
| Output | Meaning |
|---|---|
{from_points} |
The giver's balance after the gift. |
{to_points} |
The receiver's balance after the gift. |
{to} |
The receiver's display name. |
Overlays¶
These drive the overlays you design in CroStream. Alerts are covered in Alerts.
Show an alert¶
ID overlay.alert
Brings up an alert for a while, with its texts filled in from the event ({user}, {bits}…). Alerts wait for each other, so they never overlap.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The alert or group to show. Picked from the alerts and groups on your overlays. |
| Show for | Duration | Default 6s For example 6s. |
| Animation in | Choice | Default pop One of none, fade, slide-up, slide-down, slide-left, slide-right, zoom, pop. |
| Animation out | Choice | Default fade One of none, fade, slide-up, slide-down, slide-left, slide-right, zoom, pop. |
| Animation length (ms) | Number | Default 500 0 uses 500 ms. |
| Play the sound | Choice | Default overlay In OBS (overlay), on this PC (pc), or both. One of overlay, pc, both. |
| Output device | Pick | For sounds on this PC. Empty uses the default output. Picked from this computer's sound outputs. |
| Volume (1-100) | Number | Default 80 For sounds on this PC. 0 uses 80. |
| Wait until it has played | On/off | Default Off Off: the next step starts right away. |
Hide an overlay element¶
ID overlay.hide
Hides an element or group on an overlay with an animation.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The element or group to hide. Picked from the elements and groups on your overlays. |
| Animation | Choice | Default fade One of none, fade, slide-up, slide-down, slide-left, slide-right, zoom, pop. |
| Animation length (ms) | Number | Default 400 0 uses 400 ms. Choose the animation "none" for an instant change. |
Play media or fire an effect¶
ID overlay.play
Starts a video or sound from the beginning, or fires a burst of a particles element (confetti, fireworks…).
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The video, sound or particles element to play. Picked from the video, sound and particles elements on your overlays. |
Reset an overlay¶
ID overlay.reset
Drops everything macros changed on an element, or on a whole overlay, so it looks like its design again.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | An element, or a whole overlay. Picked from your overlays and their elements. |
Set overlay media¶
ID overlay.set_media
Swaps the image, video or sound of an element for another file from your media library, or clears it.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The image, video or sound element to change. Picked from the video, sound and particles elements on your overlays. |
| Media file | Text | A file from your media library. Leave empty to clear it. |
Set overlay text¶
ID overlay.set_text
Changes the words of a text element. The new text stays until you change it again or reset the overlay.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The text element to change. Picked from the text elements on your overlays. |
| Text | Text | You can use {variables}. Leave empty to clear the text. Takes {variables}. |
Show an overlay element¶
ID overlay.show
Shows an element or group on an overlay with an animation. Optionally hides it again after a while.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The element or group to show. Picked from the elements and groups on your overlays. |
| Animation | Choice | Default fade One of none, fade, slide-up, slide-down, slide-left, slide-right, zoom, pop. |
| Animation length (ms) | Number | Default 400 0 uses 400 ms. Choose the animation "none" for an instant change. |
| Hide again after | Duration | For example 10s. Leave empty to keep it shown. |
Control a timer¶
ID overlay.timer
Starts, pauses, resumes, resets, sets or changes a countdown or stopwatch shown by timer elements, e.g. add 5 minutes for every sub.
| Setting | Type | Details |
|---|---|---|
| Timer required | Pick | The timer's name, as set on the timer element. Picked from the timers on your overlays. |
| Do required | Choice | Default start One of start, pause, resume, reset, set, add, subtract. |
| Amount | Duration | For example 5m. Needed by set, add and subtract, and by start on a new countdown; reset uses it as the countdown's new time. |
| Kind of timer | Choice | Default countdown Used when the timer doesn't exist yet. One of countdown, stopwatch. |
| Longest countdown | Duration | Limits the time left, e.g. 12h for a subathon. Empty keeps the current limit. |
| Output | Meaning |
|---|---|
{remaining} |
Seconds left on a countdown (rounded up), or seconds counted by a stopwatch, after the action. |
{running} |
true while the timer runs, else false. |
Toggle an overlay element¶
ID overlay.toggle
Shows the element if it is hidden and hides it if it is shown.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The element or group to toggle. Picked from the elements and groups on your overlays. |
| Animation | Choice | Default fade One of none, fade, slide-up, slide-down, slide-left, slide-right, zoom, pop. |
| Animation length (ms) | Number | Default 400 0 uses 400 ms. Choose the animation "none" for an instant change. |
Spin the wheel¶
ID overlay.wheel_spin
Spins a prize wheel and picks a winner by chance (a slice's weight is its share). Later steps can use {result}.
| Setting | Type | Details |
|---|---|---|
| Element required | Pick | The prize wheel to spin. Picked from the prize wheels on your overlays. |
| Wait for it to stop | On/off | Default Off Holds the next step until the wheel has stopped spinning. |
| Output | Meaning |
|---|---|
{result} |
The label of the slice the wheel stopped on. |
{result_index} |
That slice's number, counting from 1 in the order of the wheel's list. |
Related¶
- Actions: providers, the Actions page and running one on the spot.
- Macros: putting actions in order.
- Variables and Conditions.