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