worldbox-observer-mod/README.md
DazedAnon 188d091166 feat(spectator): focus camera on a five-character story ensemble
- Prioritize MCs, related cast, meaningful disasters, and exceptional events
- Show MC connections in the dossier when following related characters
- Promote rare creatures and recurring antagonists through bounded scoring
- Reduce roster churn and repetitive love/combat coverage
- Add performance telemetry, soak auditing, documentation, and harness coverage
2026-07-24 12:54:06 -05:00

50 lines
2.3 KiB
Markdown

# IdleSpectator
WorldBox NeoModLoader mod: AFK Idle Spectator camera director.
## Controls
- **I** - toggle Idle Spectator on/off
- **F9** - toggle Character Chronicle side panel (non-modal; works with focus)
- Dragging the camera while Spectator is on turns it off (after a short grace period)
## What it follows
The camera follows the developing lives and relationships of a five-character emerging cast. A story
scheduler chooses developments that advance an active character thread, yields to critical world
events, and returns only when the story has new evidence. `EventStrength` still models urgency and
visual value, but it no longer owns continuity. Bounded character/world fill runs when no episode
has a usable development.
While watching, a **character beat caption** shows who they are (Identity), an orange **event
sentence** (Beat), and muted Context (story spine or confirmed pressure). Main characters get
`Name · Title` when they have a real role. The Beat is rendered once from typed event evidence, so
relationship details are not appended a second time.
Routine camera shifts stay with MCs or their confirmed Cast/story context. When a related non-MC is
followed, a muted Connection row explains the MC link. Background lives still accumulate story
potential off-camera and may earn a slot; only typed turning points, consequences, story payoffs,
or critical world/disaster events can give an unrelated background character exceptional screen
time.
Confirmed MC events, threads, consequences, Legacy, and Prefer choices are stored in a versioned
per-world sidecar at the game save boundary. Runtime camera state and episode timing remain
session-only.
See [`docs/life-saga.md`](docs/life-saga.md) and [`docs/event-reason.md`](docs/event-reason.md).
Lingering on someone writes a **Chronicle** line; F9 lists them and click jumps the camera.
## Layout
- `IdleSpectator/` - mod source (`mod.json` + C#), loaded/compiled by NML
- `scripts/verify-nml.sh` - load verification helper
- `docs/event-reason.md` - evidence, orange-reason, and camera-alignment contract
## Deploy
```bash
ln -sfn "$(pwd)/IdleSpectator" \
"$HOME/.local/share/Steam/steamapps/common/worldbox/Mods/IdleSpectator"
```
Requires NeoModLoader in `worldbox_Data/StreamingAssets/mods/` and **Experimental Mode** enabled.