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.
Branch Nodes are nodes that you can use to create loops and create if statements inside the dialogue file itself without needing to make logic with code.
Set Flags
Another way could be to set some flags through code like bought two items out of a three item pool:start:
Speaker: "Merchant"
Text: "What will you buy?"
Choices:
- Text: "Camera"
NextNode: node_camera
- Text: "Piano Keyboard"
NextNode: node_piano
- Text: "Guitar"
NextNode: node_guitar
node_camera:
Speaker: "Merchant"
Text: "Great choice! That'll be $300."
SetFlags:
- bought_item
NextNode: can_buy
node_piano:
Speaker: "Merchant"
Text: "Great choice! That'll be $500."
SetFlags:
- bought_item
node_guitar:
Speaker: "Merchant"
Text: "Great choice! That'll be $200."
SetFlags:
- bought_item
can_buy:
CheckFlags:
- max_bought
TrueNode: node_done
FalseNode: start
node_done:
Speaker: "You"
Text: "Oop, that's all I can afford for now! Thanks for your service."
And the code for it would look something like:int totalItems = 0;
if (parleyYaml.Flags.IsFlagSet("bought_item"))
{
totalItems++;
parleyYaml.Flags.ClearFlag("bought_item");
}
if (totalItems >= 2)
{
parleyYaml.Flags.SetFlag("max_bought");
}
Loops
You can create a loop in your dialogue using a branch node by having it keep rechecking a flag until it is true, here are several ways you can use this:node_1:
Speaker: "Robin"
Text: "What will we eat today?"
Choices:
- Text: "Pizza"
NextNode: node_2
- Text: "Burger"
SetFlags: # can be used either way, in choice or in node.
- wants_burger
NextNode: node_4
node_2:
SetFlags:
- wants_pizza
node_3:
CheckFlags:
- wants_pizza
TrueNode: node_5
FalseNode: node_4
node_4:
Speaker: "Robin"
Text: "Ew No!!"
NextNode: node_1
node_5:
Speaker: "Robin"
Text: "YESSS My favourite!"
Item Validation
You could also have a person keep saying something or an action keep getting repeated if for example the player is missing an item!node_1:
Speaker: "Guard"
Text: "Who goes there!"
NextNode: node_2
node_2:
Speaker: "Peasant"
Text: "Just a passer by, I need to get into the caslte."
NextNode: armour_check
armour_check:
CheckFlags:
- is_wearing_armour
TrueNode: node_3
FalseNode: node_4
node_3:
Speaker: "Guard"
Text: "Get our of hear before I put your head on a stick!"
node_4:
Speaker: "Guard"
Text: "Of course, welcome back. His majesty was looking for you."
And the code would be a simple SetFlag("is_wearing_armour") before running the dialgoue.Hanging Dialogue
You could also make a dialogue hang until something happens, instead of quitting the dialogue, simply set a flag that would hide the UI, and have the player do something. For example we could make a character refuse to continue a dialogue before the player talks to another character.node_5:
Speaker: "Hisham"
Text: "Please go ask Monica first.."
NextNode: ask_check
ask_check:
CheckFlags:
- asked_monica
TrueNode: node_6
FalseNode: node_5
node_6:
# dialogue continues
And the code would only need to call SetFlag("asked_monica") when the player interacts with the character named Monica, then hiding the UI.As you can see, while the building blocks are simple by design, they open a lot of possibilites and allow for some fairly versatile options.For more info on branch nodes, see Reference: Branch Node.Set Flags
Another way could be to set some flags through code like bought two items out of a three item pool:And the code for it would look something like:int totalItems = 0;
if (parleyYaml.Flags.IsFlagSet("bought_item"))
{
totalItems++;
parleyYaml.Flags.ClearFlag("bought_item");
}
if (totalItems >= 2)
{
parleyYaml.Flags.SetFlag("max_bought");
}
Loops
You can create a loop in your dialogue using a branch node by having it keep rechecking a flag until it is true, here are several ways you can use this:Item Validation
You could also have a person keep saying something or an action keep getting repeated if for example the player is missing an item!And the code would be a simple SetFlag("is_wearing_armour") before running the dialgoue.Hanging Dialogue
You could also make a dialogue hang until something happens, instead of quitting the dialogue, simply set a flag that would hide the UI, and have the player do something. For example we could make a character refuse to continue a dialogue before the player talks to another character.And the code would only need to call SetFlag("asked_monica") when the player interacts with the character named Monica, then hiding the UI.As you can see, while the building blocks are simple by design, they open a lot of possibilites and allow for some fairly versatile options.For more info on branch nodes, see Reference: Branch Node.