Skip to content

Create dialogs, characters and scenes to display conversations in your Godot games.

License

Notifications You must be signed in to change notification settings

LoonyMoth/dialogic

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hero Image Create dialogs, characters and scenes to display conversations in your Godot games.

Version 1.3 - Work in progress 🛠️ Godot v3.3

ChangelogInstallationBasic UsageFAQSource structureCredits


Getting started

This video will teach you everything you need to know to get started with Dialogic: https://www.youtube.com/watch?v=sYjgDIgD7AY

Installation

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.

⚠ IMPORTANT

If you want to export the game and you get an error, try having at least 1 theme in your project.


FAQ

🔷 How can I make a dialog show up in game?

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.

🔷 Can I use Dialogic in one of my projects?

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!

🔷 Why are you not using graph nodes?

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.

🔷 The plugin is cool! Why is it not shipped with Godot?

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 :)

🔷 Can I use C# with Dialogic?

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

🔷 My resolution is too small and the dialog is too big. Help!

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.

🔷 I can't see the character sprites during the dialog!

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.

image

🔷 How do I connect signals?

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 :)')

🔷 Can I create a dialog using GDScript?

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)

Credits

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

MIT License

About

Create dialogs, characters and scenes to display conversations in your Godot games.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • GDScript 99.3%
  • C# 0.7%