Text Input
Stores the player’s typed response in a string variable.
Variables are how the runtime remembers story state. They let a story remember things like the player’s name, a selected route, a score, or whether a badge has been earned.
This is the page to read if a field says Store In Variable and you are not sure what happens next.
Each variable has two important labels:
The stable key used by nodes and text templates.
Example: playerName
The human-readable label shown to authors in the editor.
Example: Player Name
When you reference a variable in story text, use the Variable Key, not the display name.
Nice to meet you, {playerName}!If playerName currently stores Bobo, the runtime shows:
Nice to meet you, Bobo!| Kind | Use it for | Common nodes |
|---|---|---|
string | Names, selected option IDs, route labels, short text values. | Text Input, Choice, Dialog text, Set Variable, Condition. |
number | Scores, counters, trust values, timers, progress values. | Set Variable, Condition. |
boolean | Flags such as hasBadge, metCharacter, unlockedRoute. | Set Variable, Condition, locked choice options. |
The default value must match the kind. A boolean variable needs true or false, a number variable needs a number, and a string variable needs text.
Store In Variable means “when this node finishes, write a value into this variable.”
Text Input
Stores the player’s typed response in a string variable.
Choice
Stores the selected option ID in a string variable when Store Selection In Variable is set.
playerName.playerName.{playerName} in the Dialog text.Example dialog text:
Nice to meet you, {playerName}!The Text Input node does not automatically create a character. It only stores text. You can then reuse that text in dialog, title cards, prompts, or a character’s displayed speaker name.
A Choice node can store the option the player picked.
favoriteColor.red, green, and blue.favoriteColor.favoriteColor equals red.The stored value is the option ID, not the option text. This is intentional. Option text can be rewritten for players, while option IDs stay stable for conditions and saves.
Set Variable uses a different operation list depending on the selected variable kind:
| Kind | Operations | Operand |
|---|---|---|
string | set, append | set uses Value. append uses Append Text. |
number | set, increment, decrement | increment and decrement use Amount. |
boolean | set, toggle | toggle has no value field. |
If an operation is missing or invalid for the kind, the runtime normalizes it to set. That keeps old data from crashing, but you should still fix the warning or field before release.
Use {variableKey} in supported text fields. Variable keys must start with a letter or underscore and then use letters, numbers, or underscores.
Common places include:
If a variable is missing or has no value, the runtime leaves the template visible. For example, {playerName} stays {playerName} if no variable value exists.
The runtime converts string, number, and boolean values to text when it resolves the template.
Characters can use a string variable as their runtime display name.
playerName.playerName.At runtime, the speaker name uses the variable value when it is not empty. If the variable is empty, the character falls back to its normal name.