- Introduce new anchors for caption avatar and narrative positioning - Implement stable typography capture during saga hover sessions - Add diagnostics for avatar visibility and anchored position - Refactor saga hover refresh logic to maintain visual consistency - Update harness scenarios to validate hover visual stability |
||
|---|---|---|
| .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 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. “World critical” is not inferred from score alone: it requires a typed active quake/outbreak, a crisis-scale disaster, or a materially contested large war.
The orange Beat answers “why this shot now?” and is event-only: ambient grounding never falls back
to species or job text. Exact named participants can carry a compact, typed MC-relative qualifier,
such as Kills Omya (child of Waf), when that relationship explains the event's significance.
Civilized family Cast uses Kin; pack terminology is reserved for non-civilized creatures.
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 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- evidence, orange-reason, and camera-alignment 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.