Go to file
type-two e95360a1b2 Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl
Act III, cold-palette EGA. Six rooms, 100 points, verified end-to-end
headlessly at 100/100 with the win firing.

The homage John asked for is a register, not a costume. Nielsen played Drebin Sr
oblivious — the joke was he never noticed. Neeson plays Jr sincere: he notices
everything and means all of it, so his text is written straight and often
genuinely moving, and the comedy is what it turns out to be about. He gives a
Taken speech about his particular set of skills, chief among them paperwork. He
takes four armed robbers in eleven seconds dressed as a schoolgirl with his back
to the actual crime. Cane gets the same sincerity back at him from the wrong
face.

The three-era payoff pays off: the owl sprite is generated monochrome and placed
in a full-colour room, so Frank Drebin Sr is visibly lit by a different decade
than everything around him. The palette rule from DESIGN §2 doing the emotional
work at the climax.

Planned cases 10 and 11 merged into one folder — same film, same cast, no
duplicated sprite set, and the owl payoff lands in the same case as its setup.

Third authoring trap documented: sets_flag fires on use, never on take (points
does both). A takeable item silently failed to set its flag and the gate it fed
never opened; gate on `needs`, which checks inventory, instead.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 22:39:00 +10:00
cases Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl 2026-07-25 22:39:00 +10:00
tools Case Seven: From the Files (1988) — the umpire problem 2026-07-25 22:29:27 +10:00
.gitignore Police Squad Quest: research, design bible, and Case One playable 2026-07-25 22:11:41 +10:00
DESIGN.md Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl 2026-07-25 22:39:00 +10:00
play.sh Police Squad Quest: research, design bible, and Case One playable 2026-07-25 22:11:41 +10:00
README.md Case Ten: The P.L.O.T. Device (2025) — Drebin Jr, and the owl 2026-07-25 22:39:00 +10:00
RESEARCH.md Police Squad Quest: research, design bible, and Case One playable 2026-07-25 22:11:41 +10:00

Police Squad Quest

A Sierra-style adventure game set in the Police Squad! / Naked Gun universe, built on the MRPGI engine (~/Documents/MRPGI) — which is itself a reimplementation of AGI, the engine Sierra shipped Police Quest on.

The game grades you on correct police procedure with a completely straight face. The reward for perfect procedure is catastrophe anyway.

  • RESEARCH.md — the source material: all six Police Squad! episodes, all four films, the recurring cast, and the ZAZ comedy grammar.
  • DESIGN.md — the game bible: the joke engine, the two Drebins, the eleven-case campaign, and how it all maps onto MRPGI data.

Play

./play.sh

Or directly:

cargo run -p mrpgi --manifest-path ~/Documents/MRPGI/Cargo.toml -- --game cases/case-01-substantial-gift

Tab switches between play and the room editor. Type help in play.

What's here

cases/case-01-substantial-gift/ Case One — playable, 100 points. Drebin Sr, 1982, monochrome. Five rooms.
cases/case-07-from-the-files/ Case Seven — playable, 100 points. Drebin Sr, 1988, full colour. Six rooms, the Anaheim Stadium finale.
cases/case-10-plot-device/ Case Ten — playable, 100 points. Drebin Jr (Neeson), 2025, cold palette. Six rooms, the arena finale and the owl.
tools/sprites.py Generates every sprite on the MODELBEAST farm (free, local).
RESEARCH.md / DESIGN.md Source research and the campaign bible.

Case One — A Substantial Gift

Police Squad! episode 1. A credit union manager is dead, the wrong man is in a cell, and the teller has new braces.

Sign out your badge and sidearm (the door will not let you leave without them), get briefed, tip Johnny, dust the counter, match the print, find the bill, and Mirandize the suspect in the correct order. Get the order wrong and the statement is suppressed, which is a Sierra death card, which is the joke.

Case Seven — From the Files

The Naked Gun (1988). Nordberg is shot on Ludwig's freighter, you tackle a head of state at a state reception, and you get fired — which is the only way forward, because a private citizen can't walk onto a baseball field but an umpire can walk anywhere.

The climax: you are the home plate umpire at Anaheim Stadium with no power to search anyone, so every frisk needs an umpire-legitimate pretext — brush the plate, inspect the mitt, check the bat for pine tar — until you reach Number 44. Announce yourself as police instead and sixty thousand people come over the railings.

Case Ten — The P.L.O.T. Device

The Naked Gun (2025). Liam Neeson's Frank Drebin Jr. — played sincere where his father was oblivious. He means everything he says, all the time, and that is both the joke and, eventually, the thing that saves the city.

Bank cold open (you are the distraction and don't know it) → a suicide that isn't → Richard Cane → a New Year's ball drop, a pair of lost trousers, and a barn owl in a 1950s hat who is lit by a different decade than everything around him.

Regenerating art

Sprites are generated locally on MODELBEAST (flux_localbg_remove_local → downscale). Prompts live in each case's sprites.json.

python3 tools/sprites.py cases/case-01-substantial-gift            # fill gaps
python3 tools/sprites.py cases/case-01-substantial-gift --force     # redo all
MB_POOL=1 python3 tools/sprites.py cases/...                        # if the farm 401s

Seeds derive from the sprite name, so reruns reproduce the same art.

Engine changes

Two small, general-purpose additions were made upstream in MRPGI for this project — both benefit any game:

  • sprites/ego.png in a game folder replaces the default party robot as the player avatar (ego1.png optional second walk cel).
  • death_text in game.json overrides the death banner, which was previously hardcoded to another game's flavour text.