worldbox-observer-mod/README.md
DazedAnon 12e2ba0d01 feat(narrative): refine camera and narrative handling for civilized terminology
- Implement checks for civilized terminology in camera focus events
- Update event handling to suppress inappropriate pack language for civilized characters
- Enhance narrative presentation to differentiate between family and pack language
- Introduce new scenarios to validate significance of beats and relationships
- Improve documentation to clarify narrative structure and event significance
2026-07-24 14:06:23 -05:00

2.8 KiB

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 NML
  • scripts/verify-nml.sh - load verification helper
  • docs/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.