Files
RingBRP/template.json
T
slaguru666andClaude Opus 5 4bfa7110d0 A lamp lights the people standing in it
The goods yard fight made the case: three agents inside the same pool of light shot at
-50% while the fourth, four metres away, shot at -10%.

A lamp now has a reach, per item rather than global, because a weapon lamp and a
vehicle searchlight are not the same offer — 4 m for cold light strips, 6 m for a
weapon lamp, 10 m for the issue field lamp, 30 m for a roof searchlight. Anyone inside
it is in the light and the card names whose lamp it is, so both halves of the rule
travel together: the pool is one position and the whole group is standing in it.

Measured from the tokens. The shot that started this — no lamp of her own, four metres
from somebody else's, in pitch dark — goes from 20% to 60%, while an agent
twenty-five metres out still eats the full -50%.

An UNKNOWN distance is explicitly not lit: Number(null) is 0, so an unmeasured
distance would otherwise have read as standing on top of the lamp and lit any scene
with no tokens placed. The dialog carries a tick instead, pre-set when the canvas could
measure it and the GM's answer when it could not.

Note: template.json is read when Foundry loads the system, so a deployed server needs
a restart and not just a pull before the migration can stamp the new field.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 09:49:30 +01:00

466 lines
9.6 KiB
JSON

{
"Actor": {
"types": [
"character",
"npc",
"expedition"
],
"templates": {
"creature": {
"characteristics": {
"str": {
"value": 13
},
"siz": {
"value": 13
},
"con": {
"value": 13
},
"int": {
"value": 13
},
"pow": {
"value": 13
},
"dex": {
"value": 13
},
"cha": {
"value": 13
},
"edu": {
"value": 13
}
},
"marksmanship": {
"style": "reflex",
"chosenStyle": "reflex"
},
"speciesProfile": "baseline",
"locationDamage": {},
"hp": {
"value": 26,
"max": 26
},
"majorWound": {
"value": 9
},
"wounds": [],
"familiarities": {
"traditions": [
"tradition_home"
],
"environments": []
},
"combat": {
"defencesThisRound": 0,
"defenceTypeLock": "",
"stance": "normal",
"secondAttackUsed": false,
"aiming": {
"active": false,
"targetUuid": "",
"bonus": 0
}
},
"notes": "",
"coherence": {
"value": 10,
"max": 10,
"drift": []
}
}
},
"character": {
"templates": [
"creature"
],
"age": {
"chronological": 30,
"physiological": 30
},
"pursuits": [],
"biography": "",
"rank": "",
"dying": {
"rounds": 0,
"stabilised": false,
"dead": false,
"lastEntry": ""
}
},
"npc": {
"templates": [
"creature"
],
"role": "",
"morale": {
"downThreshold": 2,
"note": ""
},
"naturalArmour": {
"value": 0
},
"tactics": "",
"dying": {
"rounds": 0,
"stabilised": false,
"dead": false,
"lastEntry": ""
}
},
"expedition": {
"supply": {
"value": 8,
"max": 10
},
"power": {
"value": 6,
"max": 10
},
"integrity": {
"value": 10,
"max": 10
},
"integrityMode": "abstract",
"assets": [],
"members": [],
"journey": {
"destinationId": "",
"destinationName": "",
"destinationKnowledge": "rumoured",
"currentLeg": 0,
"elapsedDays": 0,
"siteTableId": "",
"hazardTableId": "",
"legs": [],
"returnClock": 0
},
"standings": [],
"notes": "",
"across": false,
"crossingModifier": 0,
"salvageEra": "modern"
}
},
"Item": {
"types": [
"skill",
"weapon",
"armour",
"gear",
"device",
"discovery",
"project",
"material",
"group",
"talent",
"power",
"vehicle",
"authority"
],
"templates": {
"physical": {
"massKg": 0,
"quantity": 1,
"equipped": false,
"carried": true,
"traditionIds": [
"tradition_home"
],
"description": ""
},
"describable": {
"description": ""
}
},
"skill": {
"templates": [
"describable"
],
"familyId": "",
"specialisationId": "",
"categoryId": "mental",
"base": {
"mode": "flat",
"value": 5,
"formula": ""
},
"value": 5,
"trainingCap": null,
"transferGroup": "",
"experienceTicked": false,
"experienceEligible": true,
"canBeTaught": true
},
"weapon": {
"templates": [
"physical"
],
"weaponClass": "melee",
"skillFamilyId": "",
"skillSpecialisationId": "",
"damage": {
"mode": "single",
"formula": "1d6",
"short": "",
"medium": "",
"long": ""
},
"appliesDamageModifier": true,
"woundType": "blunt",
"monofilament": false,
"fireMode": "",
"ranges": {
"short": 0,
"medium": 0,
"long": 0
},
"ammo": {
"capacity": 0,
"loaded": 0,
"reserve": 0,
"reloadRounds": 1
},
"energyPerShot": 0,
"damageTags": [
"kinetic"
],
"coherenceCost": 0
},
"armour": {
"templates": [
"physical"
],
"points": 1,
"ignoredBy": [],
"degradation": {
"current": 0,
"max": 4
},
"coherenceCost": 0
},
"gear": {
"templates": [
"physical"
],
"powerDraw": 0,
"skillBonus": {
"skillFamilyId": "",
"value": 0
},
"researchFacility": "",
"coherenceCost": 0,
"optic": {
"kind": "",
"fits": "any"
},
"lightSource": false,
"lightReachM": 0
},
"device": {
"templates": [
"physical"
],
"documentId": "",
"materialId": "standard",
"integrity": {
"value": 0,
"max": 3
},
"functions": {
"operate": {
"skillFamilyId": "",
"skillSpecialisationId": "",
"difficulty": "average",
"difficultyAfterDiscovery": "",
"analogueIn": [],
"requiredDiscoveryIds": [],
"familiarityAfterDiscovery": -20,
"requiresIntegrity": 0,
"powerCost": 0,
"powerCostAfterDiscovery": null,
"powerCostOnFailure": 0,
"powerCostOnFumble": 0,
"hoursPerAttempt": 0,
"effect": "",
"onFailure": "",
"onFumble": ""
},
"diagnose": {
"skillFamilyId": "",
"skillSpecialisationId": "",
"difficulty": "average",
"difficultyAfterDiscovery": "",
"analogueIn": [],
"requiredDiscoveryIds": [],
"familiarityAfterDiscovery": -20,
"requiresIntegrity": 0,
"powerCost": 0,
"powerCostAfterDiscovery": null,
"powerCostOnFailure": 0,
"powerCostOnFumble": 0,
"hoursPerAttempt": 0,
"effect": "",
"onFailure": "",
"onFumble": ""
},
"repair": {
"skillFamilyId": "",
"skillSpecialisationId": "",
"difficulty": "difficult",
"difficultyAfterDiscovery": "",
"analogueIn": [],
"requiredDiscoveryIds": [],
"familiarityAfterDiscovery": -20,
"requiresIntegrity": 0,
"powerCost": 0,
"powerCostAfterDiscovery": null,
"powerCostOnFailure": 0,
"powerCostOnFumble": 0,
"hoursPerAttempt": 4,
"effect": "",
"onFailure": "",
"onFumble": ""
}
},
"coherenceCost": 0
},
"discovery": {
"templates": [
"describable"
],
"discoveryId": "",
"question": "",
"unlocks": [],
"publishable": true,
"published": false,
"earned": false
},
"project": {
"templates": [
"describable"
],
"projectId": "",
"question": "",
"status": "proposed",
"maxResearchers": 3,
"currentStep": 0,
"yieldsDiscoveryId": "",
"steps": [],
"complications": []
},
"material": {
"templates": [
"describable"
],
"materialId": "standard",
"immuneTo": [],
"slowTo": [],
"blocksSensors": [],
"neutrinoAbsorption": 0
},
"group": {
"templates": [
"describable"
],
"groupId": "",
"speciesId": "",
"population": 0,
"npcTemplateId": "",
"taboos": [],
"desires": [],
"correctOfferForm": "",
"rewardsByStanding": {
"1": [],
"2": [],
"3": []
}
},
"talent": {
"templates": [
"describable"
],
"talentId": "",
"category": "agency",
"summary": "",
"rule": "",
"skillBonus": {
"skillFamilyId": "",
"value": 0
},
"grantsAction": "",
"coherenceCost": 0,
"usesPerCase": 0,
"usedThisCase": 0
},
"power": {
"templates": [
"describable"
],
"artId": "",
"summary": "",
"rule": "",
"value": 0,
"coherenceCost": 1,
"pushCost": 2,
"pushRule": "",
"origin": "",
"experienceTicked": false
},
"vehicle": {
"templates": [
"physical"
],
"skillFamilyId": "pilot",
"skillSpecialisationId": "ground_car",
"crew": 1,
"seats": 4,
"cargoKg": 200,
"speedBand": "road",
"rangeKm": 400,
"hull": {
"value": 0,
"max": 20
},
"armourPoints": 0,
"terrain": [],
"powerDraw": 0,
"coherenceCost": 0,
"era": "modern",
"notes": "",
"hullMax": 20,
"heat": 0,
"signature": 0,
"stations": [],
"spacecraft": false,
"band": "close"
},
"authority": {
"templates": [
"describable"
],
"holderName": "",
"holderRole": "",
"issuer": "",
"scope": "read",
"scopeNote": "",
"trust": {
"value": 1,
"max": 4
},
"expires": "",
"redFlags": [],
"dossier": [],
"establishesRemit": false,
"timesWidened": 0,
"mergeSteps": 0,
"burned": false,
"suspect": false,
"aiPosture": "",
"notes": ""
}
}
}