The Burning Scroll

The Burning Scroll is our first-party ink-wash turn-based game: three drops of ink a turn, paint with Hook, Texture or Wash, and capture a creature into the book by filling its affinity while its strength stands. Six creatures, 23 scenes, three endings, a cross-run bestiary and 131 gameplay assertions.

An ink hand-scroll burning along its edges on a dark wooden table: a white-headed, stripe-marked horse-like beast, a nine-tailed fox beside peach blossoms, a bird carrying a stone, with a brush and an inkstone nearby — illustration, not a screenshot
Illustration (AI-generated), not a game screenshot

An ink hand-scroll catching fire from the inside, and you are the brush-spirit on its last page. Three drops of ink a turn: paint with Hook, Texture or Wash, and if you fill a creature's affinity while its strength still stands, you capture it into the book; empty its strength and it is simply gone. Six creatures, 23 scenes, three endings (the third has conditions), and a cross-run bestiary that remembers who you really captured - and pays you for it next time.

The title screen: unroll, keep writing and bestiary, with the line "recorded 5/5 · seen 5/6 · scroll 6 · progress saves automatically"
The title screen: unroll, keep writing and bestiary, with the line "recorded 5/5 · seen 5/6 · scroll 6 · progress saves automatically"
The rules card before the first fight: five lines in plain words, including "three ink a turn, you may keep painting" and "affinity at 100 with strength still above zero → capture it"
The rules card before the first fight: five lines in plain words, including "three ink a turn, you may keep painting" and "affinity at 100 with strength still above zero → capture it"
In-game: Lushu at 27/30 strength and 48/100 affinity, heart 30/42, three ink pips, and four panels along the bottom — Hook, Texture, Wash, Stop — each printing its own numbers
In-game: Lushu at 27/30 strength and 48/100 affinity, heart 30/42, three ink pips, and four panels along the bottom — Hook, Texture, Wash, Stop — each printing its own numbers
The bestiary: one Shanhaijing line per page with its source, strength and attack, a plain-language hint about its temperament, which scroll you first met it on, and the boon it leaves you
The bestiary: one Shanhaijing line per page with its source, strength and attack, a plain-language hint about its temperament, which scroll you first met it on, and the boon it leaves you
The colophon: after all five pages are recorded, an entrance appears at the foot of the bestiary — four paragraphs signed by the brush spirit of the last page
The colophon: after all five pages are recorded, an entrance appears at the foot of the bestiary — four paragraphs signed by the brush spirit of the last page

What it is

The Burning Scroll is an ink-wash turn-based capture game. The book is on fire from inside; you are the brush-spirit on its last page. Each turn you have three ink, may lay several strokes, then press Stop to let the creature act.

The goal is not to kill it. Get affinity to 100 while its strength is still above zero and you can capture it into the book; let strength hit zero and it is really gone; at a third of its strength or less you may also burn it for two points of corruption.

The three strokes trade off in plain sight: Hook is the safe one (1 ink, −4 strength, +7 affinity), Texture hurts most (2 ink, −8 strength, +3 affinity), Wash feeds affinity (1 ink, −1 strength, +12). So "only wound it" and "only charm it" genuinely diverge - the harness asserts that wounding a creature without ever capturing it always ends in the burn, never an accidental capture.

Classical lines are quoted from the Shanhaijing (public domain), at most a sentence or two per creature; all narration, dialogue and endings are original. The vocabulary is deliberately plain: the screen says strength / affinity / capture / burn, never the classical shorthand, and the buttons print their own numbers.

Six creatures, five temperaments

Lushu (Nanshan jing: shaped like a horse, white head, tiger stripes, red tail) has 30 strength and 6 attack, and startles easily - Wash soothes it harder, measured +16 rather than +12.

The nine-tailed fox of Qingqiu has 38 strength and 7 attack, and sees through repetition: using the same stroke twice cuts the affinity gain from 12 to 5 (42%, measured).

Jingwei (Beishan jing: she carries wood and stones from the western hills to fill the eastern sea) has 34 strength and 8 attack, and her mind is elsewhere: until her strength drops below half, affinity is capped at 60.

Luwu, gatekeeper of Kunlun - tiger body, nine tails, human face - has 46 strength and 9 attack, and does not take his armour off: above 55% strength, affinity caps at 55, and his action pattern includes a recovering beat every three turns.

Qiongqi in the finale cannot be captured, only dispersed, and it heals its own strength when it attacks - it exists to prove there is one fight this game will not let you charm your way through. Zhulong, the hidden page, fades: at the end of each turn the affinity you wrote drops by 6 (24 → 18 measured), which punishes stalling specifically.

Three ink a turn, and three hard lines

Your heart starts at 42, affinity must reach 100 to capture, and zero strength means you killed it. From turn 12 the paper starts to cockle and you lose 4 extra heart each turn (more on deeper scrolls), so nothing can be stalled forever.

Capturing costs an ink of its own: you have to be able to afford that last stroke. Running out of ink just as affinity fills is a real loss.

Burning a wounded creature gives +2 corruption, dispersing one gives +1. Corruption is not a score - it is a ledger of what you burned this scroll, and the third ending requires it to be zero.

Once Zhulong is in the book, the cockle is delayed by three turns (12 → 15). That is where the hidden page actually pays, rather than being one more collectible.

The cross-run book: rewards only come from real captures

The game keeps two things on your device, deliberately apart: `shanhai.run.v1` is where this scroll got to and is cleared after an ending; `shanhai.archive.v1` is what the book itself remembers and is never cleared. The bestiary and the difficulty scaling read the second one.

The book grants only two permanent bonuses: each creature genuinely captured into the pages adds +3 heart (the main reason deep scrolls are survivable), and having captured all four main pages adds one more ink per turn. Note "genuinely captured" - burning or dispersing only counts as having met it.

Each creature also leaves a boon that applies immediately: Lushu +6 heart, Luwu +1 ink, Jingwei makes Texture cost only 1 ink, the fox makes Wash give +6 more affinity. Three of those change resources; the fourth changes how you play.

Scroll scaling is a single assertable formula rather than a hand-copied table: depth is min(3, scroll − 1), strength multiplier 1 / 1.25 / 1.5 / 1.75, affinity discount 1 / 0.88 / 0.76 / 0.64, attack bonus 0 / 2 / 4 / 6, cockle damage 0 / 1 / 2 / 3, and old acquaintances - creatures you really captured in earlier scrolls - start at 0 / 10 / 20 / 20 affinity. It caps at scroll 4: deeper scrolls give you titles, not numbers. Uncapped, the finale of scroll 5 was unwinnable - that is a measurement, not a preference.

How the hidden page opens

On early scrolls Mount Zhong is only about borrowing light. Opening Zhulong's page needs two things at once: scroll 2 or later, and all four main pages genuinely captured. Even capturing all four on scroll 1 does not open it - the harness asserts exactly that, because the condition is about "the next scroll" itself.

After it opens there is a fight, and only capturing it hands you the second brush. That brush plus all four pages plus zero corruption this scroll is what adds the third finale option: "Write on with the second brush: here is a door."

So the three endings are not a mood choice: writing yourself in needs at least two captures this scroll, closing the book is always available, and continuing requires the whole road walked clean.

The numbers were run: 131 assertions

The gameplay kernel is pure data and touches no DOM, so whole runs can be simulated in node. Running `npm run audit` on 2026-10-20 gives 137 passing, 0 failing. Among other things it pins: every capturable creature can in fact be captured (Lushu in 3 turns, the fox in 4, Jingwei 5, Luwu 4, all at 100 affinity with you still standing); wounding without capturing always ends in a burn; the five temperaments really change play (those percentages above are its output); the strokes sum to 4 ink with heart at 42; and there is no zero-cost brush.

That last rule was forced: Jingwei's boon used to be "Hook costs nothing", which let a turn hold unlimited strokes and let you win affinity for free - from scroll 2 every creature fell in one turn. It became "Texture costs only 1 ink", and the harness kept both the specific boon assertion and the no-free-brush one.

New assertions are proven able to fail: inject strength 9999 on Luwu and scroll 1 can no longer capture it (defeat after 9 turns); restore the value and it passes again. Inject attack 99 on Qiongqi and the finale is lost; restore and it is winnable. Erase the merge flag and the same scroll counts twice - the flag is the gate.

The second gate is a real-browser render check: the frame must actually be painted and the frame rate must hold, with a negative control - stop the loop, clear the canvas, shrink the bitmap and it must go red. Those two exit codes are the delivery criteria.

Presentation

How it became this game

Work started on 2026-10-12, and the first version was a Three.js HD-2D turn-based RPG with a five-elements system and gacha. On 2026-10-18 that entire route was scrapped, together with all of its tuning conclusions and its quality checklist; the ink-scroll capture game here is the second title, rewritten.

Three long-term rules came out of that reset: treat the player as a first-timer (plain vocabulary, numbers on the buttons, feedback on every stroke); keep exactly one implementation of the rules, shared by the UI and the harness; and render everything procedurally as vectors, no baked sprites. These are not release notes - they bind every future change.

So the numbers on this page describe the game that runs today. If any older figure still floats around the site, this page and the game are the ones to trust.

The page after the fifth: a colophon

Once all five pages are recorded, an entrance appears at the foot of the bestiary: “Colophon · open”. It is not a fourth ending and it does not touch the finale; it is the last page the book writes for itself — four paragraphs signed by the brush spirit of the last page.

It sits at the end of the bestiary because it only speaks to someone who has read all five pages; until then the slot holds a single hint and gives nothing away. The text lives in shanhai-rpg/src/data/colophon.js, and the unlock reads the length of RECORDABLE rather than hard-coding 5.

How the numbers on this page are checked

The six creatures' names, quotations, sources, strength and attack, temperaments, action patterns and boons are in shanhai-rpg/src/data/bestiary.js. Stroke costs and effects (Hook 1 / Texture 2 / Wash 1, Capture and Burn 1 each), heart 42, three ink a turn, affinity 100, the cockle from turn 12 for 4 damage, Zhulong's fade of 6 and the affinity caps all live in src/game/battle.js; the scaling formula, the book bonuses (+3 heart, one more ink), the hidden-page condition and the two save keys are in src/game/archive.js; the 23 scenes and the finale conditions are in src/game/story.js.

The 3 / 4 / 5 / 4 turn captures, the 12 → 5 (42%) cut, the caps at 60 and 55, Zhulong's 24 → 18, the no-zero-cost-brush rule and the injected-value-must-fail checks are the 137 results of `npm run audit` in the shanhai-rpg repo on 2026-10-20, not estimates.

All five screenshots were taken from the running game on 2026-10-20. The title, bestiary and colophon shots needed a cross-run archive to show what later scrolls look like, so it was built with the game's own merge function - "scroll 6, five pages captured" - which is what you would see after finishing five scrolls; the battle and rules-card shots are a fresh save. The hero image is an AI-generated illustration, not a game screenshot, labelled at the top of the page.

Who it is for

For players who like turn-based systems with the rules written on the wall: three strokes, three hard lines, five temperaments - you can derive the strategy in your first run. Also for collectors who like cross-run growth, because here the bestiary is literally your heart and ink.

Not for players wanting action, random drops or a daily login loop: all the tension is whether you will keep this scroll clean enough to earn the third ending.

FAQ

Do I need an account or payment?
No. It runs free in the browser and never asks for a phone number or ID number.

Do I have to empty its strength?
No. The target is affinity 100 with strength still above zero, then capture. Emptying it is another road, and the price is that it is gone and you gain 1 corruption.

Why will affinity not rise?
Read the plain line under its name: Jingwei and Luwu need their strength cut to about half first, and the fox punishes repeating a stroke.

What if I stall?
From turn 12 the paper cockles and you lose extra heart each turn. Capturing Zhulong delays that by three turns.

How many endings?
Three. Writing yourself in needs at least two captures this scroll; closing the book is always available; the third needs the second brush, all four pages and zero corruption.

How does the hidden one appear?
From scroll 2, with all four main pages genuinely captured. All four on scroll 1 is not enough.

Where is progress saved?
In two places on this device: how far this scroll got (cleared after an ending) and what the book remembers (never cleared). Neither travels between devices.

Does it work on phones?
Yes - the layout is portrait-first cards, and painting a stroke is tapping a button.

What if it will not open?
Try a current Chrome, Edge or Firefox. If it still fails, email contact@gamestrategists.com with your device and browser version.

Unroll the scroll — Runs on its own subdomain · three ink a turn · progress saved on this device