AI-powered dialogue system for Godot with local LLM inference, visual editor, and character personalities.
| Made for Games | Not a chatbot wrapper. Designed for immersive NPC dialogues with personality and context. |
| 100% Offline | No API keys, no cloud costs, no internet required. Your game, your data. |
| Native Performance | C++ GDExtension via llama.cpp. Not GDScript string hacks. |
| Godot-Native | Resources, signals, inspector plugins. Feels like part of the engine. |
| Batteries Included | Download models from Hugging Face with 1 click. Windows & Linux binaries included. |
-
Local LLM Inference - Run language models directly in Godot via llama.cpp
- Async/streaming text generation
- Chat templates with Jinja2 support
- Stop sequences & configurable timeouts
- Sampling parameters (temperature, top-p, top-k, penalties)
- Windows x64 & Linux x64 binaries included
-
Visual Dialogue Editor - Node-based graph editor
- 13 node types: Start, End, AI Response, Static Response, Player Choice, Condition, Event, Jump, SetVariable, and more
- Hugging Face model browser with 1-click download
- Custom inspector panels for each node type
- GGUF metadata parser for auto-configuration
-
Character System - Define unique NPC personalities
CharacterIdentityresources with personality traitsWorldContextfor immersive world settingsAIPresetfor model configurations and sampling params
-
Three Dialogue Modes
FREE: Pure AI-driven conversationsSCRIPTED: Traditional branching dialoguesHYBRID: Mix scripted structure with AI responses
- Persistent Memories - NPCs remember past conversations with semantic search
- Text-to-Speech - Offline voice synthesis with Piper TTS
- Localization - Multi-language prompt templates with TranslationServer
- C# Bindings - Idiomatic async/await API for C# developers
- LoRA Adapters - Fine-tuned personality models
| Component | Version | Notes |
|---|---|---|
| Godot Engine | 4.5+ | Required for GDExtension 4.3+ |
| LLM Model | GGUF Q4/Q5/Q8 | Recommended: Qwen2.5-0.5B or similar |
| RAM | 8GB+ | 16GB recommended for larger models |
| GPU (optional) | CUDA/Vulkan | For accelerated inference (coming soon) |
Note: The addon is currently in active development (v0.4.0). Check the Releases page for the latest version.
- Download the latest release or clone the repository
- Copy the
addons/ohmydialog/folder to your project'saddons/directory - Enable the plugin in Project Settings > Plugins
- Download a GGUF model using the built-in Model Manager (AI menu in editor)
# Get reference to DialogueManager node
@onready var dialogue_manager: DialogueManager = $DialogueManager
func _ready() -> void:
# Connect to dialogue signals
dialogue_manager.npc_response_completed.connect(_on_npc_response)
dialogue_manager.player_choices_available.connect(_on_choices)
dialogue_manager.dialogue_ended.connect(_on_dialogue_ended)
func start_conversation() -> void:
# Load and start a dialogue graph (model loads automatically from StartNode)
var graph: DialogueGraph = preload("res://dialogues/merchant.tres")
dialogue_manager.start_dialogue(graph)
func _on_npc_response(text: String) -> void:
dialogue_ui.show_npc_text(text)
func _on_choices(choices: Array[Dictionary]) -> void:
dialogue_ui.show_choices(choices)Full documentation at: lobinuxsoft.github.io/OhMyDialogSystem
| Section | Description |
|---|---|
| Getting Started | Installation, quick start, first dialogue |
| API Reference | DialogueManager, AIService, Resources |
| Visual Editor | Node types, graph editing |
| Architecture | System design, data flow |
addons/ohmydialog/
├── plugin.cfg # Addon metadata
├── plugin.gd # Main EditorPlugin
├── gdextension/ # C++ native code (llama.cpp bindings)
├── ai/ # Model management, GGUF parser, HuggingFace API
├── autoload/ # AIService singleton
├── core/ # DialogueManager, GraphRunner, NodeExecutors
├── resources/ # Custom Resources (DialogueGraph, CharacterIdentity...)
├── editor/ # Visual dialogue editor, inspector plugins
├── icons/ # Editor icons
├── memory/ # Persistent memory system (coming soon)
├── tts/ # Text-to-Speech (coming soon)
└── localization/ # Multi-language support (coming soon)
| Milestone | Description | Status |
|---|---|---|
| M1 | GDExtension Core | 60% (12/20) |
| M2 | Core System | 88% (14/16) |
| M3 | Visual Editor | 35% (7/20) |
| M4 | Persistent Memories | Planned |
| M5 | Localization | Planned |
| M6 | Text-to-Speech | Planned |
| M7 | C# Bindings | Planned |
| M8 | Examples & Docs | 41% (7/17) |
| M9 | LoRA & AI Assistants | Planned |
See the Project Board for detailed progress.
If you find this project useful, consider supporting its development:
| Network | Address |
|---|---|
| USDT (TRC20) | TF6AXBP3LKBCcbJkLG6RqyMsrPNs2JCpdQ |
| USDT (BEP20) | 0xd8d2Ed67C567CB3Af437f4638d3531e560575A20 |
| BTC | bc1qkxy898wa6mz04c9hrjekx6p0yht2ukz56e9xxq |
| Binance Pay ID | 78328894 |
Contributions are welcome! Please check the Issues for open tasks.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Made with locally-inferred passion by lobinuxsoft