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
- Open Tools → Dialog Graph Editor, create a graph (Start → Dialog → Choice/Action/End).
- Add DialogManager + DialogUI_Panel to your scene and assign references.
- (Optional) Add DialogActionRunner and configure Global/Conversation sets.
- Add your graph to the manager list and call:
DialogManager.Instance.PlayDialogByID("YourDialogID");
- Try DialogDemo and ActionDialogDemo to see everything working.
Runtime Events
- OnLineShown(string nodeGuid, string speaker, string text)
- OnChoicePicked(string nodeGuid, string choiceText)
- OnConversationReset()