A lightweight, drag-and-drop dialogue system: branching conversations,
character portraits, conditional choices, and localisation. No node
graph, no code required to get started.Simple Dialogue System is a lightweight dialogue and conversation toolbuilt for the way most games actually use dialogue: linear lines, abranching choice here and there, maybe a flag check, maybe a secondlanguage. It skips the visual node-graph editor entirely, everyconversation is authored as a plain list right in the Inspector, so there'snothing new to learn and nothing to keep in sync with a separate asset.Drag-and-drop from the startAdd a `DialogueRunner` and a `DialogueConversationSource` to any GameObject with a Canvas, write your first node, and press Play.Node events are wired up exactly like a Button's OnClick,no event assets, no listener components, just point ata GameObject and pick a method.Everything you'd expect from branching dialogue- Linear lines and branching player choices, linked by simple string nodeIDs.- Per-character speaker data: name, default portrait, and any number ofnamed emotion portraits, reusable across every conversation thatcharacter appears in.- A typewriter reveal effect that's rich-text safe (``, ``,etc. never get cut mid-tag), with an optional typing blip sound, yourown clip, played every Nth character at a randomized pitch so it neversounds robotic. Give an individual character their own dedicated blipclip and it plays instead of the default one whenever they're speaking,so different speakers can sound different.- Per-node events (`UnityEvent`), so a line can trigger an animation, asound, a quest flag, anything, the moment it's shown.- One dialogue UI, many conversations: a single `DialogueRunner` can serveevery NPC in a scene, each with its own `DialogueConversationSource`.Conditional choices, kept simpleGate a choice behind a named true/false flag, has the key, already met this NPC, reputation high enough, etc, with `DialogueConditions.Set()` and a Required Flag field.Deliberately no variable types or expression syntax to learn. Need yourown save system to persist flags? `CaptureSnapshot()` / `RestoreSnapshot()`hand you everything as one plain serializable object, save it howeveryour game already saves everything else.Optional multi-language supportAny line or choice can carry more than one language, authored righton the same field, no separate localization table, no keys to manage.Leave it untranslated and it just shows the original text.Auto-advancing linesLet a line move itself along after a delay, or trigger `Advance()` yourselffrom an animation event or cutscene, your choice, per node.Optional per-character text animationAdd a `DialogueTextAnimator`alongside your Body Text and pick aReveal Effect (Pop In Grow/Shrink, Fade In, or Rise Up/Down)that plays once on each character as the typewriter types it,no extra wiring needed. Want a word to keep movingwhile it's on screen? Wrap it in a tag right in the dialogue text, like`Tony gets scared often.`, for a continuous Wave, Shake, orPulse effect on just that word. Both layers are entirely optional; leavethem off and text types out exactly as plain as before. Want a wholecharacter to animate differently, no tags needed? Give a`DialogueCharacterSO` its own Reveal Effect and/or Ambient Loop Effect, soa jittery, always-shaking ghost can share a conversation with a characterwhose lines don't animate at all.Four ready-to-run demo scenesThey show off the plain conversation, thelocalization workflow, the conditional-choice workflow, and one shareddialogue UI serving two separate NPCs, each generated with one menucommand and fully editable as a working example.Third-party asset disclosureThe demo scenes' UI text uses the Anta typeface(https://fonts.google.com/specimen/Anta), by The Anta Project Authors,licensed under the SIL Open Font License 1.1 (full license text bundledat `Demo/Fonts/Anta/OFL.txt`). Used unmodified, bundled as part of thispackage (not sold standalone), which the OFL permits freely.DependenciesNo external dependencies beyond TextMeshPro, 2D Sprite and uGUI.UpdatesMissing a feature or a panel layout you need?Just ask, send a message through the Asset Store publisher page,or email info@team2studio.com, and it'll be considered for a future update.- Drag-and-drop authoring, no node-graph editor- Branching conversations via simple string node IDs- Character portraits with named emotion variants- Rich-text-safe typewriter effect with blip sounds- Per-node UnityEvents, no custom event system- One dialogue UI shared across unlimited NPCs- Conditional choices via named true/false flags- Serializable flag snapshot for your own save system- Optional multi-language dialogue and choice text- Auto-advancing lines (timed or event-triggered)- Four one-click demo scenes (plain / localized / conditional / multiple npc's)- Documentation pdf- Full source includedThis asset was developed with the help of an AI coding assistant (Anthropic's Claude), used throughout the development process for writing and refining C# scripts. All final code was reviewed and tested by the developer.




