# Scoring model **Global formula:** [`IdleSpectator/scoring-model.json`](../IdleSpectator/scoring-model.json) **Per-event inventory (strength + prose):** [`IdleSpectator/event-catalog.json`](../IdleSpectator/event-catalog.json) - `scoring-model.json` - margins, multipliers, rarity caps - `event-catalog.json` - every authored event id (`happiness`, `status`, `worldLog`, `plots`, `decisions`, …) - Decisions use `action` (clause after "decides to …") - Most other domains use `label` - Happiness uses `variantsWithRelated` / `variantsWithoutRelated` - Optional `species` / `character` bonuses **Visual tracker (open beside chat):** [scoring-model canvas](/home/dazed/.cursor/projects/home-dazed-Projects-worldbox-mods-idle-mode/canvases/scoring-model.canvas.tsx) Edit the `weights` block in scoring-model.json to change live scoring formula knobs. Edit event-catalog.json to change what each event is worth and what it says.