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>
466 lines
9.6 KiB
JSON
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": ""
|
|
}
|
|
}
|
|
}
|