- 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
56 lines
2.8 KiB
Markdown
56 lines
2.8 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. “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`](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.
|