Add ten new games (18 in total) and the engine features they need. Story: Dead Air, The Masquerade at Montague House, The Kalahari Expedition, The Alchemist's Vault, Submerged: Deep Lab Nereid, The Kestrel Bank Job. Games can now set their own hint penalty and a hard time limit, shown as a countdown; running out ends the game with the fail ending. Defuse: Tick Tock: Overtime. Manuals are now rulesets, so each game has its own solver. Adds indicator lights, per-level strike limits, and the Passwords, Morse Light and Say It Back modules. Sync: In Sync: Deep Cuts. Adds telepathy (typed word) and ranking rounds, and a per-round bar for the key. Labyrinth: The Drowned Catacombs and The Mirror Maze. Adds one-way gates, a relative (no compass) Explorer, a mirrored Navigator map, and mazes with a lantern count other than three. Validation now rejects a maze where a gate can leave the Explorer stuck. Difficulty runs from 1 to 5. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
341 lines
14 KiB
YAML
341 lines
14 KiB
YAML
id: dead-air
|
||
engine: story
|
||
category: murder-mystery
|
||
title: Dead Air
|
||
tagline: A legendary DJ goes silent live on air. Four minutes of nothing. One killer in the building.
|
||
estimatedMinutes: 30
|
||
difficulty: 3
|
||
players: { min: 2, max: 2 }
|
||
theme: { primary: "#d7263d", accent: "#f9c80e", background: "#0c0a12", headingFont: "Playfair Display" }
|
||
rules:
|
||
hintPenaltySeconds: 180
|
||
roles:
|
||
A:
|
||
name: The Detective
|
||
blurb: You have the police file. Lab results, statements, staff records.
|
||
B:
|
||
name: The Night Intern
|
||
blurb: You work the graveyard shift at Night Owl FM. Logs, run sheets, cameras, gossip.
|
||
intro: |
|
||
**Night Owl FM, Johannesburg. 23:31.**
|
||
|
||
Rex Daniels has hosted the midnight show for 22 years. Tonight he promised listeners
|
||
"the biggest announcement in the history of this station, at midnight sharp."
|
||
|
||
He never made it. A song ended, and nothing came after it. Just hiss.
|
||
The producer found him slumped over the desk, his tea still warm.
|
||
|
||
Five people were in the building. **Every one of them had a reason.**
|
||
|
||
⚠️ *Harder case: the locks give you facts, not the answer. You'll have to connect them yourselves in the accusation.*
|
||
|
||
suspects:
|
||
- id: zanele
|
||
name: Zanele Dube
|
||
role: Producer
|
||
description: Runs the desk, makes Rex's tea, knows his every habit. Has been passed over for promotion three times.
|
||
- id: kyle
|
||
name: Kyle Pretorius
|
||
role: Junior DJ
|
||
description: Ambitious, loud, and openly waiting for Rex's slot.
|
||
- id: marisa
|
||
name: Marisa Venter
|
||
role: Station manager
|
||
description: Co-owns the station with Rex. Was "in meetings" all night.
|
||
- id: tumi
|
||
name: Tumi Nkosi
|
||
role: Sound engineer
|
||
description: Keeps the old place running on duct tape and prayer. Rex once got him written up.
|
||
- id: owen
|
||
name: Owen Hart
|
||
role: Superfan
|
||
description: Calls in every night. Turned up at the gate tonight with flowers for Rex.
|
||
|
||
chapters:
|
||
- id: ch1
|
||
title: Ghost Signal
|
||
narrative: |
|
||
The automation computer kept playing what it was told. The dead-air alarm caught the silence.
|
||
First question: **which song was playing when Rex went quiet for good?**
|
||
clues:
|
||
A:
|
||
- id: a1-automation
|
||
title: Automation log, tonight's queue
|
||
type: log
|
||
body: |
|
||
| # | Track | Length | Status |
|
||
|---|-----------------------------|--------|----------|
|
||
| 1 | Neon Rain | 4:12 | PLAYED |
|
||
| 2 | Highveld Heart | 3:48 | PLAYED |
|
||
| 3 | Slow Dance in a Fast Car | 5:05 | PLAYED |
|
||
| 4 | Paper Moons | 3:55 | PLAYED |
|
||
| 5 | Ghost Signal | 6:20 | PLAYED |
|
||
| 6 | Last Train Home | 4:40 | NOT PLAYED (needs manual start) |
|
||
- id: a1-security
|
||
title: Gate security log
|
||
type: log
|
||
body: |
|
||
22:30 · Owen Hart at gate with flowers. Not on guest list. Refused entry.
|
||
22:30–23:50 · Owen sits in reception with guard Sipho. "Wouldn't stop talking about Rex."
|
||
B:
|
||
- id: b1-runsheet
|
||
title: Producer's run sheet
|
||
type: document
|
||
body: |
|
||
**Midnight Show, standard format**
|
||
- Show opens **23:00:00** sharp. Rex's intro link: **2:00**.
|
||
- Rex talks for **exactly 1:30** after every song. He's never late. Ever.
|
||
- Songs play straight from automation. Rex must start each song manually.
|
||
- id: b1-alarm
|
||
title: Dead-air alarm printout
|
||
type: log
|
||
body: |
|
||
```
|
||
** DEAD AIR ALARM ** 23:31:35
|
||
Trigger: silence > 15 seconds on main output
|
||
```
|
||
lock:
|
||
id: lock-song
|
||
prompt: Which song was the last thing listeners heard?
|
||
inputType: text
|
||
format: Song title
|
||
answers: ["GHOSTSIGNAL"]
|
||
hints:
|
||
- The alarm fires 15 seconds after silence starts. Work out when the silence started, then build the show's timeline.
|
||
- Silence started at 23:31:20. Add the intro, each song, and each 1:30 talk break, starting from 23:00:00.
|
||
- Ghost Signal ran from 23:25:00 to 23:31:20, and Rex never came back to talk after it.
|
||
successText: |
|
||
**Ghost Signal**, 23:25:00 to 23:31:20. Rex's last words on air ended at 23:25:00:
|
||
*"Longest song of the night, which means it's tea time. Back in six, Joburg."*
|
||
He never started Last Train Home. Whatever happened, it happened during Ghost Signal.
|
||
keyName: Needle Key
|
||
|
||
- id: ch2
|
||
title: The Last Cup
|
||
narrative: |
|
||
The paramedics say anaphylactic shock. Rex had a severe peanut allergy and everyone knew it.
|
||
His EpiPen was not in his bag. And he'd been drinking tea all night.
|
||
clues:
|
||
A:
|
||
- id: a2-lab
|
||
title: Lab report, rushed
|
||
type: report
|
||
body: |
|
||
**Cause of death:** anaphylaxis (peanut protein, Ara h 2).
|
||
| Item tested | Peanut protein |
|
||
|---------------------------------------|----------------|
|
||
| Mug "ON AIR" (in Rex's hand) | **POSITIVE** |
|
||
| Mug "WORLD'S OKAYEST DJ" (studio sink)| negative (honey residue present) |
|
||
| Jar labelled "REX ONLY" (honey) | **POSITIVE** |
|
||
| Tea bags, kettle water, milk | negative |
|
||
- id: a2-minutes
|
||
title: Boardroom meeting minutes
|
||
type: document
|
||
body: |
|
||
**Quick staff meeting, 23:08–23:20.** Topic: Rex's "midnight announcement".
|
||
Present: Zanele Dube, Tumi Nkosi, Kyle Pretorius, Marisa Venter (chair).
|
||
*23:11 · Marisa steps out "to take a call from the lawyers". Returns 23:17.*
|
||
Nobody else left the room. (Rex on air, Owen in reception.)
|
||
B:
|
||
- id: b2-camera
|
||
title: Kitchen camera log (motion triggered)
|
||
type: log
|
||
body: |
|
||
| Time | Who | What |
|
||
|-------|---------|------|
|
||
| 22:45 | Rex | Makes himself rooibos. **Black, no honey.** |
|
||
| 22:58 | Tumi | Fills water bottle |
|
||
| 23:05 | Kyle | Instant coffee |
|
||
| 23:06 | Zanele | Makes Rex's tea in the **WORLD'S OKAYEST DJ** mug, honey from **REX ONLY** jar. Takes it to studio. |
|
||
| 23:07 | (empty) | · |
|
||
| 23:09 | · | **CAMERA OFFLINE** |
|
||
| 23:21 | · | Camera back online. Kitchen empty. |
|
||
| 23:24 | Zanele | Makes Rex's tea in the **ON AIR** mug, honey from **REX ONLY** jar. Takes it to studio. |
|
||
- id: b2-maintenance
|
||
title: Tumi's maintenance whiteboard
|
||
type: note
|
||
body: |
|
||
*Generator test TONIGHT 23:09 (booked by M. Venter this afternoon, last minute??).
|
||
Cameras + kitchen plugs drop for about 12 min. Studio is on the UPS, stays live.*
|
||
lock:
|
||
id: lock-safe-honey
|
||
prompt: What's the last time the honey was definitely safe?
|
||
inputType: code
|
||
format: "HH:MM"
|
||
answers: ["2306", "1106", "1106PM"]
|
||
hints:
|
||
- The honey jar is positive now. Was it always? Look at the first mug with honey in it.
|
||
- The OKAYEST DJ mug had honey and tested negative. When was that cup made?
|
||
- Zanele made the OKAYEST DJ cup at 23:06, and Rex drank it and was fine.
|
||
successText: |
|
||
**23:06.** The honey was clean at 23:06 and poisoned by 23:24.
|
||
The camera was on from 23:06 to 23:09 and from 23:21 to 23:24, and nobody touched the jar then.
|
||
So the honey was poisoned **while the camera was off, 23:09 to 23:21.**
|
||
keyName: Honey Key
|
||
|
||
- id: ch3
|
||
title: The Studio Door
|
||
narrative: |
|
||
Rex's EpiPen always lived in the side pocket of his bag, which sits in the studio lounge.
|
||
The lounge has a card reader. Someone went in while Rex was live in the booth.
|
||
clues:
|
||
A:
|
||
- id: a3-register
|
||
title: Staff access card register
|
||
type: table
|
||
body: |
|
||
| Staff member | Card number |
|
||
|-------------------|-------------|
|
||
| Rex Daniels | 401 |
|
||
| Zanele Dube | 409 |
|
||
| Marisa Venter | 412 |
|
||
| Kyle Pretorius | 417 |
|
||
| Tumi Nkosi | 423 |
|
||
- id: a3-kyle
|
||
title: Kyle's statement
|
||
type: transcript
|
||
body: |
|
||
"I had a one-on-one with Marisa in the boardroom at half ten. Left my card on the table.
|
||
Went back for it at ten to eleven and it was gone. I reported it to security, check the book.
|
||
Then I was stuck in that meeting from eight past till twenty past. Ask anyone."
|
||
B:
|
||
- id: b3-doorlog
|
||
title: Studio lounge door reader
|
||
type: log
|
||
body: |
|
||
```
|
||
CARD READER v2.1 · IDs IN HEX (Tumi: "don't ask")
|
||
22:45:02 ID 0x191 IN
|
||
23:12:40 ID 0x1A1 IN
|
||
23:13:55 ID 0x1A1 OUT
|
||
23:24:31 ID 0x199 IN
|
||
23:31:50 ID 0x199 IN (panic button pressed)
|
||
```
|
||
- id: b3-reception
|
||
title: Reception lost-property book
|
||
type: note
|
||
body: |
|
||
*22:52 · Kyle P. reports staff card missing. Says left in boardroom. Card NOT cancelled (system down for generator test prep).*
|
||
lock:
|
||
id: lock-card
|
||
prompt: Whose card opened the studio lounge at 23:12?
|
||
inputType: choice
|
||
options:
|
||
- { id: rex, label: Rex Daniels }
|
||
- { id: zanele, label: Zanele Dube }
|
||
- { id: marisa, label: Marisa Venter }
|
||
- { id: kyle, label: Kyle Pretorius }
|
||
- { id: tumi, label: Tumi Nkosi }
|
||
answers: ["kyle"]
|
||
hints:
|
||
- The reader shows hexadecimal. The register is in normal (decimal) numbers.
|
||
- "0x1A1 = 1×256 + 10×16 + 1."
|
||
- 0x1A1 = 417, which is Kyle's card.
|
||
successText: |
|
||
**Kyle's card.** 23:12 to 23:13, in and out in 75 seconds, just long enough to empty a bag pocket.
|
||
But Kyle reported that card stolen at 22:52... and the minutes put him in the boardroom at 23:12.
|
||
keyName: Access Key
|
||
|
||
- id: ch4
|
||
title: The Midnight Announcement
|
||
narrative: |
|
||
What was Rex going to say at midnight? His notes were in his jacket: a page of crossword-looking
|
||
letters, and a piece of card with little windows cut into it.
|
||
clues:
|
||
A:
|
||
- id: a4-grid
|
||
title: Page from Rex's notebook
|
||
type: diagram
|
||
body: |
|
||
```
|
||
G S C A L C
|
||
H C T E B I
|
||
D H W W S F
|
||
O U R B H B
|
||
T G E O E T
|
||
D U D T Y F
|
||
```
|
||
*Scrawled underneath: "Zan knows how to read these. Lay the card on top."*
|
||
B:
|
||
- id: b4-stencil
|
||
title: Cut card from Rex's jacket
|
||
type: diagram
|
||
body: |
|
||
```
|
||
■ □ ■ □ □ ■
|
||
■ ■ ■ □ ■ □
|
||
■ ■ ■ ■ □ □
|
||
□ ■ □ ■ ■ ■
|
||
■ □ □ ■ ■ ■
|
||
■ ■ □ ■ ■ ■
|
||
```
|
||
■ = solid card · □ = window cut out. Same size as a notebook page, 6 × 6 squares.
|
||
Zanele says: "His old trick. Read the windows left to right, top to bottom."
|
||
- id: b4-gossip
|
||
title: Overheard in the corridor (last week)
|
||
type: transcript
|
||
body: |
|
||
**Tumi:** "Marisa says some media group's buying us. Rex says he never signed anything."
|
||
**Zanele:** "He'd never sell. He'd sooner die on air."
|
||
lock:
|
||
id: lock-stencil
|
||
prompt: What did Rex's hidden message say?
|
||
inputType: text
|
||
format: The message (3 words)
|
||
answers: ["SALEISFORGED", "THESALEISFORGED"]
|
||
hints:
|
||
- The Detective reads out the letters that sit under each □ window.
|
||
- "Row 1 windows are columns 2, 4 and 5: S, A, L."
|
||
- S-A-L-E-I-S-F-O-R-G-E-D.
|
||
successText: |
|
||
**"SALE IS FORGED."** The station's sale contract carries Rex's signature. Rex never signed it.
|
||
At midnight, he was going to tell the whole city, live.
|
||
The only other owner who could sell the station: **Marisa Venter.**
|
||
keyName: Microphone Key
|
||
|
||
finale:
|
||
type: accusation
|
||
prompt: Four keys. Put it together. Who killed Rex Daniels?
|
||
maxAttempts: 2
|
||
questions:
|
||
- id: who
|
||
label: Who killed Rex?
|
||
options:
|
||
- { id: zanele, label: Zanele Dube }
|
||
- { id: kyle, label: Kyle Pretorius }
|
||
- { id: marisa, label: Marisa Venter }
|
||
- { id: tumi, label: Tumi Nkosi }
|
||
- { id: owen, label: Owen Hart }
|
||
answer: marisa
|
||
- id: how
|
||
label: How?
|
||
options:
|
||
- { id: tea, label: Peanut in the tea Zanele served him at 23:24 }
|
||
- { id: honey, label: Peanut oil in the REX ONLY honey during the camera outage, EpiPen taken using Kyle's stolen card }
|
||
- { id: epipen, label: Swapped his EpiPen for an empty one earlier in the day }
|
||
- { id: lozenge, label: A peanut-laced throat lozenge from a fan's flowers }
|
||
answer: honey
|
||
- id: why
|
||
label: Why?
|
||
options:
|
||
- { id: slot, label: To take over the midnight slot }
|
||
- { id: writeup, label: Revenge for a disciplinary write-up }
|
||
- { id: forged, label: Rex was about to reveal on air that she'd forged his signature to sell the station }
|
||
- { id: obsession, label: Rejected obsession }
|
||
answer: forged
|
||
successEnding: |
|
||
Marisa doesn't argue. She just looks at the "ON AIR" light, still glowing red.
|
||
|
||
She booked the generator test so the kitchen camera would drop. She took Kyle's card off
|
||
the boardroom table at 22:30. At 23:11 she "stepped out for a call", used Kyle's card to get
|
||
into the lounge at 23:12, took the EpiPen from Rex's bag, then slipped peanut oil into his honey.
|
||
Back in the meeting by 23:17. Zanele carried the poison in herself, never knowing.
|
||
|
||
**Case closed.** At midnight, Zanele reads Rex's announcement on air. 📻🔑
|
||
failEnding: |
|
||
The wrong person is arrested. The sale goes through. Night Owl FM becomes a 24-hour playlist with no DJs.
|
||
reveal: |
|
||
**Marisa Venter** poisoned the honey with **peanut oil** during the generator test she booked,
|
||
and used **Kyle's stolen card** to take Rex's **EpiPen**, because Rex was going to reveal live
|
||
that she'd **forged his signature to sell the station**.
|