Event & Reaction System

SkyrimNetβs event system enables dynamic memory, LLM-based dialogue, and NPC reactivity by processing structured in-game events. These events act as the core data stream that drives memory formation, conversation context, and AI behavior.
π§ Core Conceptsβ
1. Eventsβ
- Definition: Structured records representing player or NPC actions (e.g., combat, dialogue, spell casting).
- Per Event Type Settings:
Enabled: If unchecked, event is ignored.Persistent: If checked, event is logged to the memory database.Allow NPC Reaction: Enables live NPC responses.NPC Reaction Cooldown: Time in seconds before another reaction to the same type.
2. Dialogue Context Historyβ
- Setting:
Event History Count β Dialogue - Default: 50 (range: 5β200)
- Purpose: Controls how many past events are passed to the LLM during dialogue generation.
3. Preloaded Event Memoryβ
- Setting:
Event Preload Count(e.g., 1000) - Range: 500β8000
- Purpose: Number of past events preloaded on game start to prime memory and context.

Enabled and Persistent Events can be seen in the Web UI dashboard , under "Recent Events". These will be exposed to the memory system, when generating memories. Enabled but not persistent Events have a short life in the context, usually around 30 seconds. They are used for immediate LLM behavior responses but will not be registered after their ephemeral duration. These kinds of events are useful for things like "hit" and "container change", to avoid spamming the event context.
π§ How Events Influence Memory & Dialogueβ
| Feature | Uses Events | Needs Persistence | Affected by Cooldowns |
|---|---|---|---|
| LLM Dialogue Context | β Yes | β Yes | β No |
| Memory Recall / Reflection | β Yes | β Yes | β No |
| NPC Live Reactions | β Yes | β No | β Yes |
| Event Logging / Debugging | β Yes | β Yes | β No |
β Best practice: Events you want remembered or reacted to should be
Enabled,Persistent, or/and haveAllow NPC Reactionset appropriately.
π¬ NPC Reactions Overviewβ
- What They Are: Real-time dialogue or behavior responses triggered by in-game events.
- Cooldowns:
- Global Cooldown: Minimum delay between any reactions (e.g., 60s).
- Per-Event Cooldown: Delay between reacting to the same event type (e.g., 180s for combat).
Example Use Cases:β
- NPC comments on spell casting (
spell_cast) - NPC notices player looting a container (
container_changed) - NPC reacts to combat or death (
combat,death)
π§ͺ Event Type Tiers β Recommendation Matrixβ
| Event Type | Enable | Persist | NPC React | Cooldown |
|---|---|---|---|---|
combat, death | β | β | β | 120β180s |
activation, equip | β | β | β | 30β60s |
book_read, container_changed | β | β | β | 60s |
spell_cast | β | β | β | 60β90s |
dialogue_*, scene_* | β | β | β | 0 |
direct_narration, continue_narration | β | β | β | 0 |
custom, gamemaster_dialogue, player_thoughts | β | β | β | 0 |
π Usage Strategy Summaryβ
β For Immersive Memory and Dialogueβ
- Set
Persistent = truefor all important events. - Adjust
Event History Count(50β100) for context depth.
β For NPC Interactivityβ
- Enable
Allow NPC Reactionfor immersive actions (combat, lockpicking, spell casting). - Use custom cooldowns to avoid spammy chatter.
β For Performance Balanceβ
- Use a
Preload Countof 1000β3000 for good memory retention without overloading startup. - Avoid enabling reactions on every event β pick impactful ones.