Characters
Characters are the core of every story. That’s why Story focuses on making them feel as alive and dynamic as possible.
The current version separates players and NPCs. Future updates will unify both under a single Character abstraction.
Overview
Story manages two types of characters: Player Characters and Non-Player Characters (NPCs). Both share core systems for memory, relationships, and world interaction, though they function differently in practice.
Note: Future updates will unify both under a single Character abstraction.
Character Types
Player Characters
Directly controlled by players
Memory and relationship data is stored but not actively used
Legacy preservation: if a player leaves, their character can become an NPC
Full integration with Minecraft player systems
Non-Player Characters (NPCs)
AI-controlled characters with dynamic personalities
Active use of memory and relationship systems
Context-aware conversations and decision making
Integration with Citizens plugin for in-game presence
Core Character Attributes
Basic Information
name: Character's display name used in dialogues and referencesrole: Character's profession or social position (currently informational)storyLocation: Current or last known location in the worldcontext: Natural-language summary of personality, motivations, and current state
Visual and Audio
appearance: Prose description of physical appearance and clothingavatar: The avatar displayed if ItemsAdder is present and included as a content.customVoice: Custom voice ID for ElevenLabs voice generation
Behavior and Generation
randomPathing: Whether the NPC moves around randomly (default: true)generic: Generic NPCs have no memories and generate temporary personalitiesknowledgeCategories: List of knowledge areas the character is familiar with
Name Aliasing System
For dynamic NPC generation and management:
nameBank: Name bank for alias generation (e.g., "alboran.guard")npcId: Unique identifier (Citizens ID, MythicMob UUID, etc.)anchorKey: Deterministic generation key (spawner_id, region_cell, etc.)canonicalName: Full name for dialogue (e.g., "Arik Mossveil")displayHandle: Short name for Minecraft display (e.g., "A. Mossveil")callsign: Optional differentiator (e.g., "Spearhand")
Memory System
All characters have a memory system that tracks:
Memory Structure
content: What happened or was learnedpower: Emotional or narrative weight (0.0 to 1.0)significance: Relevance to the character (higher = more important)realCreatedAt: Real-world timestampgameCreatedAt: In-game time referencelastAccessed: Most recent time the memory was referenced
Memory Types
Experiences: Personal events and interactions
Knowledge: Facts learned about the world
Relationships: Information about other characters
Events: Significant happenings in the world
Relationship System
Characters maintain relationships with other characters through:
Relationship Data
Description: What they label the relationship as
Score: Level of the relationship (-100 to 100)
Knowledge Categories
Characters have access to lore entries based on their knowledgeCategories field. These categories match the categories defined in lore files.
How Knowledge Works
NPCs with matching categories can access and reference that lore
Knowledge categories are defined in lore files (e.g., "brotherhood", "academic", "magical-theory")
Characters can only discuss topics they have knowledge of
Knowledge affects conversation topics and AI responses
Example
A lore file with categories ["brotherhood", "academic", "magical-theory"] would only be accessible to NPCs who have any of those categories in their knowledgeCategories field.
Character Context Examples
NPC Context
"Ezekiel is optimistic and speaks in a melancholic tone. He is motivated by protecting his home and struggles with obsessive tendencies. He has been hired by Cristofus to steal a shipment of military enhancement drugs from the Maverick's Revenge."Character Creation
Manual Creation
Characters can be created manually by editing YAML files or using in-game commands.
AI Generation
The /locinitnpcs command can generate multiple NPCs with:
Contextually appropriate names and roles
Detailed backgrounds and personalities
Established relationships with other generated NPCs
Relevant memories and knowledge
Generic NPCs
Generic NPCs are temporary characters that:
Have no persistent memories
Generate temporary personalities for single interactions
Are useful for background characters or one-time encounters
Character Management
Memory Management
Memories are automatically created during conversations
Old memories can fade or be consolidated
Important memories are preserved longer
Characters can forget irrelevant information
Relationship Tracking
Relationships are updated based on interactions
Positive and negative actions affect relationship scores
NPCs remember how players have treated them
Long-term relationship consequences
Location Tracking
Characters remember where they've been
Location context affects character behavior
NPCs can reference their current or past locations
Movement and travel are tracked
Integration with Game Systems
Citizens Plugin
NPCs are spawned as Citizens entities
Physical presence in the Minecraft world
Player interaction through right-click or commands
Voice generation and audio playback
MythicMobs Integration
Special creatures can also be characters
Monster dialogue and interaction
Quest integration with hostile NPCs
Dynamic behavior based on character data
Quest System
Characters can give and receive quests
Quest progress affects relationships
Character knowledge influences quest availability
Memory of quest interactions
Best Practices
Character Design
Create distinct personalities and motivations
Give characters clear roles and purposes
Establish meaningful relationships between characters
Include relevant knowledge categories
Context Writing
Be specific about personality traits
Include current motivations and goals
Reference relevant relationships and events
Keep context updated as characters develop
Future Development
Unified Character System
Single abstraction for both players and NPCs
Consistent memory and relationship systems
Seamless transition between player and NPC control
Enhanced character persistence and development
Advanced AI Features
More sophisticated personality modeling
Dynamic character development over time
Complex relationship networks
Emergent character behaviors
Last updated