Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser
Quick Information
A flexible dialogue system inspired by the simple syntax of Ren’Py, designed specifically for RPG-style games. This system makes it easy to create branching conversations, player choices, and interactive story moments while staying lightweight and highly customizable.Perfect for RPGs, visual novel elements, quests, and narrative-driven gameplay.FeaturesRen’Py-like syntax for easy dialogue scriptingChoice menus for branching conversationsPlayer text input supportImage support for characters, and UIHighly customizable UI and behaviorDesigned to integrate smoothly with RPG systemsLightweight and easy to expand
Godot Dialogue System
A simple Ren'Py-style dialogue system for Godot that allows NPCs to speak and present the player with interactive choice menus.
This system is designed to be lightweight, modular, and easy to integrate into existing scenes. It supports displaying NPC dialogue, showing character names, and presenting branching choices that can trigger functions in your game.
Features
- NPC dialogue with speaker names
- Dialogue UI overlay using
CanvasLayer - Dynamic choice menus
- Choices can call functions in the parent scene
- Easy to reuse across multiple NPCs
- Works well for visual novel style interactions
how to use
every NPC can have thier own Dialog system. this system will create child nodes inside the NPC Node you can watch this youtube video for full explaantion and example
var dialog func _ready() -> void: var dio=Dialog.new() dialog=dio.start(self) dialog.npc_name="ellie" #NPC name dialog.image="image path" #NPC photo
func talk(): dialog.text="hello there how are you ?" dialog.text="do you like apples?" #to add a question with menu dialog.menu("do you like apples?", { "Yes": "yes_function", "No": "No_function", }) func yes_function(): dialog.text="Great I love them too" #to add a user Input var name =await dialog.input("what is your name?") dialog.text="hello "+name
func No_function(): dialog.text="oh they are healthy. they keep the Dr. Away"
A flexible dialogue system inspired by the simple syntax of Ren’Py, designed specifically for RPG-style games. This system makes it easy to create branching conversations, player choices, and interactive story moments while staying lightweight and highly customizable.
Perfect for RPGs, visual novel elements, quests, and narrative-driven gameplay.
Features
Ren’Py-like syntax for easy dialogue scripting
Choice menus for branching conversations
Player text input support
Image support for characters, and UI
Highly customizable UI and behavior
Designed to integrate smoothly with RPG systems
Lightweight and easy to expand
Reviews
Quick Information
A flexible dialogue system inspired by the simple syntax of Ren’Py, designed specifically for RPG-style games. This system makes it easy to create branching conversations, player choices, and interactive story moments while staying lightweight and highly customizable.Perfect for RPGs, visual novel elements, quests, and narrative-driven gameplay.FeaturesRen’Py-like syntax for easy dialogue scriptingChoice menus for branching conversationsPlayer text input supportImage support for characters, and UIHighly customizable UI and behaviorDesigned to integrate smoothly with RPG systemsLightweight and easy to expand