×
Description
Changelog
Reviews (0)
Godot IMSC Dialogue/Script Player
A lightweight yet powerful JSON dialogue/script player that can be easily integrated into any stage of game development.
You can create a JSON graph from scratch (following JSON schema) or use IMS Creators (Desktop version) to create ready-to-use dialogue graphs in a visual editor.
Works with any Godot 4 project and provides full control over dialog flow, branching, variables, triggers, and serialization.
Features
- π Speech nodes with optional choices (branching dialogs)
- π Conditional branching based on variables or expressions
- π¦ Variable management β set, get, and use in conditions
- β‘ Trigger / Function nodes β invoke game logic and receive outputs
- πΎ Serializable state β save/load, undo/redo, replay
- π Expression evaluation β math, comparison, and logical operators
- π§© Async support β triggers can be asynchronous
- π Subβscripts β
callScriptnodes run nested graphs with isolated variables andin/outdata flow - π§° Custom nodes β register your own exec (flow) or data (expression) node types via
register_custom_node - βΈοΈ Pause/Resume β pause execution during triggers or user input
Documentation
The usage guide and documentation is available on Github.
Example of dialogue graph:
{
"start": "greeting",
"nodes": {
"greeting": {
"type": "speech",
"values": {
"character": "Guard",
"text": "Hello!"
},
"next": "ask"
},
"ask": {
"type": "speech",
"values": {
"character": "Guard",
"text": "What do you want?"
},
"options": [
{ "values": { "text": "I seek adventure." }, "next": "adventure" },
{ "values": { "text": "I want to trade." }, "next": "trade" },
{ "values": { "text": "Nothing, goodbye." }, "next": "end" }
]
},
"trade": {
"type": "trigger",
"subject": "trade",
"next": "ask"
},
"adventure": {
"type": "speech",
"values": {
"character": "Guard",
"text": "Then go east, brave soul!"
},
"next": "end"
},
"end": { "type": "end" }
}
}
Changelog for version v1.0.0
2026-10-20 19:07:21
No changelog provided for this version.