ConvoCore
ConvoCore is a Unity native dialogue framework for building the dialogue system your game deserves, in any genre, at any scale. Write your conversations in plain, readable YAML or spreadsheets, keep them in source control, and let ConvoCore compile them into runtime-ready Conversation ScriptableObjects.
Other dialogue systems actively take over your game's architecture. ConvoCore stays in its lane as a focused dialogue tool, built to grow alongside your project. Every layer, from dialogue actions and character representations to UI and save providers, are designed to be easily extended or replaced without touching the foundation. Character expressions, branching logic, localization, and save state live in the Unity editor, while your UI, camera, and rendering pipeline stay entirely in your hands.
How it works
┌────────────────┐ ┌────────────────────────┐ ┌──────────────────┐
│ YAML file │ ──────────▶ │ Conversation Data │ ─────────▶ │ ConvoCore │
│ (your dialogue)│ compiles │ (ScriptableObject) │ runs in │ (MonoBehaviour) │
└────────────────┘ └────────────────────────┘ Play Mode └──────────────────┘
▲ │
│ edit in any │ fires C# events
│ text editor ▼
Your UI · Actions · Save System
What's included
| Feature | Description |
|---|---|
| YAML authoring | Write conversations in plain text, hot-reload in the editor, version-control with git |
| Character system | Profiles, sprite/prefab representations, and per-line expressions |
| Branching & choices | Route through containers, present player choices, return to the main thread |
| Localization | Multi-language YAML keys, runtime language switching with one call |
| Save system | Conversation progress, visited lines, and scoped variables across sessions |
| Dialogue actions | ScriptableObject coroutines that fire before or after any line |
Extend and customize
Every layer of ConvoCore is designed to be replaced or extended without touching the core:
| Extension point | What you can do |
|---|---|
| Custom dialogue actions | Trigger any game logic - camera moves, quest flags, spawns, cinematics - before or after any line |
| Custom character representations | Plug in Spine, VRM, prefab avatars, or any visual system alongside the built-in sprite and prefab types |
| Custom UI | Build any display layer - text boxes, speech bubbles, 3D panels, visual novels - using the ConvoCoreUIFoundation base class |
| Custom save providers | Store saves in the cloud, in PlayerPrefs, or encrypted on disk via the IConvoSaveProvider interface |
Where to start
If you're new to Unity or C#, begin with Installation and follow the Quick Start guide. Each page explains Unity-specific concepts (ScriptableObjects, MonoBehaviours, coroutines) as they come up.
| I want to… | Go here |
|---|---|
| Install ConvoCore | Installation → |
| Create my first conversation | Quick Start → |
| Understand the YAML format | YAML Format → |
| Browse the C# API | API Reference ↗ |
| Extend ConvoCore with custom code | Extending ConvoCore → |