Skip to content

Logic sub-actions

Ask me for input (popup)

Opens a small window on your computer asking you to type something, then saves your answer in a variable. Handy for actions you start yourself, like asking for a new title.

Setting What to put in
Title The text at the top of the window. The default is Cuebot. Starts as: Cuebot.
Prompt The question shown in the window, like "Which game next?". Starts as: Enter a value.
Original text Text already in the box when the window opens. Empty = an empty box.
Output variable The variable that receives your answer, without % signs. The default inputResult means you use %inputResult% later. Starts as: inputResult.
Auto type output Tick so a number you type is saved as a real number and not just text. Untick if unsure. Starts as: false.

Variables it adds

Variable What it holds
%success% True if you pressed OK, false if you cancelled or no window could open
%inputResult% What you typed (the variable name can be changed in the settings)

Type id: core.getInputDialog

If

Checks something, then runs different steps depending on the answer. Example: IF %message% contains "hello" THEN say hi back. Steps go under True (yes) or False (no).

Setting What to put in
Value The thing to look at, usually a %variable% like %user% or %message%. For "exists" and "does not exist" type only the variable's name, like targetUser. Starts as: %message%.
Operator How to compare. "equals" = the same. "contains" = has it inside. "greater than" and "less than" compare numbers. "is empty" = nothing there. "matches regex" is an advanced search pattern. Options: equals, not equals, contains, does not contain, starts with, ends with, greater than, less than, is empty, is not empty, matches regex, does not exist, exists. Starts as: equals.
Compare to What to compare with, like hello or 100. Capital letters do not matter. Not used for "is empty", "is not empty", "exists" and "does not exist".

Paths it can take: True, False.

Variables it adds

Variable What it holds
%match.count% Only with "matches regex": how many pieces matched
%match[0]% Only with "matches regex": the text that matched (match[1] is the first captured piece)

Type id: core.if

Loop break

Stops the loop you are in right now and carries on with the step after the loop. Use it inside a While loop. Outside a loop it stops the whole action.

Type id: core.loopBreak

Loop continue

Skips the rest of this round of the loop and starts the next round straight away. Use it inside a While loop. Outside a loop it stops the whole action.

Type id: core.loopContinue

Run action

Runs another action from this one, like calling a helper. Good for reusing the same steps in many actions. The other action gets a copy of this action's variables.

Setting What to put in
Action The other action's name, exactly as in your Actions list, like "Play alert sound". A wrong name gives an error.
Wait for it to finish Ticked: this action waits until the other one is done before the next step. Unticked: both run at the same time. Starts as: true.

Type id: core.runAction

Split text into inputs

Cuts a text into pieces and gives each piece its own variable: %input0%, %input1% and so on. Handy for chat like "!give kris 50".

Setting What to put in
Text The text to cut up. The default %rawInput% is what a viewer typed after a command. Starts as: %rawInput%.
Separator What to cut at, like a comma. Empty cuts at spaces.

Variables it adds

Variable What it holds
%input0% The first piece (input1 is the second, and so on)
%inputCount% How many pieces there are

Type id: core.getInput

Stop action

Stops this action right here. The steps below it do not run. Usually put inside an If, like "if the viewer has too few points, stop".

Type id: core.stop

Switch

Like several Ifs in one. It looks at one value and runs the steps of the first case that matches. Example: !color red or blue or green. "Default" runs if nothing matches.

Setting What to put in
Value The value to look at, usually a %variable% like %message% or %input0%. Starts as: %message%.
Cases One case per line, like red. Put several words on one line with | between them (red|crimson) for the same steps. The first match wins.
Match with How each case is compared with the value: "equals" = the same, "contains" = has it inside, and so on. Capital letters do not matter. Options: equals, not equals, contains, does not contain, starts with, ends with, greater than, less than, is empty, is not empty, matches regex. Starts as: equals.

Variables it adds

Variable What it holds
%switchCase% The case line that matched, or Default

Type id: core.switch

While

Repeats the steps inside as long as a check is true, like "while the count is below 5, do this". Handy for doing something several times. It has a safety limit.

Setting What to put in
Value The thing to look at each round, usually a %variable%. The default %loopIteration% counts rounds starting at 0. Starts as: %loopIteration%.
Operator How to compare, like "less than" or "equals". "less than" with 10 repeats while the value is below 10. Options: equals, not equals, contains, does not contain, starts with, ends with, greater than, less than, is empty, is not empty, matches regex. Starts as: less than.
Compare to What to compare with, like 10. The default repeats 10 times (rounds 0 to 9). Starts as: 10.
Safety limit (iterations, 0 = none) The most rounds allowed, so a mistake can never loop forever. 0 = no limit (risky). Starts as: 10000.

Paths it can take: Body.

Variables it adds

Variable What it holds
%loopIteration% Which round you are on, starting at 0

Type id: core.while