# godot-dialogue-system

A skill for branching dialogue in Godot: Resource-based graphs, portraits, gated choices, typewriter reveal.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 443 installs · ★ 893
- Author: thedivergentai
- License: LGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/tree/HEAD/skills/godot-dialogue-system/SKILL.md
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/skills/godot-dialogue-system

## What it does

This skill hands the agent working patterns for dialogue in Godot: a conversation tree stored as a Resource, separate nodes for lines and choices, character portraits, gates on flags and quests, translation keys, voice acting. Useful when you are building an RPG, a visual novel, or any game where the story forks.

Inside is a script catalog plus a decision tree. The golden path is Resource Autoload: `dialogue_resource.gd`, `dialogue_manager_singleton.gd`, `dialogue_ui_controller.gd`, `typebox_effect.gd`. A JSON graph engine (`dialogue_engine.gd`) covers external writers and spreadsheets, and there are supporting scripts for gameplay events, condition validation, portraits, and choice logging. Pick one runtime engine. Running the Resource manager next to the JSON engine is asking for trouble.

The typewriter effect tweens `visible_ratio` or `visible_characters`, and skip input must finish the line at once. The skill bans a Timer per character and bans hardcoded line text in GDScript, because that breaks localization. Dialogue cursor state lives in the manager, not the UI node, so a scene change does not drop the player's progress. The license is LGPL-3.0, which is worth checking against your own project's license.

## Requirements
- Works with: Godot

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-dialogue-system -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/godot-dialogue-system/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/godot-dialogue-system/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-dialogue-system -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/godot-dialogue-system/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-dialogue-system -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/godot-dialogue-system/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install thedivergentai/Game-Dev-Agentic-Skills godot-dialogue-system
```

2. **Manually: put the files in place**
- File: `.github/skills/godot-dialogue-system/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-dialogue-system -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/thedivergentai/Game-Dev-Agentic-Skills --path skills/godot-dialogue-system
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/godot-dialogue-system/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill godot-dialogue-system -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/tree/HEAD/skills/godot-dialogue-system/SKILL.md

## When to use it
- build a branching conversation with player choices
- hide lines the player has not unlocked yet
- add a typewriter reveal with click-to-skip
- move line text into translation keys
- tie a line to a quest flag or stat gate

## Example prompts
- build a Resource dialogue graph for the merchant scene
- gate this reply so it only shows after the quest is turned in
- wire typebox_effect with click-to-skip on the RichTextLabel

## Similar
- [cli-anything-godot](https://affpapa.org/en/nevibecode/skills/cli-anything-godot.md) — skill · 548 installs
- [godot-gdscript](https://affpapa.org/en/nevibecode/skills/godot-gdscript.md) — skill · 6500 installs
- [godot-physics](https://affpapa.org/en/nevibecode/skills/godot-physics.md) — skill · 6300 installs
- [godot-prompter](https://affpapa.org/en/nevibecode/plugins/godot-prompter.md) — plugin · ★ 867
- [godot-mcp-enhanced](https://affpapa.org/en/nevibecode/mcp/godot-mcp-enhanced.md) — MCP server · ★ 103
- [godot](https://affpapa.org/en/nevibecode/rules/godot.md) — rule · ★ 3579

From the same set: [thedivergentai/game-dev-agentic-skills](https://affpapa.org/en/nevibecode/by/thedivergentai/game-dev-agentic-skills.md) — 50 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
