Text-based linear dialogue system for Godot 4.3.
- ✍️ Written in human-readable syntax.
- ✨ Focused on presentation and delivery of your story.
- 📝 100% written in GDScript.
Important
This project is still in development, and is subject to frequent and breaking changes, and bugs.
Rendered | Written |
|
Fine-tune your dialogue flow with {delay}
and {speed}
.
Godette:
"Hello!{delay = 0.7} nice to meet you"
Godette:
"Hello!
delay=0.7
nice to meet you"
Connect your story to the game with function calls.
{player_name}:
"Thanks! that feels so much better"
Player.heal(20)
Ritsu:
"Cheers!"
Portrait.set("ritsu_smile.png")
Call functions only at specific points in the Dialogue.
Dia:
"
Let me brighten up the room a little...{d = 1.1}
{0}
there we go.
"
# Call this function using its index: {0}
Background.set_brightness(1.0)
Write your epic Dialogue!
# write it directly with triple quotation marks
var epic_dialogue = Dialogue.new("""
Dia:
"For performance reason, I'd recommend
using the method below instead."
""")
# alternatively, write it in a *.dlg.txt or *.dlg file, and load it
var epic_dialogue = Dialogue.load("res://epic_dialogue.dlg")
Set the Stage! Create a Stage
node, and reference the Label
& DialogueLabel
node to display your Dialogue. Adjust and configure your Stage
via the inspector. Alternatively, you can also set them in script:
Reference the Stage
node in the script, and set up a way to progress your Dialogue with Stage.progress()
.
func _input(event):
if event.is_action_pressed("ui_accept"):
my_stage.progress()
And finally, start the Stage
func _ready():
my_stage.start(epic_dialogue)
More detailed quick start tutorial here
- Theatre is licensed under MIT.
- Theatre logo, created by nnda, is licensed under CC-BY 4.0.
- Class icons, from @fontawesome, are licensed under CC-BY 4.0.