Files
joshuaandClaude Opus 5.5 bbe44e84c4 V1.1.0
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>
2026-10-13 23:34:11 +02:00

310 lines
12 KiB
YAML

id: kestrel-heist
engine: story
category: escape-room
title: The Kestrel Bank Job
tagline: A crooked banker stole Gran's necklace. Tonight you're taking it back. In and out. No mistakes.
estimatedMinutes: 50
difficulty: 5
players: { min: 2, max: 2 }
theme: { primary: "#1b1b1e", accent: "#00e5a0", background: "#050506", headingFont: "JetBrains Mono" }
rules:
hintPenaltySeconds: 240
timeLimitMinutes: 55
timeLimitLabel: "Until the morning shift"
roles:
A:
name: The Inside Man
blurb: You're in the building. You see the doors, panels, lasers and guards. You don't have the plans.
B:
name: The Wheel
blurb: You're in the van outside with the laptop, the blueprints, and everything you've dug up on the banker.
intro: |
Six months ago, banker **Vincent Kestrel** "held" your gran's emerald necklace as security
on a loan, then forged the paperwork and kept it. The police shrugged. The lawyers shrugged.
So tonight, you're getting it back. **Kestrel Private Bank, 21:58.**
One of you is inside in a cleaner's uniform with an earpiece. The other is in the van with a laptop.
Get to his private box. Get the necklace. Get out before the morning shift.
☠️ *Nightmare tier. Longer hint penalty. A hard time limit. Trust each other.*
chapters:
- id: ch1
title: The Staff Door
narrative: |
The staff entrance has a four-digit keypad. Kestrel uses it himself every morning.
The Inside Man dusts the keypad with the cleaner's talc.
clues:
A:
- id: a1-keypad
title: Dusted keypad
type: diagram
body: |
```
[1] [2] [3] Worn, greasy keys: 0, 2, 6
[4] [5] [6] The 0 is the MOST worn.
[7] [8] [9] Every other key is clean.
[0]
```
Code length: 4 digits.
B:
- id: b1-assistant
title: Message from Kestrel's ex-assistant
type: transcript
body: |
"Every code he has is a date, **day then month**, two digits each.
Always someone in his family. He's not as clever as he thinks."
- id: b1-social
title: Kestrel's social media, a few posts
type: document
body: |
- *14 Feb:* "Happy Valentine's to the wife. ❤️" *(deleted a week later)*
- *20 Jun:* "Happy birthday to my princess Mia! 🎂 Daddy loves you."
- *03 Sep:* "Proud dad. Liam made the first XV!"
- *11 Nov:* "Happy birthday Noah, my little man!"
lock:
id: lock-door
prompt: Enter the staff door code.
inputType: code
format: 4 digits (DDMM)
answers: ["2006"]
hints:
- The code uses only the digits 0, 2 and 6, with one of them used twice.
- Which family date uses exactly 0, 2 and 6, with 0 twice?
- Mia's birthday, 20 June = 2006.
successText: |
**2006.** Green light. You're in. Mop bucket rolling, cap pulled low.
Ahead: the long marble corridor to the vault, criss-crossed with red light.
keyName: Staff Door Key
- id: ch2
title: The Laser Hall
narrative: |
Five columns of floor tiles. Five rows of laser beams across them.
Exactly one column of tiles is never crossed by a beam.
clues:
A:
- id: a2-hall
title: What the Inside Man sees
type: diagram
body: |
```
col1 col2 col3 col4 col5
row1 ▢ ▢ ▢ ▢ ▢
row2 ▢ ▢ ▢ ▢ ▢
row3 ▢ ▢ ▢ ▢ ▢
row4 ▢ ▢ ▢ ▢ ▢
row5 ▢ ▢ ▢ ▢ ▢
```
The beams are too faint to see by eye in this light.
Sticker on the laser control box: **"MASK BITS: col1 = 16, col2 = 8, col3 = 4, col4 = 2, col5 = 1"**
B:
- id: b2-config
title: Hacked security config (laptop)
type: log
body: |
```
[LASER_HALL]
ROW_MASK_1 = 21
ROW_MASK_2 = 12
ROW_MASK_3 = 25
ROW_MASK_4 = 17
ROW_MASK_5 = 8
; a set bit means the beam crosses that tile
```
lock:
id: lock-lasers
prompt: Which column is safe to walk?
inputType: code
format: Column number
answers: ["4"]
hints:
- Each row mask is a sum of the column values its beam crosses. Break each number into 16, 8, 4, 2, 1.
- "21 = 16 + 4 + 1 → columns 1, 3, 5."
- "Rows cross: (1,3,5), (2,3), (1,2,5), (1,5), (2). Column 4 is never crossed."
successText: |
**Column 4.** Tile by tile, heel to toe. Not a single alarm. Halfway there.
keyName: Laser Key
- id: ch3
title: The Guards
narrative: |
Past the hall, the vault corridor. Three guards walk through it on fixed loops.
Crossing it to the vault door takes **4 full minutes** of picking the outer lock.
clues:
A:
- id: a3-watching
title: What the Inside Man has clocked from the vent
type: log
body: |
```
Guard 1 (big guy, whistles): passes at 22:03, then every 7 minutes
Guard 2 (torch, limps): passes at 22:05, then every 11 minutes
```
It's 22:00 now.
B:
- id: b3-roster
title: Security rota (hacked)
type: document
body: |
**Guard 3 (Dlamini):** corridor sweep at **22:02**, then **every 6 minutes**.
*A guard occupies the corridor for the whole minute they pass through it.*
You need **4 clear minutes in a row** with no guard passing.
lock:
id: lock-guards
prompt: At what time does the first safe 4-minute window start?
inputType: code
format: "HH:MM"
answers: ["2233", "1033", "1033PM"]
hints:
- "List the busy minutes: Guard 1 → :03, :10, :17, :24, :31, :38..."
- "Guard 2 → :05, :16, :27, :38. Guard 3 → :02, :08, :14, :20, :26, :32, :38."
- "Gaps before :33 are at most 3 minutes long. :33, :34, :35, :36 are all clear."
successText: |
**22:33.** You slip in behind Guard 3, pick the outer lock in three minutes fifty, and close the door
a breath before Guard 1 whistles past. You're in the vault anteroom. One huge dial.
keyName: Shadow Key
- id: ch4
title: The Vault Dial
narrative: |
Three-number combination dial. Kestrel left himself a reminder taped under the anteroom desk.
It's not in any language you know.
clues:
A:
- id: a4-photo
title: Photo on the anteroom desk
type: photo
body: |
*Kestrel with his three sons, a joint birthday party this year. Each boy holds a cake
with candles shaped like numerals: Noah's says **VII**, Liam's says **XIX**, Ben's says **XII**.
Frame engraved: "My boys."*
B:
- id: b4-note
title: Note taped under the desk (Inside Man reads it out letter by letter)
type: note
body: |
## XLNYRMZGRLM: NB HLMH ZTVH, VOWVHG URIHG
*Your laptop's notes on Kestrel: "Ancient-cipher nerd. Favourite: the mirror alphabet. A↔Z, B↔Y, C↔X..."*
lock:
id: lock-dial
prompt: Dial the combination.
inputType: code
format: "NN-NN-NN"
answers: ["191207", "19127"]
hints:
- "Mirror alphabet: A↔Z, B↔Y, C↔X. X → C, L → O, N → M..."
- "The note says: COMBINATION: MY SONS AGES, ELDEST FIRST."
- "Ages are XIX = 19, XII = 12, VII = 7. Eldest first: 19-12-07."
successText: |
**19-12-07.** Twelve tons of steel swing open on silent hinges.
A wall of safe deposit boxes. Hundreds of them. **Which one is his?**
keyName: Vault Key
- id: ch5
title: Box Number
narrative: |
Kestrel doesn't keep stolen goods under his own name. He uses aliases, all birds of prey.
On the anteroom terminal, a sticky note with a database query in his handwriting.
clues:
A:
- id: a5-query
title: Sticky note on the terminal
type: note
body: |
```sql
SELECT b.box_no
FROM boxes b
JOIN clients c ON c.client_id = b.client_id
WHERE c.alias LIKE 'K%'
AND b.size = 'L'
AND b.last_opened >= '2026-06-01';
```
- id: a5-clients
title: Terminal screen, CLIENTS table
type: table
body: |
| client_id | alias |
|-----------|------------|
| 101 | Kestrel |
| 102 | Heron |
| 103 | Kite |
| 104 | Kingfisher |
| 105 | Osprey |
B:
- id: b5-boxes
title: Downloaded BOXES table (laptop)
type: table
body: |
| box_no | client_id | size | last_opened |
|--------|-----------|------|-------------|
| 214 | 101 | M | 2026-07-14 |
| 233 | 103 | L | 2026-05-31 |
| 309 | 103 | L | 2026-03-02 |
| 317 | 104 | L | 2026-08-30 |
| 402 | 102 | L | 2026-09-01 |
| 411 | 101 | L | 2026-05-29 |
| 518 | 105 | L | 2026-09-10 |
| 520 | 104 | S | 2026-09-11 |
lock:
id: lock-box
prompt: Which box do you open?
inputType: code
format: Box number
answers: ["317"]
hints:
- "Aliases starting with K: Kestrel (101), Kite (103), Kingfisher (104)."
- "Large boxes for those clients: 233, 309, 317, 411."
- Only 317 was opened on or after 1 June 2026.
successText: |
**Box 317.** Inside, wrapped in a bank cloth: Gran's emerald necklace. And a stack of other
"held as security" jewellery with little tags. You photograph every tag for the police.
keyName: Emerald Key
finale:
type: escape
prompt: Alarms trip as you leave the vault. The getaway meet point is in a coded text from your driver.
clues:
A:
- id: af-text
title: Text from the driver (on the Inside Man's burner)
type: transcript
body: |
```
MUTLEETSTHODIREAEP
```
*"Zig-zag it. Rails = floors in that building. You know the rest."*
B:
- id: bf-blueprint
title: Kestrel Private Bank blueprint, cover sheet
type: document
body: |
**Floors:** Ground (banking hall), First (offices), Second (vault and anteroom).
*Basement: none. The vault is upstairs, which is why the lift is reinforced.*
- id: bf-railfence
title: Your notes on zig-zag (rail fence) ciphers
type: note
body: |
Write the message in a zig-zag down and up across N rails, then read each rail left to right.
To decode: work out how many letters sit on each rail, split the text, then zig-zag back through.
lock:
id: lock-getaway
prompt: Where's the meet point?
inputType: text
format: The place (a few words)
answers: ["OLDPIER", "THEOLDPIER", "MEETUSATTHEOLDPIER"]
hints:
- The building has 3 floors, so 3 rails.
- "18 letters on 3 rails split 5 / 9 / 4: MUTLE · ETSTHODIR · EAEP."
- Zig-zag back through and it reads MEET US AT THE OLD PIER.
successEnding: |
**The old pier.** You sprint out the loading dock as sirens wake up three blocks away. The van's door
is already open. Gran's necklace is in your pocket, and Kestrel's box of stolen tags is on its way to a
journalist who's been waiting six months for exactly this.
**You got out!** 💎🔑
failEnding: |
The morning shift arrives. You're still inside, holding a mop. (It's a game. Run it back?)