Add Content Skill
Help the user create new game content for StepQuest by generating JSON specification files that get processed by the ClaudeContentCreator editor tool.
Claude Content Creator Tool
Location: Assets/Scripts/Editor/ClaudeContentCreator.cs
Menu: WalkAndRPG > Claude Content Creator
This Unity editor tool processes JSON files to create ScriptableObjects automatically.
Features
- •Reads JSON files from
Assets/Editor/ContentQueue/ - •Creates Enemy, Ability, Item, and NPC ScriptableObjects
- •Assigns content to locations (enemies, NPCs)
- •Links abilities to enemies by ID
- •Updates existing assets if they already exist
- •Deletes processed JSON files after completion
Supported Content Types
| Type | Creates | Can Assign to Location |
|---|---|---|
| Enemy | EnemyDefinition | Yes (with hidden/rarity) |
| Ability | AbilityDefinition | No |
| Item | ItemDefinition | No |
| NPC | NPCDefinition | Yes (with hidden/rarity) |
Not Yet Supported (use Editor Windows)
- •Locations (MapLocationDefinition)
- •Activities (ActivityDefinition/ActivityVariant)
- •Status Effects (StatusEffectDefinition)
- •Loot tables on enemies
How It Works
- •Gather requirements from the user
- •Generate a JSON file in
Assets/Editor/ContentQueue/ - •User opens Unity and runs
WalkAndRPG > Claude Content Creator - •Click "Process All Files" to create the ScriptableObjects
Step 1: Identify Content Type
Ask the user what type of content they want to create:
- •Enemy - A new enemy type (EnemyDefinition)
- •NPC - A new character (NPCDefinition)
- •Item - A new item (ItemDefinition) - Material, Consumable, or Equipment
- •Ability - A new combat ability (AbilityDefinition)
- •Bundle - Multiple related content (e.g., "new enemy with custom ability")
Note: Locations, Activities, and Status Effects still need manual creation via their Editor Windows.
Step 2: Gather Requirements
For each content type, ask about required fields. Use snake_case for all IDs.
Location
- •ID (snake_case, e.g.,
forest_clearing) - •Display name
- •Description
- •Connections to other locations (and step costs)
- •Available enemies (reference existing or create new)
- •Available NPCs (reference existing or create new)
- •Available activities (reference existing or create new)
Enemy
- •ID (snake_case, e.g.,
forest_wolf) - •Display name
- •Base stats (HP, Attack, Defense, Speed)
- •Abilities (reference existing or create new)
- •Loot table (items, quantities, drop chances 0-1)
- •Which locations should have this enemy
NPC
- •ID (snake_case, e.g.,
village_blacksmith) - •Name
- •Description
- •Avatar and Illustration (note: user provides images separately)
- •Theme color (hex)
- •Which locations should have this NPC
Item
- •ID (snake_case, e.g.,
iron_ore) - •Display name
- •Description
- •Item type: Material, Consumable, Equipment
- •If Equipment: slot, stats, set (optional)
- •Stack size (for materials/consumables)
Ability
- •ID (snake_case, e.g.,
fireball) - •Display name
- •Description
- •Effects (Damage, Heal, Shield, ApplyStatusEffect)
- •Cooldown
- •Weight (for equipment limit, default abilities are weight 1-2)
- •Is it a player ability or enemy ability?
Activity
- •Activity type (Mining, Woodcutting, Fishing, Forging, Exploration, etc.)
- •Variant ID (snake_case, e.g.,
mine_iron) - •Display name
- •Is it step-based or time-based?
- •Cost (steps or seconds)
- •Required items (for crafting)
- •Output items and quantities
- •XP rewards (main skill + sub-skill)
- •Which locations should have this activity
Status Effect
- •ID (snake_case, e.g.,
burning) - •Display name
- •Description
- •Effect type (Poison, Burn, Bleed, Stun, Regeneration, Shield, AttackBuff, etc.)
- •Stacking behavior (Stacking, NoStacking)
- •Decay behavior (None, Time, OnTick, OnHit)
- •Duration, tick interval, potency as needed
Step 3: Generate JSON File
Create a JSON file in Assets/Editor/ContentQueue/ with the content specification.
JSON Format
{
"enemies": [
{
"id": "rat",
"name": "Rat",
"filename": "Rat",
"description": "Un rongeur agressif.",
"level": 1,
"maxHealth": 15,
"xpReward": 3,
"color": "8B7355",
"abilityIds": ["basic_attack"],
"victoryTitle": "Rat vaincu !",
"victoryDescription": "Le rat s'enfuit dans l'ombre."
}
],
"abilities": [
{
"id": "bite",
"name": "Morsure",
"filename": "Bite",
"description": "Une morsure rapide.",
"cooldown": 1.5,
"weight": 1,
"color": "8B4513",
"damage": 8,
"isEnemyAbility": true
}
],
"items": [
{
"id": "rat_tail",
"name": "Queue de Rat",
"filename": "RatTail",
"description": "Une queue de rat. Beurk.",
"itemType": "Material",
"maxStack": 99
}
],
"npcs": [
{
"id": "merchant_bob",
"name": "Bob le Marchand",
"filename": "MerchantBob",
"description": "Un marchand jovial.",
"color": "DAA520"
}
],
"locationAssignments": [
{
"locationId": "village_01",
"enemyIds": [
{ "id": "rat", "isHidden": true, "rarity": 0 }
],
"npcIds": [
{ "id": "merchant_bob", "isHidden": false, "rarity": 0 }
]
}
]
}
Rarity Values
- •0 = Common
- •1 = Uncommon
- •2 = Rare
- •3 = Epic
- •4 = Legendary
File Naming
- •Name the JSON file descriptively:
add_rat_enemy.json,new_forest_content.json - •The
filenamefield in each spec determines the .asset filename
Step 4: Instruct User
After creating the JSON file, tell the user:
- •Open Unity
- •Go to
WalkAndRPG > Claude Content Creator - •Click "Process All Files"
- •The content will be created automatically
Step 5: Offer Follow-ups
After creating the JSON, ask:
- •"Want me to create any related content?" (e.g., abilities for the enemy, loot items)
- •"Should I add more enemies/NPCs to this location?"
- •"Want me to create a custom ability for this enemy?"
Conventions Reminder
- •All IDs use snake_case
- •French display names are common in this project
- •Colors are hex without the # prefix
- •Reference existing abilities by their AbilityID (e.g., "basic_attack")
- •XP values: weak enemies ~3-5, medium ~10-20, strong ~30-50