Copyright © 2025-2026 Candy ArtsDialogue Structure
A Dialogue is divided into Conversations, each divided into Blocks, each containing Lines. Each Line is a configured Command, which instructs the Engine to do one thing: make an Actor speak, play media, modify a variable...
Rules
Organization
How a Dialogue is divided is free: a game's entire dialogue fits in a single Block, as well as in a different Conversation for every exchange.
A game can also contain several Dialogues, which adds a level of organization.
Naming
Dialogues, Conversations and Blocks are named freely.
The only rule is that two Conversations can't share a name, nor can two Blocks inside the same Conversation.
Progression
When your game runs a Dialogue, it names the Conversation, Block and Line the Engine starts at.
The Lines of a Block run in order, one at a time. After the last Line of a Block, the Dialogue ends: it doesn't continue to the next Block.
Navigation
A Dialogue isn't confined to a single Block: a Transition Command moves the Dialogue to another Line, Block or Conversation.
For example, a long Block is divided into smaller ones, and a Transition Command at the end of each Block moves the Dialogue to the next.
Branching
A Transition Command inside a Condition Command branches the Dialogue. Condition Commands are the equivalent of GDScript's if/elif/else conditions and for/while loops.
At any point of a Block, the Dialogue can therefore move to a different Block when a condition is fulfilled.
Player Choices
A Dialogue can also present Choices to the player. A Choice triggers a Transition Command to another Conversation, Block or Line, where further Commands produce the effects of that Choice.