A Parley conversation is a single YAML file with three top-level blocks:Documentation Index
Fetch the complete documentation index at: https://docs.kodeflowstudios.com/llms.txt
Use this file to discover all available pages before exploring further.
MetaData (language and reading direction), Aliases (reusable text snippets), and Dialogue (the actual nodes). Files live under Resources/{languageEnglishName}/{folderName}/{langCode}.{fileName}.yaml.
A complete file
Top-Level Blocks
MetaData
Language and reading direction for the file. Used by Parley at load time and and used for UI layout decisions.The language this file is authored in. See LanguageID.
Reading direction.
LTR or RTL. See TextDirection.Aliases
Reusable text snippets, organized asalias → key → value. Anywhere in dialogue text you write @alias.key, the value is substituted at load time. Useful for character names, titles, or any string you want to change in one place.
Aliases resolve into Speaker, Text, and choice Text fields. Other fields (NextNode, flag names, etc.) are not alias-resolved.
Example
Dialogue
The conversation itself — a map of node IDs to nodes. Node IDs are arbitrary strings you reference viaNextNode, TrueNode, and FalseNode. The first node in the map is where the conversation starts.
Example
Node Types
Every node uses the same underlying schema — the fields you populate determine what kind of node it acts as at runtime.Dialogue Node
Spoken dialogue. The most common node type.Who’s talking.
How they feel.
What they say.
Node to advance to. Omit to end the conversation.
Flags to set when this node plays.
A node’s name can be any string such as “node_3” or “help”.
Set Flags Node
A node that hanldes and sets all the flags you need, useful after a node that can’t set its own flags like the Branch Node.Flags to set when this node plays.
Node to advance to when this choice is picked.
Choice Node
A dialogue node that presents the player with options. Same as a Dialogue Node but with aChoices list. When Choices is populated, NextNode on the parent is ignored and is prefered to not be set as it is semantically incorrent. The player’s selection determines the next node.
Who’s prompting the choice.
How they feel.
The prompt itself.
Branch Node
A utility node that routes to one of two targets based on flag state. Branch nodes have no speaker or text. They’re invisible at runtime, used for control flow. WhenCheckFlags is populated, the node evaluates: if every listed flag is set, it routes to TrueNode; otherwise FalseNode.
Flags that must all be set for the True branch.
Node to advance to when all flags are set.
Node to advance to otherwise.
FalseNode back to an earlier node in the conversation to create a loop.