A powerful plugin to easily create interactive dialogs, for your visual novels, rpgs, or other game in Godot-Engine.
Works in 2D and 3D.
Complete solution with visual editor to edit dialog's themes, timelines, characters, and saved values.
Installation β FAQ β Credits
- Timeline Editor
- Easily create new timeline and edit it
- Lots of event-nodes (Text, If/Else, Character Join, Set Background... see wiki)
- Change timeline to another with an event
- Character Editor
- Easily create new character and edit it
- Load portraits/moods and scale it
- Names are automatically colored in dialogs
- Value Editor
- Easily create new values and edit it
- Use them with timeline events or in your code
- Theme Editor
- Easily customize your dialog's look
- See what can be look during edition
- Branching dialog
- Show dialog depending on previous choices
- Conditional dialog
- Show dialog and choices depending on in-game values
- Display custom values in dialog
- Execute actions with dialog
- Emit/Receive signals as needed to connect on your logic
- Json
- All files are saved in json format
To install Godot_Dialog plugin, download it as a ZIP archive. Then extract the addons/GDialog
folder into your project folder. Then, enable the plugin in project settings and restart Godot-Engine.
If you want to know more about installing plugins you can read the official documentation page.
The Godot editor needs a reboot after enabling GDialog for the first time. So make sure to reboot after activating it for the first time before submitting an issue.
When you export a project using GDialog, you need to add *.json, *.cfg
on the Resources tab Filters to export...
input field. This allows Godot to pack the files from the /GDialog
folder.
There are two ways of doing this; using gdscript or the scene editor.
Using the GDialog
singleton you can add dialogs from code easily:
var new_dialog = GDialog.start("Your Timeline Name Here")
add_child(new_dialog)
And using the editor, you can drag and drop the scene located at /addons/GDialog/Dialog.tscn
and set the current timeline via the inspector.
For further informations see this wiki.
Yes, you can use GDialog to make any kind of game (even commercial ones). The project is developed under the MIT License. Please remember to credit!
If you are setting the resolution of your game to a very small value, you will have to create a theme in GDialog and pick a smaller font and make the box size of the Dialog Box smaller as well.
Signals work the same way as in any Godot node. If you are new to gdscript you should watch this video which cover how Godot signals work: How to Use Godot's Signals.
Every event emits a signal called event_start
when GDialog starts that event's actions, but there are also two other named signals called timeline_start(timeline_name)
and timeline_end(timeline_name)
which are called at the start and at the end respectively.
Here you have a small snippet of how to connect a GDialog signal:
# Example for timeline_end
func _ready():
var new_dialog = GDialog.start('Your Timeline Name Here')
add_child(new_dialog)
new_dialog.connect('timeline_end', self, 'after_dialog')
func after_dialog(timeline_name):
print('Now you can resume with the game :)')
Yes! it is a bit harder since you will have to create each event yourself, and to do that they have to be valid. You can check already created timelines with a text editor and see how an event should look like. A better tutorial and improvements will come soon.
A simple example:
func _ready():
var gdscript_dialog = GDialog.start("")
gdscript_dialog.set_dialog_script( {
"events":[
{ "type":GDialog.Event_Type.Text, "text": "This dialog was created using GDScript!"}
]
})
add_child(gdscript_dialog)
Initial project dialogic made by Emilio Coppola
My incredible tester https://github.com/LauraCrossheart
Art sutemo https://sutemo.itch.io/
Music Joseph Gilbert / Kistol