person-simpleCharacters

Characters are the core of every story. That’s why Story focuses on making them feel as alive and dynamic as possible.

circle-exclamation

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 references

  • role: Character's profession or social position (currently informational)

  • storyLocation: Current or last known location in the world

  • context: Natural-language summary of personality, motivations, and current state

Visual and Audio

  • appearance: Prose description of physical appearance and clothing

  • avatar: 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 personalities

  • knowledgeCategories: 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 learned

  • power: Emotional or narrative weight (0.0 to 1.0)

  • significance: Relevance to the character (higher = more important)

  • realCreatedAt: Real-world timestamp

  • gameCreatedAt: In-game time reference

  • lastAccessed: 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

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