Our review
Provides a complete dialogue and quest system for games, supporting branching conversations, quest stages, objectives, and rewards.
Strengths
- Structured data management using ScriptableObjects
- Supports branching dialogues with multiple choices
- Includes quest states and objective types (Kill, Collect, Interact, etc.)
- Event-driven progression for responsive gameplay
Limitations
- Tied to Unity engine and ScriptableObject pattern
- Requires additional integration for save/load
- May be overkill for simple narrative systems
Use when building a quest-driven RPG or narrative game that needs complex NPC interactions and branching quests.
For linear stories, non-game applications, or when a simpler dialogue tree would suffice.
Security analysis
CautionThe skill declares run_command, a powerful tool, but only uses it for legitimate development tasks (building, running scripts) within the context of implementing a quest system. No destructive or exfiltrating instructions are present.
No concerns found
Examples
Quest to kill 10 wolves.NPC offers two quest paths.name: dialogue-quest-system description: "Complete dialogue and quest system with branching conversations, quest stages, and event triggers." version: 1.0.0 tags: ["gameplay", "dialogue", "quests", "NPCs", "narrative"] argument-hint: "action='create_quest' name='Kill10Rats' stages='Accept,InProgress,Complete'" disable-model-invocation: false user-invocable: true allowed-tools:
- run_command
- list_dir
- write_to_file
Dialogue Quest System
Overview
Complete dialogue and quest system with branching conversations, multiple quest stages, objectives, rewards, and event-driven progression.
When to Use
- Use when implementing NPC conversations
- Use when creating branching dialogue
- Use when tracking quest progress
- Use when implementing objectives (kill X, collect Y)
- Use when rewarding quest completion
Architecture
┌─────────────────────────────────────────────────────────────┐
│ DialogueSO │
├─────────────────────────────────────────────────────────────┤
│ DialogueNode[] (Speaker, Text, Choices) │
│ Conditions (RequiredQuest, MinLevel) │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ QuestSO │
├─────────────────────────────────────────────────────────────┤
│ Stages: NotStarted → InProgress → Completed │
│ Objectives: [{Type, Target, Count}] │
│ Rewards: [Item, XP, Gold] │
└─────────────────────────────────────────────────────────────┘
Quest States
- NotStarted: Quest available but not accepted
- InProgress: Quest active, tracking objectives
- Completed: All objectives done, rewards pending
- TurnedIn: Rewards collected, quest finished
- Failed: Quest failed (optional)
Objective Types
- Kill: Kill X enemies of type Y
- Collect: Obtain X items
- Interact: Talk to NPC, use object
- Reach: Arrive at location
- Escort: Keep NPC alive to destination
Best Practices
- ✅ Use ScriptableObjects for dialogue/quest data
- ✅ Implement ISaveable for quest progress
- ✅ Use events for objective updates
- ✅ Support quest prerequisites
- ❌ NEVER hardcode dialogue text
- ❌ NEVER forget to save quest state
Few-Shot Examples
Example 1: Kill Quest
User: "Quest to kill 10 wolves."
Agent:
// QuestSO asset with objective:
// Type: Kill, TargetId: "wolf", RequiredCount: 10
// Reward: 100 gold, 50 XP
Example 2: Dialogue Choice
User: "NPC offers two quest paths."
Agent:
DialogueNode choice = new()
{
Speaker = "Elder",
Text = "Which path will you take?",
Choices = new[]
{
{ Text = "The Mountains", NextNode = mountainQuestNode },
{ Text = "The Forest", NextNode = forestQuestNode }
}
};
Related Skills
@save-load-serialization- Persist quest progress@inventory-crafting-logic- Quest rewards@scriptableobject-architecture- Data patterns
Template Files
Available in templates/ folder.
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.