Skip to content

AnidemDex/Godot-DialogPlugin

Repository files navigation

Dialogue Plugin for Godot Engine

Godot Engine GitHub license GitHub issues Godot Engine


Twitter: @AnidemDex

An user-friendly dialog system for Godot Engine, with timelines, characters, text boxes, dialog bubbles and many more (planned) features for your games.

Be creative 💬

Note: If you find a bug, or want a feature to be included, feel free to open a new issue. You can also send me a message on twitter or Discord (AnidemDex#6740).

⚠Warning⚠

This plugin is not ready for use, yet.

You can try it anyway, but be sure to make a copy of your dialog files. The format will not change, but, just in case.

Installation

Download the lastest release and extract the ZIP file. Move the addons folders to the root of your project. It's that easy!

If you want more information about installing plugins in Godot, please refer to official documentation page.

If you're downloading the repository instead, make sure to move only dialog_plugin to you addons folder. Extra folders are for debug purposes.

What is new on this version? [0.1.4]

  • Say "¡Hola!" to internationalization. Now you can use translations in your dialogs, and export or import those (as .csv) aswell. Don't worry, you can use your own translations before using the plugin.

Want to see the whole changelog? Take a look on CHANGELOG.md

How to use it

This can be separated as 2 different things:

Create your timeline

  1. First, create a timeline, inside the Dialog Editor tab.

    After activating the plugin, go to Dialog Editor tab. It should be next to AssetLib tab.

    Godot View Tabs

    Then, click on Timelines button and New button.

    New Timeline

  2. Add some events to that timeline. A timeline without events will not work, and will halt your game if you try to use it.

    New event

Note: you can also can create timelines and events through code if you preffer.

Instantiate your Dialog node with your timeline

Now you need to create a new Dialog node, and start it with your recently created timeline.

You had 2 options:

🔵 Create it from code:

# ...
# inside any node in the scene
# ...

# Create the node first and start it with your timeline
var dialog_node = Dialog.start(<your_timeline>)

# Add that node to the scene
add_child(dialog_node)

<your_timeline> can be:

  • The name of your timeline (the name that you used when you created it),
  • The absolute path (something like res://dialog_files/timelines/<your_timeline>.tres) to that timeline,
  • A DialogTimelineResource.

🔵 Instantiate it in the scene through the editor:

Instance dialog

Then, select the node:

Dialog Node

And, inside the Inspector tab, select the timeline:

Inspector

That's it, it's fair simple.

For now, there's only 3 events. They'll be more, and you can create your custom events if you want.

Documentation

Please refer to DOCS.md (WIP)

More information

  1. You can extend the functionality