Create dialogs, characters and scenes to display conversations in your Godot games.
Changelog β Installation β Basic Usage β FAQ β Source structure β Credits
This video will teach you everything you need to know to get started with Dialogic: https://www.youtube.com/watch?v=sYjgDIgD7AY
To install a Dialogic, download it as a ZIP archive. All releases are listed here: releases. Then extract the ZIP archive and move the addons/
folder it contains into your project folder. Then, enable the plugin in project settings.
If you want to know more about installing plugins you can read the official documentation page.
You can also install Dialogic using the AssetLib tab in the editor, but the version here will not be the latest one available since it takes some time for it to be approved.
The Godot editor needs a reboot after enabling Dialogic for the first time. So make sure to reboot after activating it for the first time before submitting a bug request. A fix is present in the 1.2.5 version, but still being tested.
When you export a project using Dialogic, you need to add *.json, *.cfg
on the Resources tab Filters to export...
input field (see image). This allows Godot to pack the files from the /dialogic
folder.
There are two ways of doing this; using gdscript or the scene editor.
Using the Dialogic
class you can add dialogs from code easily:
var new_dialog = Dialogic.start('Your Timeline Name Here')
add_child(new_dialog)
And using the editor, you can drag and drop the scene located at /addons/dialogic/Dialog.tscn
and set the current timeline via the inspector.
Yes, you can use Dialogic to make any kind of game (even commercial ones). The project is developed under the MIT License. Please remember to credit!
Because of how the graph nodes are, the screen gets full of UI elements and it gets harder to follow. If you want to use graph based editors you can try Levraut's LE Dialogue Editor or EXP Godot Dialog System.
I see a lot of people saying that the plugin should come with Godot, but I believe this should stay as a plugin since most of the people making games won't be using it. I'm flattered by your comments but this will remain a plugin :)
It is experimental! So if you want to try it out and you find issues, let us know. Usage:
public override void _Ready()
{
var dialog = DialogicSharp.Start("Greeting", false);
AddChild(dialog);
}
This is the PR that added this feature: dialogic-godot#217
If you are setting the resolution of your game to a very small value, you will have to create a theme in Dialogic and pick a smaller font and make the box size of the Dialog Box smaller as well.
For the characters to be visible during the dialog, you need to add them to the current scene by using the "Character Join" Event. Select the character you want to add, the position and the rest of the settings. Whenever you want them to leave, use the "Character Leave" event.
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. Since you probably won't, here you have a small snippet of how to connect a Dialogic Emit Signal event:
# Example for dialogic_signal
func _ready():
var new_dialog = Dialogic.start('Your Timeline Name Here')
add_child(new_dialog)
new_dialog.connect("dialogic_signal", self, 'example_function')
func example_function(value):
print('value')
Every event emits a signal called event_start
when Dialogic 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.
# Example for timeline_end
func _ready():
var new_dialog = Dialogic.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 = Dialogic.start('')
gdscript_dialog.set_dialog_script( {
"events":[
{ 'event_id':'dialogic_001', "text": "This dialog was created using GDScript!"}
]
})
add_child(gdscript_dialog)
Made by Emilio Coppola.
Contributors: Arnaud, ellogwen, Jowan-Spooner, Tim Krief, and more!. Special thanks: Toen, Γscar, Francisco Presencia. Placeholder images are from Toen's YouTube DF series
Thank you to all my Patreons for making this possible!
Mike King, Tyler Dean Osborne, Problematic Dave, Allyson Ota, Francisco Lepe, Gemma M. Rull, Alex Barton, Joe Constant, Kycho, JDA, Kersla Margdel, Chris Shove, Luke Peters, Wapiti, Penny, Garrett Guillotte, Sl Tu, Alex Harry, Rokatansky, Karl Anderson, GammaGames, Taankydaanky, Alex (Well Done Games), GodofGrunts, Tim Krief, Daniel Cheney, Carlo Cabanilla, Flaming Potato, Joseph Catrambone, AzulCrescent, Hector Na Em, Furroy, Sergey, Container7, BasicIncomePlz, p sis, Justin, Guy Dadon, Sukh Atwal, Patrick Hogan, Jesse Priest, Lunos, Ceah Sharp
Support me on Patreon https://www.patreon.com/coppolaemilio