Files
BladeRunner/reference/rundown-gm-sheet.html
T
slaguru666andClaude Opus 4.8 9a8a331635 Implement RUNDOWN v1: rules, ladders, GM sheet, console
- rules/RUNDOWN.md: the complete system, self-contained
- reference/obstacle-ladders.md: eight six-rung ladders across foot,
  ground vehicle and spinner terrain
- reference/converting-from-raw.md: switching from the published chase
  rules mid-campaign or mid-chase, plus rulings the conversion needs
- reference/rundown-gm-sheet.html: one-page printable GM sheet
- gm-utility/rundown-console.html + modules/rundown.js: touch console
  matching the REP-DETECT panel style, no dependencies, runs from file://

Console logic verified by gm-utility/test/rundown.test.js — 42 assertions
driving the real module through a stub DOM, covering LEAD movement and
clamping, round capping, Overtime drift, undo, Collateral pips and every
outcome band.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 23:06:08 +01:00

238 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>RUNDOWN — GM Sheet</title>
<style>
@page { size: A4 portrait; margin: 10mm; }
*{box-sizing:border-box;margin:0;padding:0}
body{
font-family:"Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;
font-size:8.4pt; line-height:1.32; color:#111; background:#fff;
padding:10mm; max-width:210mm; margin:0 auto;
}
h1{font-size:17pt;letter-spacing:.16em;font-weight:800;margin-bottom:1px}
h1 .sub{display:block;font-size:7.2pt;letter-spacing:.22em;font-weight:400;color:#555;margin-top:3px;text-transform:uppercase}
h2{
font-size:7.4pt;letter-spacing:.2em;text-transform:uppercase;font-weight:800;
border-bottom:1.5px solid #111;padding-bottom:2px;margin-bottom:5px;
}
header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2.5px solid #111;padding-bottom:5px;margin-bottom:8px}
header .lead-set{font-size:7.2pt;color:#333;text-align:right;line-height:1.5}
header .lead-set b{letter-spacing:.06em}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.box{border:1px solid #999;padding:6px 7px;margin-bottom:7px;break-inside:avoid}
table{width:100%;border-collapse:collapse;font-size:8pt}
th,td{text-align:left;padding:2.5px 4px;vertical-align:top;border-bottom:.5px solid #ccc}
th{font-size:6.8pt;letter-spacing:.13em;text-transform:uppercase;color:#444;border-bottom:1px solid #888}
tr:last-child td{border-bottom:none}
.role{font-weight:800;letter-spacing:.05em;white-space:nowrap}
.skill{color:#555;font-size:7.4pt;white-space:nowrap}
.k{font-weight:700}
/* LEAD track */
.track{display:flex;gap:3px;margin:5px 0 3px}
.track .n{
flex:1;text-align:center;border:1px solid #666;padding:7px 0 6px;
font-size:12pt;font-weight:800;font-family:"Courier New",monospace;
}
.track .n.end{background:#111;color:#fff;border-color:#111}
.track .n small{display:block;font-size:5.4pt;letter-spacing:.1em;font-weight:600;font-family:inherit;margin-top:1px}
.tracknote{display:flex;justify-content:space-between;font-size:6.6pt;letter-spacing:.14em;text-transform:uppercase;color:#444}
/* Collateral pips */
.pips{display:flex;gap:5px;margin:4px 0 5px}
.pips div{width:19px;height:19px;border:1.5px solid #333;border-radius:50%}
.pips div:nth-child(n+5){border-color:#111;border-width:2.5px}
/* procedure */
ol.proc{list-style:none;counter-reset:p;font-size:8.2pt}
ol.proc li{counter-increment:p;padding:2.5px 0 2.5px 20px;position:relative;border-bottom:.5px solid #ddd}
ol.proc li:last-child{border-bottom:none}
ol.proc li::before{
content:counter(p);position:absolute;left:0;top:2.5px;width:14px;height:14px;
background:#111;color:#fff;font-size:7pt;font-weight:800;text-align:center;line-height:14px;border-radius:2px;
}
.formula{background:#f0f0f0;border-left:2.5px solid #111;padding:4px 7px;margin:5px 0;font-size:7.8pt;line-height:1.45}
/* ladder */
.ladder td{height:19px;border-bottom:.5px solid #999}
.ladder td.num{width:16px;text-align:center;font-weight:800;font-family:"Courier New",monospace;border-right:1px solid #999;background:#f2f2f2}
.ladder tr:last-child td{border-bottom:1.5px solid #111}
.ladder tr:last-child td.num{background:#111;color:#fff}
.fill{border-bottom:.5px solid #999;height:19px}
.note{font-size:7pt;color:#444;line-height:1.4;margin-top:4px;font-style:italic}
footer{margin-top:8px;padding-top:5px;border-top:1px solid #999;font-size:6.2pt;color:#666;line-height:1.45;text-align:center}
@media print{ body{padding:0} .noprint{display:none} }
.noprint{position:fixed;top:8px;right:8px;background:#111;color:#fff;border:none;padding:8px 14px;font-size:9pt;border-radius:4px;cursor:pointer;font-family:inherit;letter-spacing:.1em}
</style>
</head>
<body>
<button class="noprint" onclick="window.print()">PRINT</button>
<header>
<h1>RUNDOWN<span class="sub">Cardless chases · Blade Runner RPG</span></h1>
<div class="lead-set">
<b>START LEAD</b> &nbsp; 3 close · 4 standard · 5 distant<br>
<b>6 ROUNDS</b> &nbsp; ~15 min · Overtime max 3
</div>
</header>
<!-- LEAD TRACK -->
<div class="box">
<h2>LEAD — mark it, move it once a round</h2>
<div class="track">
<div class="n end">0<small>ENGAGED</small></div>
<div class="n">1</div><div class="n">2</div><div class="n">3</div><div class="n">4</div>
<div class="n">5</div><div class="n">6</div><div class="n">7</div>
<div class="n end">8<small>GHOST</small></div>
</div>
<div class="tracknote"><span>&#9664; Pursuers gain</span><span>Prey gains &#9654;</span></div>
</div>
<div class="cols">
<div>
<!-- ROLES -->
<div class="box">
<h2>Roles — everyone takes one, every round</h2>
<table>
<tr><th>Role</th><th>Roll</th><th>Effect</th></tr>
<tr>
<td class="role">RUNNER</td><td class="skill">Mobility<br>Driving</td>
<td>Successes move LEAD. <span class="k">Free.</span> The default — declare nothing, you are this.</td>
</tr>
<tr>
<td class="role">PRESSURE</td><td class="skill">Firearms<br>Manipulation<br>Connections</td>
<td>Successes move LEAD. <span class="k">1 Collateral each.</span></td>
</tr>
<tr>
<td class="role">SPOTTER</td><td class="skill">Observation</td>
<td>Spend each success: negate a Toll · <span class="k">remove 1 Collateral</span> · +1 advantage die to an ally · reveal next rung.</td>
</tr>
<tr>
<td class="role">CUTTER</td><td class="skill">Mobility<br>Driving</td>
<td><span class="k">Banks</span> successes — spend all at once later. No successes = out 1 round, bank lost.</td>
</tr>
</table>
<div class="note">Fast is expensive. Pure Runners win slowly and clean; Pressure wins fast and bills the city.</div>
</div>
<!-- PROCEDURE -->
<div class="box">
<h2>The round</h2>
<ol class="proc">
<li><b>Reveal the obstacle</b> — before anyone declares.</li>
<li><b>Prey</b> declares a role and rolls.</li>
<li><b>Pursuers</b> declare in any order and roll.</li>
<li><b>Net</b> → move LEAD.</li>
<li><b>Collateral.</b> Narrate. Next rung.</li>
</ol>
<div class="formula">
<b>SIDE TOTAL</b> = highest <u>single</u> Runner result
+ all Pressure successes + banked Cutter spent<br>
<b>NET</b> = pursuers − prey &nbsp;→&nbsp; <b>+</b> lowers LEAD · <b>−</b> raises it
</div>
<div class="note">NPC side: <b>one roll per round</b>, whatever the table size. A real edge is +1 advantage die, never an extra roll.</div>
</div>
<!-- GAMBIT -->
<div class="box">
<h2>Gambit — once each per chase</h2>
<table>
<tr><td class="k" style="width:62px">Roll</td><td>At <b>disadvantage</b>. Modifies your role roll — not an extra roll.</td></tr>
<tr><td class="k">Success</td><td><b>Double</b> your successes this round.</td></tr>
<tr><td class="k">Failure</td><td><b>Out of the chase</b>, terrain-appropriate consequence, +1 Collateral.</td></tr>
</table>
</div>
</div>
<div>
<!-- COLLATERAL -->
<div class="box">
<h2>Collateral — the city pays, never the sheet</h2>
<div class="pips"><div></div><div></div><div></div><div></div><div></div><div></div></div>
<table>
<tr><td class="k" style="width:34px">+1</td><td>each Pressure success · each failed Toll in a crowd · each failed Gambit</td></tr>
<tr><td class="k">−1</td><td>each Spotter success, same round it is generated</td></tr>
</table>
<table style="margin-top:4px">
<tr><th>Spend after</th><th>Cost</th></tr>
<tr><td class="k">1–2</td><td>Noise. Someone remembers your face.</td></tr>
<tr><td class="k">3–4</td><td>A report gets filed. LAPD attention, or the case gets harder.</td></tr>
<tr><td class="k">5–6</td><td>A body, or a burned asset. Something you needed is gone.</td></tr>
</table>
<div class="note">Never spent during the chase. Never modifies a roll. Capped at 6.</div>
</div>
<!-- OUTCOMES -->
<div class="box">
<h2>Outcomes — LEAD 0, LEAD 8, or end of round 6</h2>
<table>
<tr><td class="k" style="width:34px">0</td><td><b>ENGAGED</b> — hands on them.</td></tr>
<tr><td class="k">1–2</td><td><b>CORNERED</b> — trapped, not held. Standoff, negotiation, or a jump.</td></tr>
<tr><td class="k">3–4</td><td><b>LOST, BUT</b> — gone, and you have a direction, an object, a plate, a witness.</td></tr>
<tr><td class="k">5–7</td><td><b>GONE</b> — clean. The street remembers.</td></tr>
<tr><td class="k">8</td><td><b>GHOST</b> — you never had them.</td></tr>
</table>
<div class="note">No outcome is a dead end. LOST, BUT is the ordinary failure and it still hands you the next scene.</div>
</div>
<!-- OVERTIME + TERRAIN -->
<div class="box">
<h2>Overtime &amp; terrain</h2>
<table>
<tr><td colspan="2" style="padding-bottom:4px"><b>OVERTIME</b> — max 3 rounds, GM's call at end of round 6. Terminator stands, no new rungs. <b>LEAD −1 at the start of each round.</b> Collateral doubled.</td></tr>
<tr><th>Terrain</th><th>Runner / Cutter · Start · Collateral</th></tr>
<tr><td class="k">Foot</td><td>Mobility · LEAD 3–4 · standard</td></tr>
<tr><td class="k">Vehicle</td><td>Driving · LEAD 4 · <b>doubled</b></td></tr>
<tr><td class="k">Spinner</td><td>Driving · LEAD 5 · <b>halved</b>, each point severe</td></tr>
</table>
<div class="note">Mixed chase: each side uses its own layer; Collateral takes the higher rate.</div>
</div>
</div>
</div>
<!-- LADDER -->
<div class="box">
<h2>Obstacle ladder — six rungs, in order, one per round. Rung 6 forces the ending.</h2>
<table class="ladder">
<tr><th style="width:16px"></th><th style="width:34%">Obstacle</th><th style="width:33%">Toll</th><th>Tilt</th></tr>
<tr><td class="num">1</td><td></td><td></td><td></td></tr>
<tr><td class="num">2</td><td></td><td></td><td></td></tr>
<tr><td class="num">3</td><td></td><td></td><td></td></tr>
<tr><td class="num">4</td><td></td><td></td><td></td></tr>
<tr><td class="num">5</td><td></td><td></td><td></td></tr>
<tr><td class="num">6</td><td></td><td></td><td></td></tr>
</table>
<div class="note">Toll = a roll or lose your roll this round. Tilt = who the terrain favours, usually +1 die. Mark crowded rungs [C] — a failed Toll there costs 1 Collateral.</div>
</div>
<!-- ROUND LOG -->
<div class="box">
<h2>Round log</h2>
<table>
<tr><th style="width:16px">#</th><th style="width:30%">Roles taken</th><th style="width:12%">Net</th><th style="width:12%">LEAD</th><th style="width:12%">Coll.</th><th>Note</th></tr>
<tr><td class="k">1</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
<tr><td class="k">2</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
<tr><td class="k">3</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
<tr><td class="k">4</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
<tr><td class="k">5</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
<tr><td class="k">6</td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td><td class="fill"></td></tr>
</table>
</div>
<footer>
RUNDOWN v1 — unofficial fan supplement. Not affiliated with, endorsed by, or sponsored by Free League Publishing
or the rights holders of Blade Runner. Requires the Blade Runner RPG core rulebook to play. Not for sale.
</footer>
</body>
</html>