- Give each Cast entry enough space to render muted relationship subtext - Preserve fixed Saga geometry with the slightly taller Cast rows - Add populated-Cast regression coverage for visible relationship labels |
||
|---|---|---|
| .cursor/skills/idle-spectator-e2e | ||
| .tmp-logs | ||
| .tmp-reflect | ||
| docs | ||
| IdleSpectator | ||
| scripts | ||
| .cursorrules | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
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 ranked events from live feeds (wars, fights, relationships, buildings, statuses, plots, …).
EventStrength decides who wins; quieter events still take the shot when nothing stronger is pending.
Character fill only runs when the event queue is empty (no orange reason; task chip shows the live job).
While watching, a character beat caption shows who they are (Identity), an orange event sentence (Beat), and muted Context (story spine or open stake).
Main characters get Name · Title when they have a real role; tips may gain a self-explanatory relation clause.
See docs/life-saga.md and 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 NMLscripts/verify-nml.sh- load verification helperdocs/event-reason.md- events-own-camera + EventReason contract
Deploy
ln -sfn "$(pwd)/IdleSpectator" \
"$HOME/.local/share/Steam/steamapps/common/worldbox/Mods/IdleSpectator"
Requires NeoModLoader in worldbox_Data/StreamingAssets/mods/ and Experimental Mode enabled.