Single-file HTML GM tool for the Thursday 2pm ChaosiumCon UK 2026 session.
Covers timer, act pacing, NPC cards, clue tracker, handouts, player stat tracker (HP/POW/PP), reference tables, and pinboard.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Full scenario document with 3-act structure, 6 pre-gens, 7 NPCs with stat blocks,
clue trail, handouts, moral choice framework, and GM notes. Updated library README
and con prep doc with event details.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Complete scenario markdown with full stat blocks for all 6 pre-gen investigators
- Full GM companion HTML app (standalone, offline-ready)
- Manifestation meter (5-pip tracker) replacing entity presence
- Tone management guide (comedy-to-horror transition per act)
- Henderson's arc preserved as central tragic beat
- Midnight deadline clock mechanic
- All handouts embedded (H1-H4) with period-appropriate styling
- Clue tracker, SAN tracker, full NPC roster with secrets
- 11 Midjourney prompts in established style
- Emergency red / signal amber palette (vs Night Crawler's cyberpunk cyan)
- NHS Emergency Alert full-screen simulation (📱 ALERT button)
- Reportage ink-sketch SVG portraits for all 6 major NPCs
- Live session timer with hard deadline alerts at 1:15, 2:15, 2:30, 3:05
- 12-clue tracker with essential/optional tagging and fallback notes
- 10 handouts with act-tagged cards and ⛶ Show to Players mode
- 6 PC stat trackers: HP/SAN/MP adjusters, Bitten/Injured/Insane/Dead flags
- Acts screen: tabbed Intro/I/II/III/Epilogue with all beats, social media feeds, fast-tracks
- SAN quick-reference modal from any screen
- GM-only truth panel (Meridian Biosciences/COBR backstory)
- LocalStorage persistence for all session state
- Touch-optimised, 48px targets, responsive sidebar/bottom-nav
- Complete three-act structure following master template
- Overriding story: Meridian Biosciences / MX-9 / COBR containment decision
- Plot summary (GM's truth), player experience arc
- Introduction with individual character read-alouds and alert delivery
- Act One: Something Is Wrong — bus crash, first infected, market breaks
- Act Two: The Long Walk South — Blue Anchor, pharmacy, reanimation, cordon
- Act Three: Bridge or River — Tower Bridge negotiation or RIB at Bankside Pier
- Epilogue with four outcome states and closing read-aloud
- 5 major NPCs with full stat blocks (Fatima, Callum, Sharif, Marcus, Helen, Pete)
- 6 pre-generated characters with stats, hooks, and motivation
- 12-clue trail with essential/optional split and fallbacks
- 11 handouts listed with format specifications
- Zombie quick reference table
- 9 artwork assets with reportage ink sketch style and generation prompts
- The Tangent: Day Two / Meridian investigation follow-up
- Full GM notes on lethality, pacing, Helen, Marcus, and the cordon moment
Issues fixed:
1. buildNPCs (and 23 other functions) were missing — lost when the ACT_DATA
block replacement accidentally deleted the switchAct→renderRefContent section
2. Duplicate const REF_DATA declaration (old literal + new JSON.parse version)
3. Stray </body></html> embedded inside the script content from prior botched edit
4. Final unescaped apostrophe: 'don\'t' in renderActContent
All 40 functions confirmed present. Node --check: ZERO SYNTAX ERRORS.
Root cause: ACT_DATA and REF_DATA objects were built using Python
string escaping that left unescaped apostrophes in single-quoted JS
strings (Reth's, entity's, don't, it's, Jed's, Sable's etc.) and
at least one unclosed template literal causing downstream parse failures.
Fix: ACT_DATA and REF_DATA are now stored as proper JSON in
<script type='application/json'> tags and loaded via JSON.parse().
All text content uses HTML entities for apostrophes and special chars.
Zero escaping ambiguity possible.
Node.js --check confirms: NO SYNTAX ERRORS.
Backtick count now 28 (even = all template literals properly closed).
Complete rebuild addressing all feedback:
LAYOUT
- Two-column layout for 13" laptop/tablet (200px sidebar + content)
- Sidebar collapses to bottom nav on narrow screens (<800px)
- CSS grid with proper areas, no overflow hidden tricks
- All touch targets min 48px, adj buttons 42×42px
READABILITY
- --text: #eeeefc, --text-sub: #b8b8d8, --text-muted: #7878a0 (captions only)
- Base 15px, card body p 15px, headings 16-18px
- No dark text on dark background anywhere
- Goal boxes, callouts, pacing notes all use --text
- Stat blocks use --text-sub (not dim)
- Generous line-height 1.55-1.75 throughout
FULLSCREEN OVERLAYS (portraits + handouts)
- ALWAYS has visible '← Back' button at top-left of screen
- Back button is cyan bordered, large (min 48px), obvious
- Portrait overlay: image fills available height, centered
- Handout overlay: scrollable text, readable 17px serif
- Both have 'Mark Shown to Players' action button
- Shown state persists and shows on card
STATE TRACKING (new)
- Locations: tap to mark visited (green dot + strikethrough)
- Clues: tap cycles pending → found → missed with color
- NPCs: 'Mark Introduced' button, shows ✓ badge
- Handouts: 'Mark Shown' on card and in overlay
- Portraits: 'Mark Shown' button in overlay
- Clue progress badge on nav: X/7 essential found
- All state persists in localStorage
PINNING SYSTEM (new)
- Pin any NPC to home screen quick-access bar
- Pinned items appear as large amber buttons at top of Home
- One-tap access to most-needed items mid-session
- Unpin with ✕ button
SESSION NOTES
- Textarea per act for GM notes during session
- Persists in localStorage
ACTS
- Location items are tappable with 'Details' button
- Details panel expands inline below location
- Visited locations get checkmark + strikethrough
- Notes field at bottom of each act
Five Midjourney-generated NPC portraits in dystopian noir illustration style
replacing previous placeholder SVG artwork.
Characters and artwork:
- Sable Morn: dramatic black/white ink wash portrait, high collar coat,
looking past viewer, extreme chiaroscuro from above
- Damos Reth: gaunt figure in data vest, glowing eyes, underground tunnel,
haunted expression
- Jed Osler: behind the bar, amber light, mechanical prosthetic arm on
counter, watchful presence
- Dr Yava Chen: reading glasses, hands clasped, laboratory setting,
analytical intensity with unsettling quality
- Scratch: young woman, glowing amber cybernetic eye, rainy dystopian
cityscape, street fighter stance
Assets:
- Embedded as base64 JPEG data URIs in app (280x373, 14-25 KB each)
- Full-resolution versions in scenarios/art/event-91/npc-*.jpg (600px wide)
- All artwork generated with Midjourney per art direction in scenario doc
App now 225 KB total, fully self-contained.
Single-file GM app per app-template spec. All data embedded, no internet required.
Screens:
- Home: session dashboard, timer, checkpoint table, player roster
- Acts: tabbed panels (Intro / Act I / Act II / Act III / Epilogue) with all
locations, key mechanics, pacing notes, moral choice breakdown
- NPCs: all 7 NPCs with physical description, motivation, what they know,
stat blocks, disposition colour coding (friendly/neutral/hostile/compromised)
- Clues: tap-to-cycle tracker (none/found/missed) for all 7 essential + 6
optional clues, with fallback triggers
- Handouts: all 5 handouts with fullscreen player-facing display mode;
styled per type (normal / handwritten / terminal)
- Players: HP/SAN/PP tracker with +/- controls and status tags for all 6 PCs
- Reference: SAN table, skill rolls, BRP quick-reference, entity mechanics
Features:
- Live session timer with hard deadline alerts at 2:15 and 3:05
- Progress bar with act labels
- SAN quick-reference modal from any screen
- LocalStorage persistence for PC stats and clue tracking
- Dark noir theme: black bg, cyan/amber neon accents
- Touch-optimised, 48px tap targets, one-hand operable
- Complete three-act structure applied per SCENARIO-TEMPLATE
- GM Pre-Session Checklist added (print list, table setup, pre-read notes)
- World Background expanded with Blade Runner-style texture guide
- Running Neo-Ashford section added: credits context, sensory language by
location, what technology looks like, how people talk, what things cost
- All six pre-gen characters with hooks, stats, and equipment
- All five handout texts written (H00-A, H00-B, H01-A, H01-B, H02-A)
- All locations fleshed out with atmosphere, mechanics, and clue flags
- Full NPC profiles: Sable Morn, Reth, Jed, Dr Chen, Scratch, Kov, Sera, Entity
- Entity influence mechanic and SAN tables
- Master clue trail with essential/optional/fallback structure
- Three-option Moral Choice with cost and consequence detail
- Full epilogue for all four outcome branches
- GM Quick Reference Card: timing, SAN table, skill rolls, NPC disposition
- GM Notes: tone guidance, Dr Chen technique, pacing advice, six-player management
- New top-level scenario-library/ directory, independent of convention events
- System folders: call-of-cthulhu, brp, ringworld, stormbringer, other-games
- Each with its own README and scenario index table
- SCENARIO-LIBRARY-TEMPLATE.md for filing new scenarios
- Updated master README to reflect dual-purpose repo structure