Dialog Graph System


Lightweight node-based dialogue system for Unity. Author branching graphs, ship a polished UGUI/TMP runtime (typewriter, skip, autoplay, history), and trigger gameplay with action nodes and handlers.


by Arjan Beka


★★★★ star rating
Price History +

Dialog Graph System is a production-friendly pipeline for authoring and playing dialogue in Unity. Design conversations with an intuitive graph editor (typed nodes: Start, Dialog, Choice, Action, End), style editor nodes via USS, and ship a polished UGUI + TextMeshPro runtime with typewriter, skip, autoplay (icons), per-line audio/display time, and a history/backlog overlay. Use the Action Runner with UnityEvents or coroutine-based **IActionHandler**s to trigger gameplay and optionally block dialogue until actions complete. Import/export graphs to JSON for backups, version control, or AI workflows; sample conversations ship as ScriptableObject graphs.


Highlights

  • Graph Editor (Editor-only): Typed nodes (Start/Dialog/Choice/Action/End), entry enforcement, choice & auto-next ports, fixed node width, minimap, character sidebar, safe Save Graph prompt, JSON Import/Export window.
  • Polished Runtime (UGUI/TMP): Typewriter, skip line/all, autoplay with play/pause icons, per-line audio & display time, robust history overlay that pauses the flow.
  • Actions System: Action Nodes with actionId, payloadJson, waitForCompletion, waitSeconds; DialogActionRunner supports Global/Per-Conversation sets, UnityEvent bindings (fire-and-forget) and async **IActionHandler**s (blocking).
  • Two Demo Scenes: DialogDemo (dialog-only) and ActionDialogDemo (action chains, blocking handlers).

What’s Included

  • Scripts: Runtime (manager, action runner, UI bridge, history, models, utils), Editor (graph window, JSON I/O, node views), interfaces (IActionHandler), demo handlers.
  • Prefabs: DialogUI_Panel, Choice_Btn, history views.
  • Resources: Conversation graphs (ScriptableObjects), UI sprites, USS (editor styling), demo audio.
  • Docs: README, CHANGELOG, font license (OFL).

Requirements

  • Unity: 2021.3 LTS or newer (Editor uses UnityEditor.Experimental.GraphView)
  • Packages: TextMesh Pro, UGUI

Quickstart

  1. Open Tools → Dialog Graph Editor, create a graph (Start → Dialog → Choice/Action/End).
  2. Add DialogManager + DialogUI_Panel to your scene and assign references.
  3. (Optional) Add DialogActionRunner and configure Global/Conversation sets.
  4. Add your graph to the manager list and call:

DialogManager.Instance.PlayDialogByID("YourDialogID");

  1. Try DialogDemo and ActionDialogDemo to see everything working.

Runtime Events

  • OnLineShown(string nodeGuid, string speaker, string text)
  • OnChoicePicked(string nodeGuid, string choiceText)
  • OnConversationReset()