
🌍 World Knowledge System
The World Knowledge System defines persistent facts about the game world that NPCs can know, reference, and react.
It enables scalable, condition-driven knowledge distribution across NPCs, supporting both static lore and dynamic, emergent storytelling.
🧠 Overview
World Knowledge entries represent facts such as:
- "The Stormcloaks won the civil war"
- "There is a thieves guild beneath the city"
- "The player is a known Dragonborn"
- "Bandits control the northern roads"
Each entry can be selectively known by NPCs based on configurable conditions.
⚙️ Core Features
Conditional Knowledge Distribution
Each entry includes a condition expression that determines which NPCs know it.
Supported condition types include:
is_in_faction(...)get_quest_stage(...)is_in_npc_group(...)- Custom template expressions
This allows fine-grained control, such as:
- War plans only known to Stormcloak members
- Rumors limited to specific cities or factions
- Secrets known only after certain quest stages
🔁 Injection Modes
Always Inject
- Guaranteed to appear in every matching NPC's prompt
- Best for core identity or critical world state
Semantic Retrieval
- Included only when relevant to the current conversation
- Uses:
- Keyword matching
- Embedding similarity
- Importance score
Relevance & Limits
- Configurable limits for:
- Always-injected entries
- Semantically retrieved entries
- Minimum relevance threshold (default:
0.6) - Each entry has an importance score influencing retrieval priority
Testing & Debugging
- Built-in condition tester
- Select any NPC to verify:
- Whether they receive the knowledge
- How conditions evaluate
Metadata Support
Each knowledge entry supports:
- Display Name (UI label)
- Type (e.g., Knowledge, Rumor, etc.)
- Emotion (contextual tone)
- Location
- Tags (for categorization/search)
📦 Knowledge Packs
Knowledge Packs allow grouping entries into reusable collections.
Features
- Export/import as
.sknpack - Shareable across users/mod setups
- Enable/disable entire packs
- Bulk assignment and editing via UI
Use Cases
- Quest-specific knowledge sets
- Faction lore bundles
- Custom world-building modules
- Mod distribution packages
🛠️ Integration
APIs
- C++ API for engine-level integration
- Papyrus API for in-game scripting
MCP Tools
- Full CRUD operations:
- Create / Read / Update / Delete
- Bulk operations
- Search and filtering