Install any skill in seconds. Free to start, no credit card required.
Get Started Free →jame581/dialogue-system
Use when implementing dialogue — data structures for branching dialogue, conditions, and UI presentation
Passed 21 of 22 test cases with the skill, and 16 of 22 without it.
and 7 more in the full report
6 fixed15 passed either way0 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 6 test cases the skill fixed. Same model, same prompt, with and without the skill.
I'm building a dialogue system in Godot 4.3 using GDScript and want to organize dialogue using custom Resource classes. Please write the script definitions for a single dialogue line resource—including speaker, body text, choice branches with optional conditions, next line IDs, and line evaluation conditions—as well as a container resource script that maps line IDs to dialogue line instances and tracks the starting line. Show the code for both resource files.
| Checked | Without skill | With skill |
|---|---|---|
| The dialogue line resource script represents choice branches using an Array of Dictionaries rather than defining a separate choice class. | Missed | Passed |
| The container resource script is named DialogueData and exposes a Dictionary mapping line IDs to DialogueLine instances. | Missed | Passed |
| The container resource script exports a start_line_id property to identify the opening line. | Passed | Passed |
The instructions your model reads when the skill loads.
All examples target Godot 4.3+ with no deprecated APIs. GDScript is shown first, then C#.
Related skills: resource-pattern for dialogue data as Resources, godot-ui for Control node layout, state-machine for dialogue flow management, save-load for dialogue state persistence, dialogue-manager for a full-featured dialogue addon, popochiu for adventure games.
┌─────────────────────────────────────────────────────────┐
│ UI Layer │
│ DialogueUI (Control) │
│ ├─ Label (speaker_name) │
│ ├─ TextureRect (portrait) │
│ ├─ RichTextLabel (dialogue_text, typewriter effect) │
│ └─ VBoxContainer (choice_container) │
│ └─ Button × N (choice buttons) │
│ │
│ Connects to: line_displayed, choice_presented signals │
└───────────────────────┬─────────────────────────────────┘
│ drives UI via signals
┌───────────────────────▼─────────────────────────────────┐
│ DialogueManager (Autoload / Node) │
│ start_dialogue(dialogue_data) │
│ advance() → next line or end │
│ choose(choice_index) │
│ current_line: DialogueLine (read-only) │
│ │
│ signals: dialogue_started │
│ line_displayed(line) │
│ choice_presented(choices) │
│ dialogue_ended │
└───────────────────────┬─────────────────────────────────┘
│ reads
┌───────────────────────▼─────────────────────────────────┐
│ Data Layer (Resources) │
│ DialogueData (Resource) │
│ lines: Dictionary ← id → DialogueLine │
test cases passed, vs 16 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.