Skip to main content
You can get help through several channels:
If you encounter a bug, please open an issue on GitHub and include your Godot version and Dialogue Manager version.
There are several ways to support the development of Dialogue Manager:Every bit of support helps keep this project maintained and improved!
One of the most common causes is implementing player movement inside _process instead of in _unhandled_input.
# Good - uses _unhandled_input
func _unhandled_input(event):
    if event.is_action_pressed("move_left"):
        move_left()

# Bad - uses _process
func _process(delta):
    if Input.is_action_pressed("move_left"):
        move_left()
Connect to the DialogueManager.dialogue_ended signal. The signal provides the DialogueResource that was used to start the dialogue chain.
func _ready():
    DialogueManager.dialogue_ended.connect(_on_dialogue_ended)

func _on_dialogue_ended(resource: DialogueResource):
    print("Dialogue ended for: ", resource.resource_path)
    # Resume player control, trigger next event, etc.
Never edit the original example balloon directly - any changes will be overwritten when updating the addon.
Use the Project > Tools menu to create a copy of the example balloon into your project directory.Once copied, you can customize it by:
  1. Modifying the theme attached to the Balloon panel (most common approach)
  2. Adjusting the layout of UI control nodes
  3. Customizing the provided DialogueLabel and DialogueResponsesMenu nodes
Familiarize yourself with the existing code before making changes to understand how the balloon system works.
To comply with the MIT license, include the license text (or a link to it) somewhere in your game, typically at the end of the credits.You can also add a specific credit like:
Dialogue System by Nathan Hoad
Or any similar attribution you prefer.
There are good reasons why Dialogue Manager exists as an addon:
  • Not universal: Not all games need dialogue systems, especially branching dialogue trees
  • Reduces bloat: Including it in the engine would add unnecessary complexity for many projects
  • Faster iteration: As an addon, features and fixes can be released independently of Godot engine releases
This approach keeps the core engine lean while providing powerful dialogue tools for those who need them.
You can open an issue on GitHub with your suggestion.
Features are carefully considered for wide applicability. Not all suggestions will be implemented, but those that benefit the broader community are more likely to be accepted.

Still have questions?

If your question isn’t answered here, feel free to:

Build docs developers (and LLMs) love