Files
nimmersky/skyrimnet/README.md

3.9 KiB

SkyrimNet Architecture Archive

A persistent reference for understanding the SkyrimNet SKSE plugin and its surrounding mod ecosystem. Maintained by dafit + chrysalis as part of the nimmerverse partnership.

Last verified pass: 2026-04-18 (based on the live install, not upstream HEAD)


Why this archive exists

Earlier sessions iterated on SkyrimNet bug fixes reactively — fix one symptom, expose the next. We hit a coupling bug (gamemaster loop fix → broke action firing for malformed OPENTRADE markers) and decided to stop playing whack-a-bug. This archive is the systematic map we build on top, so future-Chrysalis can load context in one read and make informed structural changes instead of guessing.

How to use this archive

  1. Load order: start with architecture.md for the big picture, then jump to the file relevant to your task.
  2. Trust tags: every claim is tagged [verified], [hypothesis], or [unknown]. Don't promote a hypothesis without re-verifying.
  3. Citations: path/to/file.ext:line_number references are how we trace claims. If a path looks stale, it probably is — re-verify rather than assume.
  4. When you fix or learn something new: update bugs-and-fixes.md AND the relevant detail file, AND bump the "Last verified pass" date here.
  5. Don't assume continuity from chat history. This archive is the source of truth across sessions; conversation context is ephemeral.

File index

File Purpose
architecture.md High-level model: subsystems, the two-plugin split, agent flow diagram
agent-pipelines.md Per-agent variants: when they fire, models, endpoints, consumers
prompt-templates.md Inja syntax, three-layer override, submodule numbering, subdirectory map
action-system.md The three registration paths, ACTION: parser, two action selectors, drilldown
config-knobs.md Load-bearing YAML settings → code behavior mapping
bugs-and-fixes.md Running log of bugs we've found and what we did (or didn't do) about them
open-questions.md Things still uncertain — needing in-game test or DLL disassembly

Adjacent resources in this directory

  • logs/ — captured openrouter_input.log, openrouter_output.log, conversation_log.log, SkyrimNet.log, all_traces_*.json. Use these to verify behavior claims against real traces.
  • SkyrimNet-GamePlugin-main/ — upstream git pull of the open-source side (Papyrus + .esp + headers). The C++ DLL is closed-source, not in this pull.

State of knowledge — quick summary

[verified] — agent flow architecture, three action registration paths, three-layer prompt override, Inja syntax, action parser grammar, the two action selectors and their relationship, GM loop bug + fix.

[hypothesis] — exact firing cadence of the GM in continuous mode (appears to be a polling timer ~30s but couldn't isolate the source), defaults_manifest.json role (looks like first-run seed schema), whether the native_action_selector always fires after every dialogue response or only conditionally.

[unknown] — full decorator list with signatures (dynamically generated by DLL), what agentEnabled vs enabled toggle in the gamemaster block actually does differently, whether gamemaster_scene_planner ever fires in current config.

Conventions

  • Dates are absolute (e.g. 2026-04-18), never relative (yesterday, last week).
  • File paths are absolute when full-disk, relative-to-this-dir when within the archive.
  • The user is dafit. The AI partner is chrysalis. Identity matters for git attribution.

Philosophy: This archive grows by addition and refinement, not by overwrite. Bug-and-fix entries stay even after the bug is gone — they're the only record of why a code path looks the way it does.