Files
RingBRP/system.json
T
slaguru666andClaude Opus 5 4a80cc1eca Body plans keep what a wound MEANT, not just its number (R-94b)
1.7.1 carried wounds across a change of body plan by moving the raw
points. Playing it showed that is the wrong invariant. A location is
disabled at its maximum and destroyed at twice it, those maxima come
from `frac`, and the plans disagree — an arm is 0.35 of the body and a
foreleg 0.42 — so moving the number silently changed the meaning.
Measured across the 20 plan changes: 234 severity flips, 138 of them
turning a location that was merely disabled into a destroyed one. A
destroyed arm arrived as a working-ish foreleg; two disabled arms
stacked onto one Vesh grasping limb and arrived destroyed.

So severity is now the invariant. A hurt location arrives hurt, a
disabled one disabled, a destroyed one destroyed; the points are
rescaled to the destination's own maximum to keep that true, and two
wounds sharing one location take the worse rather than the sum, because
relabelling a creature's anatomy must not destroy a limb that nothing
in play destroyed.

Correspondence is now stated rather than inferred. Every location gains
a plan-independent `slot` (lowerR, upperL, vital, head...), and the
remap matches on slot first. The previous version inferred it from
`kind` plus table order, which inverted left and right on every
crossing: a wounded right arm came back as the opposite hind leg. Where
a destination has no matching slot the fallback prefers the same side
and the same height, so a wing becomes a foreleg rather than a hind leg
and a left wing becomes a LEFT arm. The vesh and the cadence are not
bilateral — one grasping limb, five interchangeable units — so their
slots carry no side, which is a fix to my own first pass: giving them
sided slots was a category error the side guard caught.

check-anatomy now proves all four promises over every ordered pair and
severity band: nothing is stranded, severity is preserved, left never
becomes right and fore never becomes hind between bilateral plans, and
no update deletes a wound it is also setting. 432 carried wounds, 0
flips, down from 234. Five induced failures confirm each assertion
fires; two of my first attempts at those did NOT fire and were sharpened
until they did.

Played through in a live world: a church grim filed as a humanoid with a
destroyed right arm, a disabled left arm and a hurt chest becomes a dog
with a destroyed right foreleg, a disabled left foreleg and hurt
forequarters, and converts back to exactly the wounds it started with.
Its penalties correctly stop being manipulation and start being
movement — a man with two ruined arms drops his weapon, a dog with two
ruined forelegs cannot run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 16:42:57 +01:00

240 lines
5.5 KiB
JSON

{
"id": "ringbrp",
"title": "The Custodians",
"description": "A Basic Roleplaying game of agents who cross the crossing to contain what should not be there — and who come back a little less from here each time.",
"version": "1.7.2",
"compatibility": {
"minimum": 13,
"verified": "14.364"
},
"authors": [
{
"name": "Tim Evans (slaguru666)"
}
],
"esmodules": [
"ringbrp.mjs"
],
"styles": [
"styles/ringbrp.css"
],
"languages": [
{
"lang": "en",
"name": "English",
"path": "lang/en.json"
}
],
"socket": false,
"initiative": "@characteristics.dex.value",
"grid": {
"distance": 3,
"units": "m"
},
"primaryTokenAttribute": "hp",
"secondaryTokenAttribute": null,
"packs": [
{
"name": "pregens",
"label": "The Custodians · Agents",
"path": "packs/pregens",
"type": "Actor",
"system": "ringbrp",
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
},
{
"name": "npcs",
"label": "The Custodians · Natives & Threats",
"path": "packs/npcs",
"type": "Actor",
"system": "ringbrp",
"ownership": {
"PLAYER": "NONE",
"ASSISTANT": "OWNER"
}
},
{
"name": "skills",
"label": "The Custodians · Skill List",
"path": "packs/skills",
"type": "Item",
"system": "ringbrp"
},
{
"name": "talents",
"label": "The Custodians · Talents",
"path": "packs/talents",
"type": "Item",
"system": "ringbrp",
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
},
{
"name": "powers",
"label": "The Custodians · The Quiet Arts",
"path": "packs/powers",
"type": "Item",
"system": "ringbrp",
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
},
{
"name": "weapons",
"label": "The Custodians · Weapons",
"path": "packs/weapons",
"type": "Item",
"system": "ringbrp"
},
{
"name": "armour",
"label": "The Custodians · Armour",
"path": "packs/armour",
"type": "Item",
"system": "ringbrp"
},
{
"name": "gear",
"label": "The Custodians · Gear & Devices",
"path": "packs/gear",
"type": "Item",
"system": "ringbrp"
},
{
"name": "vehicles",
"label": "The Custodians · Transport",
"path": "packs/vehicles",
"type": "Item",
"system": "ringbrp"
},
{
"name": "primer",
"label": "The Custodians · Read this first (players)",
"path": "packs/primer",
"type": "JournalEntry",
"system": "ringbrp"
},
{
"name": "rules",
"label": "The Custodians · Rules",
"path": "packs/rules",
"type": "JournalEntry",
"system": "ringbrp"
},
{
"name": "throughtrain",
"label": "The Custodians · THROUGH TRAIN (crossing starter)",
"path": "packs/throughtrain",
"type": "Adventure",
"system": "ringbrp"
},
{
"name": "starter",
"label": "The Custodians · BLACK PLATFORM (starter case)",
"path": "packs/starter",
"type": "Adventure",
"system": "ringbrp"
},
{
"name": "lastadmission",
"label": "The Custodians · LAST ADMISSION (prologue)",
"path": "packs/lastadmission",
"type": "Adventure",
"system": "ringbrp"
},
{
"name": "prologue",
"label": "The Custodians · OPEN DAY (prologue)",
"path": "packs/prologue",
"type": "Adventure",
"system": "ringbrp"
},
{
"name": "slice",
"label": "The Custodians · The Ilfracombe Crossing",
"path": "packs/slice",
"type": "JournalEntry",
"system": "ringbrp"
},
{
"name": "tables",
"label": "The Custodians · Site & Hazard Tables",
"path": "packs/tables",
"type": "RollTable",
"system": "ringbrp"
},
{
"name": "expedition",
"label": "The Custodians · Case File: ILFRACOMBE",
"path": "packs/expedition",
"type": "Actor",
"system": "ringbrp",
"ownership": {
"PLAYER": "OBSERVER",
"ASSISTANT": "OWNER"
}
}
],
"packFolders": [
{
"name": "The Custodians",
"sorting": "m",
"color": "#18268d",
"folders": [
{
"name": "Scenarios",
"sorting": "m",
"packs": [
"throughtrain",
"lastadmission",
"prologue",
"starter",
"expedition",
"slice"
]
},
{
"name": "Characters",
"sorting": "m",
"packs": [
"pregens",
"npcs"
]
},
{
"name": "Equipment",
"sorting": "m",
"packs": [
"weapons",
"armour",
"gear",
"vehicles"
]
},
{
"name": "Rules & reference",
"sorting": "m",
"packs": [
"primer",
"rules",
"skills",
"talents",
"powers",
"tables"
]
}
]
}
],
"url": "https://gitea.timevans.uk/slaguru666/RingBRP",
"manifest": "https://gitea.timevans.uk/slaguru666/RingBRP/raw/branch/main/system.json",
"download": "https://gitea.timevans.uk/slaguru666/RingBRP/archive/main.zip",
"license": "LICENSE.txt"
}