Text Input
Stores the player’s typed response in a Text 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 you 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!When you rename a variable key in Properties, VNC rewrites variable templates it owns, including dialog text, Text Input prompts, title cards, character display names, and dialog cue trigger text.
VNC also updates direct variable fields it owns, such as Store In Variable, Store Selection In Variable, Set Variable targets, Condition branches, and Name From Variable.
| Kind | Use it for | Common nodes |
|---|---|---|
| Text | 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. |
| True/False | Flags such as hasBadge, metCharacter, unlockedRoute. | Set Variable, Condition, locked choice options. |
The default value must match the selected kind. A True/False variable uses True or False, a Number variable uses a number, and a Text variable uses 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 Text variable.
Choice
Stores the selected option ID in a Text 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 with Equals To 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 |
|---|---|---|
| Text | Set, Append | Set uses Value. Append uses Append Text. |
| Number | Set, Increase, Decrease | Increase and Decrease use Amount. |
| True/False | Set, Toggle | Toggle has no value field. |
If an operation is missing or invalid for the kind, the runtime treats it as 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 Text, Number, and True/False values to text when it resolves the template.
Characters can use a Text 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.
Good variable habits make branching easier to read later. When keys describe story state clearly, Dialog, Choice, Condition, and Set Variable nodes all become easier to connect without guessing.