Skip to content

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 fieldDefault
Seconds5
Stored choice IDtimeout
Display textNo 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

FieldExample value
PromptThree route lights pulse in the dust.
Store Selection In VariablefavoriteColor
Choice 1ID 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 2ID green, text Follow the green service hall, then set Next to the next node in your route.
Choice 3ID blue, text Trust the blue maintenance lift, then set Next to the next node in your route.
Timeout pathSeconds 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

ProblemFix
A choice option does nothingSet that option's Next target.
An option is always lockedCheck its variable condition and expected value.
The selected option is not rememberedSet Store Selection In Variable to a Text variable.
Timeout never firesSet 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.

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.

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.