Skip to content

Validation

The validator reads the whole project and reports the structural problems that otherwise surface as “the branch never fires” bugs weeks later in the engine. It runs on demand, it never blocks you, and each finding links to the node it is about.

Click the shield in the toolbar. The panel lists errors and warnings with counts; the shield itself carries a count whenever there are issues, and the same count badges the Details tile in the rail, so you notice a problem without opening anything.

The Validation panel: ready to play, no issues

Each entry names the conversation and node and has a jump link that selects the node on the canvas. ↻ Re-check project runs it again after you fix things.

Errors — the project will not behave as written until these are fixed:

FindingWhat it means
Duplicate IDTwo nodes in a conversation, or two actors/items/places/variables, share an ID. Usually the result of a hand-edited file.
No root node / multiple root nodesA conversation must have exactly one START.
Conversation has no dialog nodesAn empty conversation — delete it or write in it.
Link to missing node / missing conversationA link points at something that was deleted. The card shows the dangling Go to.
Link origin mismatchA link claims to start somewhere it does not — again, a hand-edit artefact.
Bad actor / conversant referenceA node names a speaker that no longer exists.
Condition references undefined variableVariable["trsut"] — a typo, or a variable you renamed.
No actors / no conversations definedThe project is missing one of the essentials.

Warnings — worth a look, often intentional:

FindingWhat it means
Unreachable nodeNo path from START reaches it. It will never play.
Node has no inbound linkAn orphan: nothing links to it within its conversation (a cross-conversation link from elsewhere may still reach it).
Dialogue line has no actorA spoken line with no speaker. Engines will show it with no name, or drop it.
Node has no dialogue or menu textAn empty node — probably a placeholder you forgot.
Script references undefined variableA script sets a variable you never declared. It works at runtime in most engines, but declare it so its initial value is defined.
Variable is defined but never usedHousekeeping.
Duplicate linkThe same link twice; harmless, but it will confuse a menu.
No player actorNo actor has Is player ticked. Some exports need one.
No branching anywhereThe whole project is linear. Fine for a cutscene, suspicious for a game.

Some export formats add their own checks when you choose them — for example the Unity — Dialogue System export warns about two assets whose names collapse to the same Lua key, a | inside a bracketed tag, or a link to a different project file. Those appear in the export’s own report, not in the validation panel. See Exporting and delivering.

Validate before every Play session and before every export. It takes a second, and it turns “why does Act 3 dead-end?” into “node 47 links to a deleted node” before anyone else sees it.

For the exact rule set as a reference — useful when writing your own importer or checking files from another tool — see Validation rules.