Skip to content

πŸ’¬ A powerful plugin to easily create interactive dialogs, for your visual novels, rpgs, or other game in Godot-Engine.

License

Notifications You must be signed in to change notification settings

theludovyc/Godot_Dialog

Repository files navigation

Godot_Dialog

Godot v3.3 Version License

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


Features

  • 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

Installation

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.

⚠ IMPORTANT

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.

πŸ“¦ Export

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.

Get Started

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.


FAQ

πŸ”· Can I use GDialog in one of my projects?

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!

πŸ”· 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 GDialog and pick a smaller font and make the box size of the Dialog Box smaller as well.

πŸ”· 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.

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

πŸ”· 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 = GDialog.start("")
	
	gdscript_dialog.set_dialog_script( {
		"events":[
			{ "type":GDialog.Event_Type.Text, "text": "This dialog was created using GDScript!"}
		]
	})
	
	add_child(gdscript_dialog)

Credits

Initial project dialogic made by Emilio Coppola

My incredible tester https://github.com/LauraCrossheart

Art sutemo https://sutemo.itch.io/

Music Joseph Gilbert / Kistol

About

πŸ’¬ A powerful plugin to easily create interactive dialogs, for your visual novels, rpgs, or other game in Godot-Engine.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages