Location NPC Population Command
The `/locinitnpcs` command is a powerful multi-agent system that automatically generates a population of NPCs for any location in your world.
Command Syntax
/locinitnpcs <location> <context> [npc_count] [debug]Parameters
location(required): The name of an existing StoryLocationcontext(required): Description of the NPCs you want to generatenpc_count(optional): Number of NPCs to generate (1-20, default: 5)debug(optional): Enable debug mode for detailed logging (default: false)
Example
/locinitnpcs "Lannisport" "Generate 5 Lannisport commonfolk NPCs. Game of Thrones. House Lannister. Westerosi people." 5How It Works
The command follows a 4-step process:
Step 1: Location Analysis
Validates that the location exists
Analyzes the location's context and relationships
Displays location information for confirmation
Step 2: NPC Planning
AI analyzes the location and your context
Generates a plan for diverse NPCs with different roles
Creates unique personalities, backgrounds, and relationships
Shows a preview of planned NPCs
Step 3: NPC Generation
Generates detailed context and appearance for each NPC
Creates NPC data files with full character information
Spawns Citizens NPCs at the target location
Processes NPCs concurrently for faster generation
Step 4: Memory Generation
Creates core background memories for each NPC
Establishes relationships between generated NPCs
Generates recent event memories based on relationships
Context Writing Tips
Effective Context Examples
Generic Population:
"Generate 5 commonfolk NPCs for this trading town. Mix of merchants, guards, and villagers."Themed Population:
"Generate 8 NPCs for this elven city. Include nobles, scholars, and craftsmen. Focus on elven culture and magic."Specific Setting:
"Generate 6 NPCs for this pirate cove. Include smugglers, tavern keepers, and dock workers. Dark and dangerous atmosphere."Cross-Reference Existing World:
"Generate 4 NPCs for this Brotherhood sanctuary. Include initiates and maesters. Reference the Brotherhood lore and Lysathara connections."Context Best Practices
Be Specific About Roles: Mention the types of NPCs you want (merchants, guards, nobles, etc.)
Include Cultural Context: Reference the setting, culture, or theme
Reference Existing Lore: Mention factions, locations, or events from your world
Set the Tone: Describe the atmosphere or mood you want
Keep It Concise: 1-2 sentences work best for clear AI understanding
Command Output
Success Messages
🏗️ Starting multi-agent NPC population for location: Lannisport
📝 Context: Generate 5 Lannisport commonfolk NPCs. Game of Thrones. House Lannister. Westerosi people.
👥 Target NPC count: 5
🔍 Step 1: Analyzing location 'Lannisport'...
🧠 Step 2: Planning NPC population...
✅ Generated plans for 5 NPCs
⚡ Step 3: Generating 5 NPCs...
✅ Generated NPC 1/5: Ser Willem
✅ Generated NPC 2/5: Maester Pycelle
...
🎉 Generated 5/5 NPCs successfully!
🧠 Step 4: Generating memories and relationships...
💭 Generated core memory 1/5: Ser Willem
...
🎉 Location NPC population complete!Error Messages
❌ Location 'Nonexistent' not found. Please create the location first.
❌ NPC count must be between 1 and 20.
❌ Failed to generate NPC plan
❌ No valid NPC plans generatedGenerated NPCs
What Gets Created
Each generated NPC includes:
Unique Name: Contextually appropriate for the setting
Role: Profession or social position
Background: Detailed history and experiences
Personality: Character traits and motivations
Relationships: Connections to other NPCs
Current Situation: What they're doing now
Appearance: Physical description
Memories: Core background and recent events
NPC Data Structure
Generated NPCs are saved as YAML files in the npcs/ directory with:
Basic information (name, role, location)
Detailed context and background
Appearance description
Memory system integration
Relationship tracking
Integration with Citizens
The command automatically:
Creates Citizens NPCs for each generated character
Spawns them at the target location
Links them to the Story system for AI conversations
Enables voice generation and interaction
Debug Mode
Enable debug mode to see detailed information:
/locinitnpcs "Lannisport" "Generate 5 NPCs" 5 trueDebug mode shows:
AI request details
JSON parsing information
Generation progress
Error details and stack traces
Best Practices
Before Running the Command
Create the Location First: Use
/story location createto establish the locationPlan Your Context: Think about what types of NPCs fit the location
Consider NPC Count: Start with 3-5 NPCs for testing, then expand
Check Permissions: Ensure you have
storymaker.npc.initpermission
After Generation
Test Conversations: Talk to the generated NPCs to verify they work
Review NPC Data: Check the generated YAML files for accuracy
Adjust as Needed: Manually edit NPC files if needed
Create Relationships: Use other commands to establish connections
Troubleshooting
Location Not Found:
Verify the location exists with
/story location listCheck spelling and capitalization
Create the location first if it doesn't exist
No NPCs Generated:
Check your context - make it more specific
Try a smaller NPC count first
Enable debug mode to see error details
NPCs Don't Spawn:
Verify Citizens plugin is installed and working
Check if NPCs already exist with the same names
Ensure you have permission to create Citizens NPCs
Advanced Usage
Large Population Generation
For locations that need many NPCs:
/locinitnpcs "Lysathara" "Generate 15 elven city NPCs including nobles, merchants, guards, and craftsmen" 15Themed Populations
Create specific types of NPCs:
/locinitnpcs "Pirate Cove" "Generate 8 pirate NPCs including captains, crew, and tavern staff" 8Cultural Integration
Reference existing world elements:
/locinitnpcs "Brotherhood Sanctuary" "Generate 6 Brotherhood initiates and maesters, referencing the Brotherhood lore" 6Permissions
Required permission: storymaker.npc.init
Related Commands
/story location create- Create locations before populating them/story npc create- Create individual NPCs manually/story npc list- View existing NPCs/story location list- View available locations
Last updated