Simple Dialogue System OFFICIAL SALE


Simple Dialogue System is a lightweight dialogue and conversation tool

built for the way most games actually use dialogue: linear lines, a

branching choice here and there, maybe a flag check, maybe a second

language. It skips the visual node-graph editor entirely, every

conversation is authored as a plain list right in the Inspector, so there's

nothing new to learn and nothing to keep in sync with a separate asset.


Drag-and-drop from the start

Add 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 at

a GameObject and pick a method.


Everything you'd expect from branching dialogue

- Linear lines and branching player choices, linked by simple string node

IDs.

- Per-character speaker data: name, default portrait, and any number of

named emotion portraits, reusable across every conversation that

character appears in.

- A typewriter reveal effect that's rich-text safe (`<color=...>`, `<b>`,

etc. never get cut mid-tag), with an optional typing blip sound, your

own clip, played every Nth character at a randomized pitch so it never

sounds robotic. Give an individual character their own dedicated blip

clip 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, a

sound, a quest flag, anything, the moment it's shown.

- One dialogue UI, many conversations: a single `DialogueRunner` can serve

every NPC in a scene, each with its own `DialogueConversationSource`.


Conditional choices, kept simple

Gate 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 your

own save system to persist flags? `CaptureSnapshot()` / `RestoreSnapshot()`

hand you everything as one plain serializable object, save it however

your game already saves everything else.


Optional multi-language support

Any line or choice can carry more than one language, authored right

on the same field, no separate localization table, no keys to manage.

Leave it untranslated and it just shows the original text.


Auto-advancing lines

Let a line move itself along after a delay, or trigger `Advance()` yourself

from an animation event or cutscene, your choice, per node.


Optional per-character text animation

Add a `DialogueTextAnimator`alongside your Body Text and pick a

Reveal 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 moving

while it's on screen? Wrap it in a tag right in the dialogue text, like

`Tony gets <shake>scared</shake> often.`, for a continuous Wave, Shake, or

Pulse effect on just that word. Both layers are entirely optional; leave

them off and text types out exactly as plain as before. Want a whole

character to animate differently, no tags needed? Give a

`DialogueCharacterSO` its own Reveal Effect and/or Ambient Loop Effect, so

a jittery, always-shaking ghost can share a conversation with a character

whose lines don't animate at all.


Four ready-to-run demo scenes

They show off the plain conversation, the

localization workflow, the conditional-choice workflow, and one shared

dialogue UI serving two separate NPCs, each generated with one menu

command and fully editable as a working example.


Third-party asset disclosure

The 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 bundled

at `Demo/Fonts/Anta/OFL.txt`). Used unmodified, bundled as part of this

package (not sold standalone), which the OFL permits freely.


Dependencies

No external dependencies beyond TextMeshPro, 2D Sprite and uGUI.


Updates

Missing 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.