Choice
Choice is the node you use when the player should decide what happens next.
Use Insert > Dialogue & Logic > Ask a Choice when a route branches because of player intent.
Properties
Node-specific properties
| Field | What it does |
|---|---|
| Prompt | Text shown above the choices. Supports variable templates. |
| Choices | No fixed limit; long lists scroll. Reorder rows with their arrow controls or by dragging them in Explorer. |
| Store Selection In Variable | Optional Text variable that receives the selected option ID. |
Inherited/common properties
| Field | What it does |
|---|---|
| Name | Optional label used in the editor and Story Map. Leave it empty to use VNC's automatic node name. |
| Style Preset Override | Use a preset for this node, or leave empty to inherit Scene Style > Project Style. |
Conditional Options
Each option can also include a condition and locked text. If the condition does not pass, the option appears disabled and can show its locked text instead of the normal option text.
Timeout Path
Choice nodes can have a timeout path. When enabled, the runtime waits for the configured number of seconds, then follows the timeout target if the player has not picked an option.
| Timeout field | Default |
|---|---|
| Seconds | 5 |
| Stored choice ID | timeout |
| Display text | No choice made |
The timeout only runs when it has a positive duration and a timeout target.
During the countdown, players see the display text with the seconds remaining, such as Stay silent in 8s. With the default display text, the countdown reads Auto-continues in 5s.
Example Setup
| Field | Example value |
|---|---|
| Prompt | Three route lights pulse in the dust. |
| Store Selection In Variable | favoriteColor |
| Choice 1 | ID red, text Take the red emergency stairwell, condition hasBadge Is True, locked text Locked: the archive badge is missing., then set Next to the next node in your route. |
| Choice 2 | ID green, text Follow the green service hall, then set Next to the next node in your route. |
| Choice 3 | ID blue, text Trust the blue maintenance lift, then set Next to the next node in your route. |
| Timeout path | Seconds 8, stored choice ID alarm_timeout, display text Stay silent, then set Next to the next node in your route. |
Runtime Behavior
When the node runs, VNC resolves the prompt and visible option text, checks option conditions, then waits for the player. The selected option's target becomes the next node.
If Store Selection In Variable is set, the selected option ID is written into that Text variable. See Variables & Text for how stored option IDs work with later conditions.
Common Mistakes
| Problem | Fix |
|---|---|
| A choice option does nothing | Set that option's Next target. |
| An option is always locked | Check its variable condition and expected value. |
| The selected option is not remembered | Set Store Selection In Variable to a Text variable. |
| Timeout never fires | Set both a timeout duration and a timeout target. |
Choice nodes are easiest to maintain when each option leads to a short, named branch that returns to a clear merge point.
Timed choices
Section titled “Timed choices”The countdown begins after the option text finishes and the choices are available. Opening a runtime menu pauses the countdown. Skipping the text starts the full decision window, and a restored Choice waits until it is shown before its timer begins.
Longer choice lists
Section titled “Longer choice lists”Choice nodes do not have a fixed option limit. Add as many options as the story needs, then connect each option to its next node. In Preview and the installed runtime, a choice list that is taller than the available space becomes scrollable.
Option order is the order players see. Use the up/down controls in Properties, or drag an option within its Choice node in Explorer, to reorder it. Its option ID, text, condition, locked text, and Next destination move together.
When you insert a Choice after a node that already continues to another node, VNC leaves that connection unchanged and adds the Choice disconnected, with its default Yes and No options unconnected. Connect the Choice into the route, then give each option its own Next destination. On an empty connection, such as after the last node in a route, the new Choice connects automatically. Pasting a Choice onto a connection that already continues is refused; paste it onto an empty connection instead. Condition nodes follow the same rules.