Skip to content

Condition

Condition is how a route reacts to story state. It checks variables or Roblox platform state, then sends the player down the first branch that matches.

Use Insert > Dialogue & Logic > Branch on Variable when the story should change because of earlier choices, scores, flags, or typed text.

Properties

Node-specific properties

Field What it does
Branches Up to 4 ordered branches, each with up to 8 predicates and its own target node. The first matching branch wins.
Otherwise Optional target used when no branch matches.

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.

Operators

OperatorMeaning
Equals ToVariable equals the value.
Does Not EqualVariable does not equal the value.
Greater ThanNumber variable is greater than the value.
Less ThanNumber variable is less than the value.
Is TrueTrue/False variable is True.
Is FalseTrue/False variable is False.
Has BadgePlayer owns the selected badge.
Owns GamePassPlayer owns the selected GamePass.
Has Roblox PremiumPlayer has Roblox Premium.

Runtime Behavior

Each branch evaluates its predicates with Match All or Match Any. All requires every predicate to match; Any requires at least one. VNC checks branches in order, and the first matching branch wins.

If no branch matches and Otherwise is empty, the current path ends.

Variable operators use the selected project variable. Platform operators such as Has Badge, Owns GamePass, and Has Roblox Premium check Roblox state directly and do not need a project variable.

Example Setups

GoalSetup
Route by stored choiceBranch 1 checks variable favoriteColor, operator Equals To, value red, then set Next to the next node in your route; set Otherwise to a fallback node in the route.
Gate a protected routeBranch 1 checks True/False variable hasBadge, operator Is True, then set Next to the next node in your route; set Otherwise to a fallback node in the route.
Gate a GamePass routeBranch 1 uses operator Owns GamePass, GamePass ID 123456, then set Next to the next node in your route; set Otherwise to a fallback node in the route.
Recall entered textBranch 1 checks Text variable playerName, operator Does Not Equal, value "", then set Next to the next node in your route; set Otherwise to a fallback node in the route.

Common Mistakes

ProblemFix
The wrong branch runsPut the most specific branch first.
A branch never runsCheck the variable kind and operator.
A route stops unexpectedlySet Otherwise or make sure one branch always matches.
Number comparison behaves strangelyUse a Number variable, not a Text variable.

Conditions are easiest to troubleshoot when each branch points to a small named node. The Story Map then shows the route shape clearly.

Each branch contains an ordered group of predicates. Set Match to All for AND behavior or Any for OR behavior. VNC follows the first branch whose group matches; if none match, it follows Otherwise.

The Condition node’s Branches section manages the branch list. Select a nested branch in Explorer to configure its match mode, predicates, and destination. Select the nested Else route to configure Otherwise.

Branch order changes behavior because the first matching branch wins. Use the up/down controls in Properties, or drag a branch within its Condition node in Explorer, to reorder it. Its match mode, predicates, and destination move together.

Predicates can mix story variables with Roblox platform checks. Has Badge uses a positive whole-number Badge ID, Owns GamePass uses a positive whole-number GamePass ID, and Has Roblox Premium needs no additional value. Properties hides fields that do not apply to the selected operator.

From the selected branch, use Add predicate to extend it and the arrow/delete controls to reorder or remove predicates. An empty group, invalid platform ID, missing variable, or duplicate identical predicate is reported in Output.

A Condition can expose up to 4 branches, and each branch can contain up to 8 predicates. Keep the most specific branch first because VNC follows the first branch whose group matches.

Editor preview cannot read a real player’s Badge, GamePass, or Premium state. Select the project and configure Preview Platform Conditions to provide the states used by preview. A platform predicate without an override reports a warning and deterministically evaluates as false. Installed-runtime play tests remain the authoritative check of live Roblox ownership.