Description
Changelog
Reviews (0)

Branching dialogue and quests for Godot 4. Conversations are graphs of resources with conditions and effects, quests track their objectives from game events, and a visual editor lets you build dialogue graphs inside Godot.

Features

  • Dialogue graphs as resources. A Dialogue holds DialogueNodes; each node has a speaker, text, choices, and a next node for linear lines. Save them as .tres files and edit them in the Inspector or the visual editor.
  • Conditions decide whether a node or a choice is available: a flag, an item count, a quest's state, or several combined with AND or OR.
  • Effects run when a node is entered or left, or a choice is picked: set a flag, give or take items, start or complete a quest, or fire a custom event.
  • Quests with objectives (UNAVAILABLE, AVAILABLE, ACTIVE, COMPLETED, FAILED), prerequisites, optional objectives, rewards, and auto-complete.
  • Objectives that track themselves. Tag an objective item_collected:tonic or enemy_killed:goblin, emit the event from your game, and the quest counts it.
  • A global event bus (GameEvents) so combat, pickups and NPCs never need a reference to the quest system.
  • Save and load: both managers have serialize() and deserialize(), and the state survives a round trip through JSON.
  • A visual dialogue editor (an editor plugin): a "Dialogue" tab with a node graph where you add nodes, write lines, add choices, connect them, and validate the graph.

Requirements

  • Godot 4.7 or later, standard build (GDScript only, no .NET needed).
  • Tested on Godot 4.7.2 stable on Windows, including the editor plugin. Earlier 4.x versions are untested.
  • Uses the Compatibility renderer, so it runs on older GPUs too.

Quick Start

  1. Press F5.
  2. Walk to the alchemist with WASD and press E to talk.
  3. Pick answers with 1, 2 or 3. E or Space continues a line that has no answers.
  4. Accept the quest, collect the three green flasks, and talk to the alchemist again to turn them in.

Known Limitations

  • The visual editor edits dialogues, not quests. Make quests in the Inspector.
  • In the visual editor, the Conditions and Effects buttons open the node in the Inspector rather than editing inline.
  • Starting a dialogue checks only its entry node's conditions. To branch on game state at the start, pick the dialogue in your NPC script (as the demo does) or use choices with conditions.
  • Flags are booleans only.
  • The demo's Inventory is a deliberately tiny id-to-count dictionary.
  • Tested on Godot 4.7.2 on Windows only.

License

MIT for the code. See LICENSE.

Third-Party Assets

The alchemist, knight and flask sprites are from Tiny Dungeon by Kenney, released under CC0 1.0. Details in THIRD_PARTY_ASSETS.md, and the pack's original license is in assets/kenney_tiny-dungeon/License.txt.

Learn How It Works

Want to understand how this works instead of just copying it?

CodingQuests teaches you how to build systems like this step by step in Godot, with interactive lessons and real projects.

  • Dialogue & Quest System builds this system lesson by lesson: branching dialogue with conditional choices, conditions and effects, the runtime that walks the graph, and event-driven quest tracking. The first 4 lessons are free with a free account, and the first 2 need no account at all.

Source code, integration instructions and issue tracker: https://github.com/CodingQuests/godot-dialogue-quest-system

Changelog for version 1.0.0

2026-10-17 01:29:43

No changelog provided for this version.

Reviews

Dialogue & Quest System has no reviews yet.

Login to write a review.

Consider supporting the creators!

If you enjoyed this asset consider supporting its creator. Follow the link below.