CREATURE_FORGE_PLAN Part 5. A third button on the Actors sidebar, beside New
agent and New NPC. Pick what it does, how big it is and how bad it is; the
card underneath describes what those settings will actually produce, because
the argument for a derivation over a form is that it can be interrogated, and
choosing between "brute" and "sentinel" from two nouns is not interrogating
anything. The card is itself forged rather than written, so it cannot
describe a creature the derivation would not make.
generateCreature reads the catalogues out of the packs and calls the same
forgeCreature the CLI calls. Natural attacks carry their body-plan
declarations into flags.ringbrp.plans so the engine can read them.
The plan asks that the panel and the CLI cannot diverge, and importing one
derivation was most of that guarantee but not all of it: the two feed it from
DIFFERENT catalogues — content.mjs on one side, the built compendium on the
other. check-forge now builds the engine's view straight out of packs/weapons
and requires both to forge the same creature.
It found a divergence on its first run, in 40 of 90 pairs. The fallback took
the first usable natural attack from the caller's list, and that list arrives
in declaration order from content.mjs and in id order from the pack, so a
tiny vesh brute was punching for the CLI and constricting at the table. The
derivation may not depend on its caller's iteration order; it imposes its
own now.
Not yet verified in a running Foundry. The pure derivation is covered by 450
guarded combinations and the catalogue seam by the agreement check above, but
Actor.create, the pack reads and the dialog itself are the part
check-behaviour says outright it cannot reach. They need a world open, and
that has not happened yet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The man who told Vane what the chart had to say now has a name: a Mr Smith,
with the company's paper, whom the company never employed. Vane names him if
asked and cannot picture his face. A "do not resolve" line says who he is not
to be explained here: he is the thread into STANDING ORDER.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
R-254 shipped the belly rule and called +6.4 points "modest on purpose". That read the
wrong statistic. +6.4 measured whether grounding helps; the question was whether the
borough still matters, and the gap between fighting the supporter on borough ground and
off it had fallen from 60.6 points to 44.9. Half damage from every departmental weapon is
meant to be the fight's central problem, and I had quietly taken sixteen points off it
while reporting a small number about something else. Same error as R-251.
Three changes that only work together:
- hide 7 -> 9, restoring the weight on the axis that should hurt
- grounded still halves it, 9 -> 4, which an ordinary round beats
- exposedHideFor now takes the location's kind and leaves `vital` unhalved: a beast on
its belly is not presenting its chest to the floor
Measured: 28.4% on borough ground flying, 68.4% grounded, 84.6% off it — a 56.2 point gap
against 44.9 before. Predicted 28.4 / 84.3 / 55.9 before building.
The composition of the three hide functions lives in prepareDerivedData where no test
could reach it, and check-anatomy's guard 6 is deliberately one-sided so it would not
have caught the vital losing its exemption. check-behaviour now composes the same
expression from the real supporter spec and the real tables. Negative-tested four ways:
removing the exemption, un-baring the wings, removing the halving, and inflating the hide
past what a round can beat each fail it with the right message.
Cost: the supporter goes from fifth to second deadliest creature in the book (2.84 -> 3.38
down, 46.8% -> 69.3% wiped). check-lethality refused the build until that row was
deliberately re-recorded.
BESTIARY.md printed the new hide and said nothing about it halving, because the body-plan
blurb predates the rule. The README said "eight guards" in three sentences above a
generated block listing nine. Both are the signature defect in prose: a number written
down that nothing reads. Both now generate.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Option H, measured before it was built. Losing a wing already mattered
once it happened — a grounded supporter was 40.5% to be killed against
9.3% for one still flying, a swing of thirty points. It almost never
happened: the wings carried the creature's own six points of heraldic
hide, so folding one meant beating armour six eight times over, and it
occurred in 9% of fights. The rule was reachable, not weak, and every
option that made grounding HURT more moved the win rate by under five
points because you cannot spend a state you never reach.
So the lever is the wing, not the consequence. A location may now be
`bare`: worn armour still covers it — barding a wing works exactly as
before — but the animal's own hide stops at the edge of the membrane.
The supporter's wings are bare, and it gets the toughness back where a
six-hundred-year-old record should carry it: hide 6 -> 7, CON 20 -> 36,
so 22 hit points become 30. STR and SIZ are untouched, so the damage
modifier stays +2d6.
Measured over 20,000 fights against the same four agents:
grounded on borough off borough
before 9% 12.5% win 85.6% win / 14.4% wiped
after 67% 22.1% win 83.5% win / 16.5% wiped
The wing shot becomes the play. Fighting it on borough ground stays a
losing proposition, so ARGENT AND GULES is still the real answer and
grounding improves a bad fight rather than replacing the solution — and
the fight off borough ground keeps its teeth, marginally more lethal
than before rather than less. Bare wings ALONE was the trap: it made
grounding routine and turned the off-ground fight into a 96% walkover
with a 3.8% wipe rate, buying the text at the cost of the encounter.
check-anatomy gains the property this whole thread was about: a plan
whose behaviour turns on losing a wing must not armour that wing with
the creature's own hide, or the rule is decoration. Negative-tested by
putting the hide back.
Also re-records the lethality baseline, which was ALREADY stale: HEAD's
own code reproduced 27 of its 47 entries differently, because the
supporter joined NPCS in ddc4f99 and shifted the shared random stream
for every creature measured after it. Every drift sat under the guard's
six-point tolerance, so it passed while being wrong. Worth knowing that
the file's claim — "the only thing that can move the number is a change
to the rules or to the creature" — is not currently true: adding any
creature perturbs the rest. Seeding per creature would fix it and is
not done here.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
LOG is LevelDB's diagnostic text — "Delete type=3 #1" and compaction notes — and it is
rewritten every time a pack is OPENED. Not rebuilt: opened. So all eighteen went dirty
whenever anything merely read the compendia, Foundry and any verification script
alike, and pack churn kept turning up in commits that had not touched any content.
Verified disposable before ignoring rather than assumed: a copy of packs/npcs with LOG
and LOG.old deleted opens cleanly, reads back all 21 actors, and LevelDB writes itself
a fresh LOG on open.
CURRENT and MANIFEST-* stay committed, deliberately. They are how a fresh clone finds
the data, and ignoring them would ship compendia nobody can open.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
76 of 76, up from 16. The npcs pack goes from every creature on the generic silhouette
to all 21 with art, and each token carries the same face as its sheet.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Roster agents carry no talents of their own; they expand from their posting at build
time, so changing the pools left the compendia a version behind the register.
Rebuilt with Foundry stopped. Verified by reading the built pack back: 36 packed actors,
none carrying Unblinking, Distributed or Quorum. No lost/ directories, so the packs took
the write without needing repair.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The talent fixes changed source without the compendia following, so the packs said
Braithwaite had Unblinking while roster.mjs said Clean Scene. Rebuilt with Foundry
stopped. Verified in the built pack: no agent carries a vesh talent, and Ashcroft keeps
Out of Step beside Borrowed Hour and Not Quite Here, which is now legal because it is
anomalous rather than species.
The README's guard box regenerated with the new totals, and its prose said "five guards"
in three places when there are seven.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Midjourney read "bench" as furniture in the first version. Regenerated with the
word removed and "no furniture" stated: two coated figures from behind, empty
ground, a dry gully, the town's water tank on the far horizon. Emptiness is the
subject, which is what the scene is for - they arrived where the paperwork says
the railway is.
All thirteen plates are real art and there are no placeholders left.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
tt_11_bureau regenerated after the first attempt timed out, converted to the
house plate format. All thirteen plates are now real art.
A version of tt_12_northbench without the word "bench" in the prompt is still
rendering; the current one is good apart from the park bench Midjourney put in
the desert.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
tt_12_northbench and tt_13_standoff replace the placeholder copies. Converted to
the house plate format, 1024x682 webp, to match the other ten.
The Bureau plate timed out in Midjourney at 1800s waiting for a grid and is still
a placeholder; it is regenerating.
Known flaw in tt_12_northbench: Midjourney read "bench" as furniture and put a
park bench in the Nevada scrub. Everything else about the plate is right - two
coated figures, empty ground, no railway, the town smoking on the horizon - so it
ships while a version without the word regenerates.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Act One is now an induction at the Bureau, Act Two puts the players through the
crossing and makes them find the train, Act Three is a town-side obstacle, Act
Four is the boarding, Act Five is the four minutes. 4h00 in five acts, was 3h30
in three.
The restructure earns one thing the old shape could not: THE CROSSING OPENS WHERE
THE RECORD SAYS THE LINE IS, which is an empty bench of scrub on the wrong side of
the wash. The agents arrive where the paperwork put the railway, not where the
railway is, so the fraud is the ground under their feet and finding the train is
real work. Registry's file has this wrong and Bewley believes the file.
- Act Three: Rance Doyle and five unpaid miners take the agents for company
detectives, and they are not wrong to. Resolves on what the players SAY - no
roll makes it go away, no roll makes it a fight. Losing costs them the 1881
issue, not their lives. His brother Tom is aboard and dies at minute two of
every pass, which is the wiring between the acts
- new cast: Bewley, Prosser, Rance Doyle, Shard, Tom Doyle, Cordera man
- new handouts: the company notice, and the six names in Ambrose's hand
- 8 GM pages, 10 handouts, 15 actors, 13 plates
MEASURED, 400 runs each: the Act Three standoff is 0.4/4 hurt from cover and
1.25/4 in the open, both ending early - but FOUGHT TO A FINISH it puts 1.75 of 4
down and wipes the party in 24% of runs. The early stop is what makes the act
survivable, not the miners being weak. My first draft of that table was guessed
and wrong in all three rows.
FOUND AND FIXED: there is no Ride skill in this game and never has been. The
boarding set-piece has asked for "[CUS: Ride, then Athletics]" since it was
written, through a playtest, which is an instruction to roll a thing nobody has.
Horses are now handled by a local and the agent rolls Athletics.
NEW GUARD: check-scenarios resolves every [CUS: Skill] tag in every scenario
against SKILL_CATALOGUE and fails the build on a skill that does not exist.
Verified it fails on the real bug before wiring it in. Sixth guard.
NOTE: the three new plates (Bureau, north bench, standoff) are placeholders in
this commit - Midjourney is still rendering them.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reversed experience. A skill is marked when it FAILS - failure or fumble - and
never when it works, and the improvement roll is the same reversal: roll OVER
your rating and the skill goes up 1d6. Nobody learns anything from the lock that
opened first time.
The two halves pull against each other on purpose, so ratings converge instead of
running away. Simulated over 2000 campaigns: a 10% and an 85% skill start 75
points apart and are 11 apart after 60 cases.
- rules.mjs owns it: DEVELOPMENT, developmentMarksOn, developmentImproves,
developmentCeiling, developmentGainFor
- trainingCap has been on the skill schema and the item sheet since it was
written and nothing has ever read it. Development reads it now: a skill stops
at its own cap, and everything else stops at DEVELOPMENT.ceiling, because a
d6 gain could otherwise push a 98% skill past 100
- GM opens the phase from a GM-only toggle in the token controls; it posts a
card naming every agent and their marked count, and puts a Development button
on each sheet. Players press their own
- the toggle re-reads the setting on change, since getSceneControlButtons only
fires at load and the button would otherwise lie if the phase were opened by
the API or a second GM
- rules journal and player primer rewritten from the tables; the old text
described the pre-reversal rule on both halves
- 7 spot-checks, 4 behaviour tests; verified end to end in a running Foundry
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
At two, the closing beat of a hard case broke four agents in five at the same
moment. A whole party freezing or bolting on the final scene reads as arithmetic
rather than grief, which is the opposite of what the trigger is for. Found by
playing THROUGH TRAIN end to end.
Replayed the same beat from the same party state — Holloway 3, Okonkwo 2,
Bhattacharya 4, Nkemdirim 3, Finch 2 — with the new cost: one agent breaks, the
rest carry it at 3 and 4 with the penalties that implies. That is the shape it
wanted.
"It said your name" stays at two, and is now the only two-point trigger in the
list, which is right — it should be the singular worst thing that can happen to
somebody.
The rules journal and the player primer both generate their trigger tables from
PANIC_TRIGGERS, so both already print the new number.
Version 1.4.2.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ran the whole case with five agents — briefing, kit swap, Mercy Draw, the
crossing, Cordera, the water tower, the four minutes, the locomotive, the
brakes, the register. It completed, and it exposed one serious defect and two
smaller ones. All three are the same shape: the scenario put dice in front of
things the fiction says should simply happen.
1. THE ENDING WAS UNREACHABLE. Convincing Kell to stop was gated on Persuade
or Status. Only THREE of the ten duty-roster agents have either trained —
the Field Lead has Persuade 15 and Status 15. Three separate attempts on
him all failed and the scenario had no way to end; I narrated it as working
because otherwise there was no ending, which is exactly the improvisation a
scenario is supposed to prevent.
It now takes NO ROLL if the party can tell Kell one true thing about his own
train — the coal, the four minutes, the north bench. He has waited a
hundred and forty-five years for somebody who knows what is wrong to say
so. Only a party that knows nothing rolls, at average, and a failure costs
a pass rather than the ending.
2. THE PAPERS NEEDED PERSUADE. Showing one side the other's document is the
move the scenario is proudest of, and it sat behind Persuade at −30%:
15% became 1%. Both men WANT their paper read — Merritt is proud of his
letter, Ambrose's whole grievance is that nobody has looked at his writ.
No roll, between passes.
3. THE BOARDING SORTED ITSELF BADLY. Athletics runs 25–60% across the roster.
Putting all five on the water tower left the doctor and the Registry officer
missing twice each, carried across on the department's plank, passengers in
their own set-piece, two passes gone. The text now names which route suits
whom before they choose.
What worked, and is worth recording: the automatic clues absorbed two failed
rolls in Act One without the trail stalling; Standing Order 9 caught Okonkwo
checking a wristwatch in an 1881 street and cost a Coherence and a clock tick;
the fumble-is-a-fall rule fired on a 100 at the tower for five damage; the
exposure table held — one hit across the whole fight, on the agent who left
cover to work on Doyle; and the reset landed exactly as intended, with Doyle
standing up at the top of the car and Nkemdirim's hit staying where it was.
Version 1.4.1.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
LevelDB LOG timestamps only — no content change. Committed so the tree matches a
build made with Foundry stopped, which is the state the published archive should
carry.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The loop is no longer just a train going round. It is FOUR MINUTES with a
gunfight in it, and those four minutes have run about two million times.
Two sides, and neither is the villain. Cass Merritt and three hired men have a
signed letter of engagement from the company telling them to surrender the
payroll to nobody "upon any pretext whatsoever, including the presentation of
any paper". Josiah Ambrose and four Cordera miners have a sealed writ of
attachment from a territorial judge naming that same payroll against eleven
weeks of unpaid wages. Both documents are genuine. Neither man has seen the
other's. The company sold the same money twice and is not aboard. Both are
handouts now, and they only mean anything held in the same hand.
The mission is restated everywhere it appears — briefing page, case brief, GM
essentials: CLOSE IT. Closing the crossing does not kill anybody, it lets them
go. The loop ends, 3 November 1881 resumes from 11:44, and everyone aboard walks
forward into the life they would have had — including Ambrose and a miner named
Doyle, who did not survive the real four minutes. The agents are not choosing
who lives; they are choosing to stop holding history still, having met the
people it lands on.
The standing order is louder in three places: NOTHING MODERN GOES THROUGH.
Two things the playtest found, both now written into the text:
- THE FIGHT WAS A TPK GENERATOR. Modelled with all nine shooters firing at the
party it wiped them 171 times in 200. The model was wrong — the two sides
are shooting at EACH OTHER — so the scenario now carries a measured exposure
table: head down draws nothing, acting from cover costs half a party member
and no wipes over 300 runs, moving in the open costs one, and going for the
payroll box wipes more than half of all parties. The GM is told to say that
last row out loud BEFORE anybody commits to it.
- THE LOOP RESETS AND THE AGENTS DO NOT. Everyone who belongs to 1881 is back
up unhurt on the next pass. The agents keep their wounds. Nothing said so,
and a player who assumes otherwise takes risks that kill them. It is now
stated in capitals in both documents, with the played pass that prompted it
— two of four down at 0 hit points, one untouched because he stayed on the
floor.
Nine cast members, eight handouts, ten plates.
Version 1.4.0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
A train has been running the same four miles of track since 3 November 1881. It
has never stopped. Sixty-one people are aboard and all of them are alive.
The supernatural is science fiction underneath, which is the point. A railway
company laid track to a filed survey instead of to the ground, then described the
line as being where it was not — ten thousand times, in timetables and waybills
and telegraph orders, for six months, at a constant speed. Reality keeps a record
of what belongs where, and that is the most patient argument there is. The record
gave way with No. 9 inside it, and the RUNNING is what holds the crossing open: a
standing wave sustained by its own motion the way a bow sustains a note.
So the players must board a train that cannot stop, and then find that sixty-one
people at six passes is four hours they do not have. The ending is what they
choose to do about arithmetic they cannot beat, in front of a conductor holding
the manifest. No roll resolves it.
It is also the case that teaches Standing Order 9: NOTHING MODERN GOES THROUGH.
Using a modern object across costs a Coherence and moves the clock; carrying it
costs nothing; anchors are exempt. The catalogue already had the 1881 issue —
Webley, Martini-Henry, oil lantern, brass compass, pocket watch, buff coat,
laudanum — so the constraint needed no new content and gives the table something
to feel in the first twenty minutes.
Ships as docs/scenarios/THROUGH_TRAIN.md and a Foundry Adventure: 7 GM pages, 6
handouts including the survey that started it and a manifest deliberately held
back to Act Three, the case file at Containment 6 / Resources 5 / Clearance 4
with its four legs loaded, four of the people aboard, and 7 plates to show.
Two fixes from playing it:
- Bhattacharya's RESEARCH was 1%. Placing the new skills last night I swapped
Occult into Registry's core and took Research out — a records office that
cannot look anything up. Research is back in core; Antiquities gets its
Knowledge back the same way.
- The boarding was unrunnable. At halved skill the set-piece put four agents on
12–31% and all four missed, which stalls the one scene the scenario is built
around. It is an average roll now and only a fumble is a fall, with the
reason written into the text so nobody "fixes" it back. Re-run: 3 of 4 aboard
on the first pass and one waiting for the next, which is the shape it wanted.
Version 1.3.0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>