# nathanhoad/godot_dialogue_manager architecture

> Architecture diagram of the GitHub repository nathanhoad/godot_dialogue_manager, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nathanhoad/godot_dialogue_manager
- Repository: https://github.com/nathanhoad/godot_dialogue_manager

## Overview

Dialogue Manager is a Godot addon for authoring and running stateless branching dialogue. A game starts a dialogue through an actionable node or the manager API; a balloon requests dialogue lines, presents text and responses, and requests the next line. The tree also shows a substantial editor, compiler, translation, debugging, and game-state surface. The README establishes the product capabilities, while the sampled runtime excerpts confirm the actionable, balloon, line-display, response, and state-context connections; unsampled subsystem wiring is left unspecified.

Main entry points: [`addons/dialogue_manager/dialogue_manager.gd`](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_manager.gd) (Dialogue manager), [`addons/dialogue_manager/example_balloon`](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/example_balloon) (Example balloon), [`addons/dialogue_manager/dialogue_resource.gd`](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_resource.gd) (Dialogue resource), [`addons/dialogue_manager/views`](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/views) (Dialogue editor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Dialogue runtime"]
  node_actionable["Actionable nodes"]
  node_manager["Dialogue manager"]
  node_processor["Dialogue processor"]
  node_resource["Dialogue resource"]
  node_compiler["Dialogue compiler"]
  node_line["Dialogue line<br/>[dialogue_line.gd]"]
  node_response["Dialogue response"]
end

subgraph group_presentation["Game presentation"]
  node_balloon["Example balloon"]
  node_label["Dialogue label"]
  node_menu["Responses menu"]
end

subgraph group_authoring["Dialogue authoring"]
  node_editor["Dialogue editor"]
  node_editor_plugin["Editor plugin<br/>[plugin.gd]"]
end

subgraph group_support["State and localization"]
  node_translation["Translation support<br/>[translations.gd]"]
  node_translation_parser["Translation extraction"]
  node_state_context["State context"]
  node_state["Dialogue state<br/>[builtins.gd]"]
  node_debugger["Dialogue debugger<br/>[debugger_view.gd]"]
end

node_developer(("Game developer"))
node_player(("Player"))
node_game(("Godot game"))

node_developer -->|"authors dialogue"| node_editor
node_editor_plugin -->|"opens tools"| node_editor
node_editor -->|"edits resource"| node_resource
node_resource -->|"compiles dialogue"| node_compiler
node_actionable -->|"starts dialogue"| node_manager
node_balloon -->|"requests lines"| node_manager
node_manager -->|"processes dialogue"| node_processor
node_processor -->|"reads dialogue"| node_resource
node_manager -->|"returns line"| node_line
node_balloon -->|"sets line"| node_label
node_balloon -->|"sets responses"| node_menu
node_menu -->|"selects response"| node_response
node_player -->|"advances dialogue"| node_balloon
node_state_context -->|"registers context"| node_manager
node_manager -->|"uses state"| node_state
node_translation_parser -->|"extracts strings"| node_translation
node_manager -->|"translates text"| node_translation
node_manager -->|"reports runtime"| node_debugger
node_game -->|"triggers"| node_actionable

click node_actionable "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/actionable"
click node_manager "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_manager.gd"
click node_processor "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_processor.gd"
click node_resource "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_resource.gd"
click node_compiler "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/compiler"
click node_line "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_line.gd"
click node_response "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_response.gd"
click node_balloon "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/example_balloon"
click node_label "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/dialogue_label"
click node_menu "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/responses_menu"
click node_editor "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/views"
click node_editor_plugin "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/plugin.gd"
click node_translation "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/utilities/translations.gd"
click node_translation_parser "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/editor_translation_parser_plugin.gd"
click node_state_context "https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/context"
click node_state "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/utilities/builtins.gd"
click node_debugger "https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/views/debugger_view.gd"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_actionable,node_manager,node_processor,node_resource,node_compiler,node_line,node_response toneBlue
class node_balloon,node_label,node_menu toneAmber
class node_editor,node_editor_plugin toneMint
class node_translation,node_translation_parser,node_state_context,node_state,node_debugger toneRose
class node_developer,node_player,node_game toneIndigo
```

## Components

### Dialogue runtime

- [Actionable nodes](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/actionable): `addons/dialogue_manager/nodes/actionable`
- [Dialogue manager](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_manager.gd): `addons/dialogue_manager/dialogue_manager.gd`
- [Dialogue processor](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_processor.gd): `addons/dialogue_manager/dialogue_processor.gd`
- [Dialogue resource](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_resource.gd): `addons/dialogue_manager/dialogue_resource.gd`
- [Dialogue compiler](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/compiler): `addons/dialogue_manager/compiler`
- [Dialogue line](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_line.gd): `addons/dialogue_manager/dialogue_line.gd`
- [Dialogue response](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/dialogue_response.gd): `addons/dialogue_manager/dialogue_response.gd`

### Game presentation

- [Example balloon](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/example_balloon): `addons/dialogue_manager/example_balloon`
- [Dialogue label](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/dialogue_label): `addons/dialogue_manager/nodes/dialogue_label`
- [Responses menu](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/responses_menu): `addons/dialogue_manager/nodes/responses_menu`

### Dialogue authoring

- [Dialogue editor](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/views): `addons/dialogue_manager/views`
- [Editor plugin](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/plugin.gd): `addons/dialogue_manager/plugin.gd`

### State and localization

- [Translation support](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/utilities/translations.gd): `addons/dialogue_manager/utilities/translations.gd`
- [Translation extraction](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/editor_translation_parser_plugin.gd): `addons/dialogue_manager/editor_translation_parser_plugin.gd`
- [State context](https://github.com/nathanhoad/godot_dialogue_manager/tree/main/addons/dialogue_manager/nodes/context): `addons/dialogue_manager/nodes/context`
- [Dialogue state](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/utilities/builtins.gd): `addons/dialogue_manager/utilities/builtins.gd`
- [Dialogue debugger](https://github.com/nathanhoad/godot_dialogue_manager/blob/main/addons/dialogue_manager/views/debugger_view.gd): `addons/dialogue_manager/views/debugger_view.gd`

### Other components

- **Game developer**
- **Player**
- **Godot game**

## Connections

- Game developer → Dialogue editor: authors dialogue
- Editor plugin → Dialogue editor: opens tools
- Dialogue editor → Dialogue resource: edits resource
- Dialogue resource → Dialogue compiler: compiles dialogue
- Actionable nodes → Dialogue manager: starts dialogue
- Example balloon → Dialogue manager: requests lines
- Dialogue manager → Dialogue processor: processes dialogue
- Dialogue processor → Dialogue resource: reads dialogue
- Dialogue manager → Dialogue line: returns line
- Example balloon → Dialogue label: sets line
- Example balloon → Responses menu: sets responses
- Responses menu → Dialogue response: selects response
- Player → Example balloon: advances dialogue
- State context → Dialogue manager: registers context
- Dialogue manager → Dialogue state: uses state
- Translation extraction → Translation support: extracts strings
- Dialogue manager → Translation support: translates text
- Dialogue manager → Dialogue debugger: reports runtime
- Godot game → Actionable nodes: triggers
