Description
Changelog
Reviews (0)
DialogueDSL is a plugin for Godot 4.6+ for creating script-based dialogues with GDScript integration, providing backend that connects to custom UI via a simple interface
Report issues and regressions on Github Issues Source code and latest versions on Github.
Features
- built-in syntax highlighting for
.ddsldialogue scripts - translation support
- no dependencies
- integration with GDScript
- built-in UI with simple customization
- simple interface for creating dialogue UI
- custom input types creation
- structured branching over jumping
Documentation
https://dialoguedsl.readthedocs.io/
Usage
In GDScript
# async
Dialog.start(
"res://path/to/dialogue.ddsl",
Dialog.Options.new(
{}, # constants
false, # singleton access from script, false = sandboxed,
true, # can access named nodes, i.e. %player
false, # cannot access nodes by path, i.e. $control/tilemap
),
{}, # no variables are passed
_callback, # receives Dictionary[String, Variant] of script's variables as sole argument
)
# OR
# retrieve the script's internal variables after it's finished, as Dictionary[String, Variant]
var variables = await Dialog.start(
"res://path/to/dialogue.ddsl"
# no variables = empty
# no options = default
# no callback on finish
)
Example Script
edwin = ^"res://sprites/portraits/edwin.png"
edwin: "Hello, little rover. Are you lost?" { autoconfirm = true }
<- option
- "Yes"
edwin: "Oh, well, we can't have that here. Come, follow me"
Cutscenes.trigger("edwinTavernWalk")
- "No"
edwin: "Are you sure? Well, then... Hope this helps you in your journey"
Inventory.add("potion/health2")
edwin: "If you need me, you can find me in my tavern"
Plans
- add built-in UI: added StylableDialogBox
- add loops: added
whileandforloops - add separate editor for
.ddslscripts - improve sandboxing
- improve error reporting
Changelog for version 1.3.2
No changelog provided for this version.