compw00tergame designer
2026-06-21 2026-06-21-compw00ter-admin-panel.md

compw00ter — Admin Panel & Live Curation

Date: 2026-06-21 Status: Design — captured; live-control depends on the (not-yet-built) game engine.

A host-facing admin panel that does two jobs: edit heroes (the existing Hero Builder) and live-curate a running match like a Dungeon Master — optionally. The game runs fine on its own; the admin just gets to stir the pot.

The core idea — a human director over the AI director

The engine's AI-Director-lite already paces incidents and bosses automatically. The admin panel surfaces that plan and lets a human override and inject on top of it:

  • The game never requires curation. Left alone, it plays itself. The admin augments.
  • Foreknowledge: upcoming director-scheduled incidents and bosses are shown to the admin on a timeline so they can see what's coming.
  • Intervene: the admin can pull anything forward (trigger now) or inject new chaos by hand — and reach into a specific player to fire their trait manually.

Two parts

1. Hero Builder (already built — PHP)

Create/edit heroes, abilities, traits, and the vocabularies. Writes the SQLite DB the engine reads at match start. (This is the tool we've been building.)

2. Live Game Control (new — part of the engine build)

A privileged admin client of the Node engine (WebSocket), showing live match state plus a timeline lane of scheduled/imminent events. Controls:

  • Timeline view — the director's planned incidents & boss arrivals on a time lane (the next ~minutes), each with a "trigger now" to pull it forward.
  • Cause an incident — inject one on demand: pick type (Tech / Social / Supply / Chaos / Smoke Break / Food), location or target player, and severity.
  • Drop a boss — summon The Wife or The Martin immediately.
  • Trigger a trait — pick a player and fire their trait by hand, overriding the meter condition (manual override — it doesn't wait for them to hit the threshold).
  • (Nice-to-have, later: pause/cancel/reschedule an upcoming director event, not just trigger it.)

Who runs it

The host runs the admin panel on their own screen — a curator/DM role, not one of the ten playing heroes. One admin per match. (Open: allow a player to also hold the admin panel? Default assumption: dedicated host.)

Architecture fit

  • Hero Builder: PHP + SQLite (as built), served by Apache.
  • Live Game Control: a special admin role on the Node engine (port 6767) over WebSocket, authenticated/flagged as admin, able to send privileged commands (inject-incident, drop-boss, fire-trait, trigger-scheduled) that the authoritative engine validates and applies.
  • The two are linked from one host UI, but are technically separate surfaces (PHP content tool vs real-time engine client).

Why it's good

  • Live storytelling: the host can time a Martin to crash the Saturday-night quiz, or fire b0n1's flood right as the team's coasting — comedy and drama on demand.
  • Safety valve / difficulty dial: if a run is too easy or too brutal, the host can nudge it.
  • Zero-pressure: because nothing's required, a host who just wants to play along can ignore it entirely and let the director run the show.

Scope

  • Now: Hero Builder (done). This spec records the live-control design.
  • Later (with the engine): the Live Game Control surface — it can't exist until the Node engine and its event/director systems do.

Open questions

  1. Admin = dedicated host, or can a player curate too? (Assumed: dedicated host.)
  2. Trigger-now only, or full edit of upcoming director events (cancel/reschedule)?
  3. Manual trait fire — does it also apply the normal aftermath (meter reset, the spawned incident), or just the visible effect? (Assumed: full normal aftermath.)