Skip to main content

voicesamples

🌍 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