@opencharacter/cwn-srd 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (574) hide show
  1. package/LICENSE +144 -0
  2. package/README.md +170 -2
  3. package/content/armor/armored-clothing.yaml +10 -0
  4. package/content/armor/heavy-armored-suit.yaml +14 -0
  5. package/content/armor/impact-jacket.yaml +11 -0
  6. package/content/armor/light-armored-suit.yaml +13 -0
  7. package/content/armor/medium-armored-suit.yaml +13 -0
  8. package/content/armor/ordinary-clothing.yaml +8 -0
  9. package/content/armor/plated-longcoat.yaml +12 -0
  10. package/content/armor/reinforced-clothing.yaml +9 -0
  11. package/content/armor/reinforced-longcoat.yaml +10 -0
  12. package/content/armor/riot-shield.yaml +9 -0
  13. package/content/armor/street-leathers.yaml +9 -0
  14. package/content/armor/war-harness.yaml +10 -0
  15. package/content/armor-accessories/absorption-plates.yaml +13 -0
  16. package/content/armor-accessories/joint-reinforcement.yaml +10 -0
  17. package/content/armor-mods/absorption-pads.yaml +7 -0
  18. package/content/armor-mods/active-response.yaml +7 -0
  19. package/content/armor-mods/biostabilizing.yaml +5 -0
  20. package/content/armor-mods/customized.yaml +8 -0
  21. package/content/armor-mods/discreet-design.yaml +9 -0
  22. package/content/armor-mods/flexible.yaml +7 -0
  23. package/content/armor-mods/quickchange.yaml +5 -0
  24. package/content/armor-mods/sealed.yaml +5 -0
  25. package/content/armor-mods/tailored-rig.yaml +14 -0
  26. package/content/armor-mods/trauma-dampers.yaml +7 -0
  27. package/content/armor-mods/whisperlight.yaml +7 -0
  28. package/content/arts/alacrity-basic.yaml +6 -0
  29. package/content/arts/alacrity-improved.yaml +6 -0
  30. package/content/arts/alacrity-sublime.yaml +6 -0
  31. package/content/arts/arcane-senses.yaml +4 -0
  32. package/content/arts/arcane-skill.yaml +4 -0
  33. package/content/arts/blades-of-will.yaml +4 -0
  34. package/content/arts/brazen-thews.yaml +11 -0
  35. package/content/arts/faultless-grace.yaml +11 -0
  36. package/content/arts/flying-steps.yaml +4 -0
  37. package/content/arts/hand-of-doom.yaml +9 -0
  38. package/content/arts/hundred-faces.yaml +4 -0
  39. package/content/arts/inexhaustible-vigor.yaml +11 -0
  40. package/content/arts/martial-instinct.yaml +16 -0
  41. package/content/arts/occult-pavis.yaml +9 -0
  42. package/content/arts/personal-void.yaml +4 -0
  43. package/content/arts/refulgent-vitality.yaml +4 -0
  44. package/content/arts/skin-of-steel.yaml +14 -0
  45. package/content/arts/sorcerous-sight.yaml +4 -0
  46. package/content/arts/spiritbane.yaml +4 -0
  47. package/content/backgrounds/bum.yaml +18 -0
  48. package/content/backgrounds/bureaucrat.yaml +18 -0
  49. package/content/backgrounds/clergy.yaml +18 -0
  50. package/content/backgrounds/coder.yaml +18 -0
  51. package/content/backgrounds/corp-security.yaml +18 -0
  52. package/content/backgrounds/corper.yaml +18 -0
  53. package/content/backgrounds/criminal.yaml +18 -0
  54. package/content/backgrounds/doctor.yaml +18 -0
  55. package/content/backgrounds/drone-jockey.yaml +18 -0
  56. package/content/backgrounds/ganger.yaml +18 -0
  57. package/content/backgrounds/laborer.yaml +18 -0
  58. package/content/backgrounds/law-enforcement.yaml +18 -0
  59. package/content/backgrounds/manager.yaml +18 -0
  60. package/content/backgrounds/outlander.yaml +18 -0
  61. package/content/backgrounds/performer.yaml +18 -0
  62. package/content/backgrounds/soldier.yaml +18 -0
  63. package/content/backgrounds/spy.yaml +18 -0
  64. package/content/backgrounds/streetwalker.yaml +18 -0
  65. package/content/backgrounds/technician.yaml +18 -0
  66. package/content/backgrounds/trader.yaml +18 -0
  67. package/content/contacts/contact.yaml +2 -0
  68. package/content/cyberdeck-mods/bespoke-code-optimization.yaml +6 -0
  69. package/content/cyberdeck-mods/buffer-circuits.yaml +7 -0
  70. package/content/cyberdeck-mods/cpu-overclocking.yaml +7 -0
  71. package/content/cyberdeck-mods/memory-expansion.yaml +7 -0
  72. package/content/cyberdeck-mods/polymorphic-intrusion-algorithms.yaml +8 -0
  73. package/content/cyberdeck-mods/skeletal-case.yaml +8 -0
  74. package/content/cyberdeck-mods/thermal-exhaust-case.yaml +8 -0
  75. package/content/cyberdecks/beowulf.yaml +9 -0
  76. package/content/cyberdecks/icepick.yaml +9 -0
  77. package/content/cyberdecks/scrap-deck.yaml +9 -0
  78. package/content/cyberdecks/synapse.yaml +9 -0
  79. package/content/cyberdecks/taifu.yaml +9 -0
  80. package/content/cyberdecks/tanto.yaml +9 -0
  81. package/content/cyberdecks/tizona.yaml +9 -0
  82. package/content/cyberware/active-sense-processor.yaml +14 -0
  83. package/content/cyberware/aesthetic-augmentation-suite.yaml +11 -0
  84. package/content/cyberware/assisted-glide-system.yaml +7 -0
  85. package/content/cyberware/banshee-module.yaml +7 -0
  86. package/content/cyberware/body-blades-i.yaml +15 -0
  87. package/content/cyberware/body-blades-ii.yaml +15 -0
  88. package/content/cyberware/coordination-augment-i.yaml +11 -0
  89. package/content/cyberware/coordination-augment-ii.yaml +14 -0
  90. package/content/cyberware/courier-memory.yaml +7 -0
  91. package/content/cyberware/cranial-jack.yaml +13 -0
  92. package/content/cyberware/cyberears.yaml +9 -0
  93. package/content/cyberware/cybereyes.yaml +9 -0
  94. package/content/cyberware/cyberlimb.yaml +7 -0
  95. package/content/cyberware/cybernetic-infrastructure-baseline.yaml +10 -0
  96. package/content/cyberware/deadman-circuit.yaml +7 -0
  97. package/content/cyberware/dermal-armor-i.yaml +11 -0
  98. package/content/cyberware/dermal-armor-ii.yaml +11 -0
  99. package/content/cyberware/dermal-armor-iii.yaml +11 -0
  100. package/content/cyberware/dermal-armor-trauma-shielding.yaml +8 -0
  101. package/content/cyberware/discretion-insurance-unit.yaml +7 -0
  102. package/content/cyberware/ear-mod-filter.yaml +8 -0
  103. package/content/cyberware/ear-mod-positional-detection.yaml +8 -0
  104. package/content/cyberware/ear-mod-sonar.yaml +8 -0
  105. package/content/cyberware/ear-mod-tracer.yaml +8 -0
  106. package/content/cyberware/emergency-stabilization-factor.yaml +7 -0
  107. package/content/cyberware/enhanced-reflexes-i.yaml +7 -0
  108. package/content/cyberware/enhanced-reflexes-ii.yaml +8 -0
  109. package/content/cyberware/enhanced-reflexes-iii.yaml +8 -0
  110. package/content/cyberware/eye-mod-dazzler.yaml +9 -0
  111. package/content/cyberware/eye-mod-flechette-launcher.yaml +11 -0
  112. package/content/cyberware/eye-mod-impostor.yaml +8 -0
  113. package/content/cyberware/eye-mod-infrared-vision.yaml +8 -0
  114. package/content/cyberware/eye-mod-low-light-vision.yaml +8 -0
  115. package/content/cyberware/eye-mod-tactical-view.yaml +8 -0
  116. package/content/cyberware/eye-mod-zoom.yaml +8 -0
  117. package/content/cyberware/fleshmod.yaml +7 -0
  118. package/content/cyberware/full-body-conversion.yaml +11 -0
  119. package/content/cyberware/funes-complex.yaml +7 -0
  120. package/content/cyberware/gunlink.yaml +9 -0
  121. package/content/cyberware/headcomm.yaml +7 -0
  122. package/content/cyberware/hemosynthetic-filter-system.yaml +7 -0
  123. package/content/cyberware/holdout-cavity.yaml +7 -0
  124. package/content/cyberware/iron-hand-aegis.yaml +7 -0
  125. package/content/cyberware/limbgun.yaml +7 -0
  126. package/content/cyberware/medical-support-readout.yaml +7 -0
  127. package/content/cyberware/medusa-implant.yaml +7 -0
  128. package/content/cyberware/muscle-fiber-replacement-i.yaml +11 -0
  129. package/content/cyberware/muscle-fiber-replacement-ii.yaml +11 -0
  130. package/content/cyberware/neolimb.yaml +11 -0
  131. package/content/cyberware/neural-buffer.yaml +27 -0
  132. package/content/cyberware/omnihand.yaml +7 -0
  133. package/content/cyberware/poseidon-implants.yaml +7 -0
  134. package/content/cyberware/prosthetic-cyber-i.yaml +7 -0
  135. package/content/cyberware/prosthetic-cyber-ii.yaml +7 -0
  136. package/content/cyberware/reaction-booster-i.yaml +11 -0
  137. package/content/cyberware/reaction-booster-ii.yaml +11 -0
  138. package/content/cyberware/recovery-support-unit.yaml +7 -0
  139. package/content/cyberware/redundant-systems.yaml +7 -0
  140. package/content/cyberware/regulated-anagathic-substrate.yaml +7 -0
  141. package/content/cyberware/remote-control-unit.yaml +12 -0
  142. package/content/cyberware/retribution-shield.yaml +8 -0
  143. package/content/cyberware/sealed-systems-implant.yaml +7 -0
  144. package/content/cyberware/sensory-recorder.yaml +7 -0
  145. package/content/cyberware/sharkskin-electrodes.yaml +7 -0
  146. package/content/cyberware/shock-fists.yaml +8 -0
  147. package/content/cyberware/skillplug-jack-i.yaml +11 -0
  148. package/content/cyberware/skillplug-jack-ii.yaml +11 -0
  149. package/content/cyberware/skillplug-wiring.yaml +11 -0
  150. package/content/cyberware/skinmod.yaml +6 -0
  151. package/content/cyberware/skull-citadel.yaml +7 -0
  152. package/content/cyberware/skyborn-shielding.yaml +7 -0
  153. package/content/cyberware/stick-pads.yaml +7 -0
  154. package/content/cyberware/synthears.yaml +9 -0
  155. package/content/cyberware/syntheyes.yaml +9 -0
  156. package/content/cyberware/synthlimb.yaml +7 -0
  157. package/content/cyberware/therapeutic-control-dampers.yaml +7 -0
  158. package/content/cyberware/titan-gun-system.yaml +7 -0
  159. package/content/cyberware/trajectory-optimization-node.yaml +7 -0
  160. package/content/cyberware/viper-sting.yaml +7 -0
  161. package/content/cyberware/zombie-wires.yaml +8 -0
  162. package/content/cyberware-complications/bad-connection.yaml +4 -0
  163. package/content/cyberware-complications/blatant.yaml +4 -0
  164. package/content/cyberware-complications/complicated.yaml +4 -0
  165. package/content/cyberware-complications/debilitating.yaml +4 -0
  166. package/content/cyberware-complications/exhausting.yaml +4 -0
  167. package/content/cyberware-complications/fussy.yaml +4 -0
  168. package/content/cyberware-complications/inefficient.yaml +6 -0
  169. package/content/cyberware-complications/loud.yaml +4 -0
  170. package/content/cyberware-complications/petty-annoyance.yaml +4 -0
  171. package/content/cyberware-complications/power-hungry.yaml +4 -0
  172. package/content/cyberware-complications/uncooperative.yaml +4 -0
  173. package/content/cyberware-complications/unreliable.yaml +4 -0
  174. package/content/cyberware-mods/biocapacitors.yaml +6 -0
  175. package/content/cyberware-mods/durable-system.yaml +7 -0
  176. package/content/cyberware-mods/firewalled.yaml +6 -0
  177. package/content/cyberware-mods/hardened-weave.yaml +8 -0
  178. package/content/cyberware-mods/low-maintenance.yaml +6 -0
  179. package/content/cyberware-mods/monoblade.yaml +7 -0
  180. package/content/cyberware-mods/profile-adjustment.yaml +6 -0
  181. package/content/cyberware-mods/quick-detach.yaml +6 -0
  182. package/content/cyberware-mods/tailored-interface.yaml +8 -0
  183. package/content/cyberware-mods/targeting-processor.yaml +6 -0
  184. package/content/drone-fittings/ablative-code-buffer.yaml +7 -0
  185. package/content/drone-fittings/altitude-boost-unit.yaml +7 -0
  186. package/content/drone-fittings/ammo-caddy.yaml +7 -0
  187. package/content/drone-fittings/ammo-supply.yaml +7 -0
  188. package/content/drone-fittings/assisted-boost-burner.yaml +7 -0
  189. package/content/drone-fittings/cargo-space.yaml +8 -0
  190. package/content/drone-fittings/command-deck-follow.yaml +7 -0
  191. package/content/drone-fittings/command-deck-kill.yaml +7 -0
  192. package/content/drone-fittings/command-deck-patrol.yaml +7 -0
  193. package/content/drone-fittings/command-deck-watch.yaml +7 -0
  194. package/content/drone-fittings/emergency-evac-litter.yaml +7 -0
  195. package/content/drone-fittings/emissions-shielding.yaml +7 -0
  196. package/content/drone-fittings/enhanced-structure.yaml +8 -0
  197. package/content/drone-fittings/extended-range.yaml +7 -0
  198. package/content/drone-fittings/glider-grips.yaml +7 -0
  199. package/content/drone-fittings/improved-armor.yaml +9 -0
  200. package/content/drone-fittings/improved-targeting-logic.yaml +7 -0
  201. package/content/drone-fittings/laser-comms.yaml +7 -0
  202. package/content/drone-fittings/manipulator-tendrils.yaml +7 -0
  203. package/content/drone-fittings/memory-banks.yaml +7 -0
  204. package/content/drone-fittings/no-touch-web.yaml +7 -0
  205. package/content/drone-fittings/sleep-mode.yaml +7 -0
  206. package/content/drone-fittings/stealth-package.yaml +7 -0
  207. package/content/drone-fittings/suicide-charge.yaml +7 -0
  208. package/content/drone-fittings/telescopic-optics.yaml +7 -0
  209. package/content/drone-fittings/thermal-optics.yaml +7 -0
  210. package/content/drone-fittings/trauma-response-suite.yaml +7 -0
  211. package/content/drone-fittings/voice-broadcast.yaml +7 -0
  212. package/content/drone-fittings/wallcrawler.yaml +7 -0
  213. package/content/drone-fittings/weapon-hardpoint.yaml +8 -0
  214. package/content/drone-mods/additional-fitting.yaml +8 -0
  215. package/content/drone-mods/additional-hardpoint.yaml +8 -0
  216. package/content/drone-mods/battery-swapping.yaml +7 -0
  217. package/content/drone-mods/boosted-engine.yaml +7 -0
  218. package/content/drone-mods/heavy-plating.yaml +9 -0
  219. package/content/drone-mods/quick-launch.yaml +7 -0
  220. package/content/drone-mods/redundant-systems.yaml +8 -0
  221. package/content/drone-mods/stripped-fittings.yaml +9 -0
  222. package/content/drones/hummingbird.yaml +14 -0
  223. package/content/drones/javelin.yaml +14 -0
  224. package/content/drones/kerberos.yaml +11 -0
  225. package/content/drones/kraken.yaml +11 -0
  226. package/content/drones/mouse.yaml +14 -0
  227. package/content/drones/pitbull.yaml +14 -0
  228. package/content/drones/roach.yaml +14 -0
  229. package/content/drones/shrike.yaml +11 -0
  230. package/content/drones/sunfish.yaml +14 -0
  231. package/content/drugs/avalanche.yaml +5 -0
  232. package/content/drugs/boneshaker.yaml +5 -0
  233. package/content/drugs/chokeout.yaml +4 -0
  234. package/content/drugs/control-delete.yaml +4 -0
  235. package/content/drugs/hellbender.yaml +4 -0
  236. package/content/drugs/lurch.yaml +7 -0
  237. package/content/drugs/madeleine.yaml +4 -0
  238. package/content/drugs/medical-prescription.yaml +4 -0
  239. package/content/drugs/olympus.yaml +6 -0
  240. package/content/drugs/panacea.yaml +5 -0
  241. package/content/drugs/pillow.yaml +5 -0
  242. package/content/drugs/psycho.yaml +4 -0
  243. package/content/drugs/reset.yaml +6 -0
  244. package/content/drugs/sand.yaml +4 -0
  245. package/content/drugs/trauma-patch.yaml +4 -0
  246. package/content/drugs/window.yaml +5 -0
  247. package/content/edges/educated.yaml +10 -0
  248. package/content/edges/face.yaml +4 -0
  249. package/content/edges/focused.yaml +9 -0
  250. package/content/edges/ghost.yaml +4 -0
  251. package/content/edges/graced.yaml +9 -0
  252. package/content/edges/hacker.yaml +12 -0
  253. package/content/edges/hard-to-kill.yaml +9 -0
  254. package/content/edges/killing-blow.yaml +11 -0
  255. package/content/edges/masterful-expertise.yaml +2 -0
  256. package/content/edges/on-target.yaml +8 -0
  257. package/content/edges/operators-fortune.yaml +2 -0
  258. package/content/edges/prodigy.yaml +29 -0
  259. package/content/edges/spellcaster.yaml +10 -0
  260. package/content/edges/summoner.yaml +9 -0
  261. package/content/edges/veterans-luck.yaml +2 -0
  262. package/content/edges/voice-of-the-people.yaml +8 -0
  263. package/content/edges/wired.yaml +10 -0
  264. package/content/foci/ace-driver.yaml +10 -0
  265. package/content/foci/alert.yaml +4 -0
  266. package/content/foci/all-natural.yaml +41 -0
  267. package/content/foci/armsmaster.yaml +16 -0
  268. package/content/foci/assassin.yaml +4 -0
  269. package/content/foci/authority.yaml +4 -0
  270. package/content/foci/close-combatant.yaml +9 -0
  271. package/content/foci/cyberdoc.yaml +7 -0
  272. package/content/foci/deadeye.yaml +8 -0
  273. package/content/foci/diplomat.yaml +4 -0
  274. package/content/foci/drone-pilot.yaml +19 -0
  275. package/content/foci/expert-programmer.yaml +16 -0
  276. package/content/foci/healer.yaml +13 -0
  277. package/content/foci/henchkeeper.yaml +4 -0
  278. package/content/foci/many-faces.yaml +5 -0
  279. package/content/foci/pop-idol.yaml +9 -0
  280. package/content/foci/roamer.yaml +10 -0
  281. package/content/foci/safe-haven.yaml +4 -0
  282. package/content/foci/shocking-assault.yaml +12 -0
  283. package/content/foci/snipers-eye.yaml +4 -0
  284. package/content/foci/specialist.yaml +36 -0
  285. package/content/foci/tinker.yaml +12 -0
  286. package/content/foci/unarmed-combatant.yaml +14 -0
  287. package/content/foci/unique-gift.yaml +4 -0
  288. package/content/foci/unregistered.yaml +4 -0
  289. package/content/foci/whirlwind-assault.yaml +4 -0
  290. package/content/gear/active-hearing-protection.yaml +5 -0
  291. package/content/gear/ammunition.yaml +4 -0
  292. package/content/gear/anti-flash-goggles.yaml +5 -0
  293. package/content/gear/backpack.yaml +7 -0
  294. package/content/gear/basic-smartphone.yaml +4 -0
  295. package/content/gear/binoculars.yaml +5 -0
  296. package/content/gear/bus-pass-monthly.yaml +4 -0
  297. package/content/gear/cheap-vr-crown.yaml +7 -0
  298. package/content/gear/climbing-kit.yaml +5 -0
  299. package/content/gear/empty-magazine.yaml +5 -0
  300. package/content/gear/fashionable-clothing.yaml +7 -0
  301. package/content/gear/fashionable-smartphone.yaml +4 -0
  302. package/content/gear/gas-mask.yaml +5 -0
  303. package/content/gear/handheld-radio.yaml +5 -0
  304. package/content/gear/haute-couture-clothing.yaml +7 -0
  305. package/content/gear/ir-goggles.yaml +5 -0
  306. package/content/gear/kit-basic-tools.yaml +5 -0
  307. package/content/gear/kit-cyberdoc.yaml +5 -0
  308. package/content/gear/kit-medkit.yaml +5 -0
  309. package/content/gear/kit-survival.yaml +5 -0
  310. package/content/gear/lockpicks.yaml +5 -0
  311. package/content/gear/maintenance-supplies.yaml +5 -0
  312. package/content/gear/manufacturers-installation-kit.yaml +5 -0
  313. package/content/gear/military-ration.yaml +5 -0
  314. package/content/gear/ordinary-clothes.yaml +7 -0
  315. package/content/gear/portable-video-camera.yaml +5 -0
  316. package/content/gear/smartphone-service-plan.yaml +4 -0
  317. package/content/gear/surgical-theater-tools-level-1.yaml +5 -0
  318. package/content/gear/surgical-theater-tools-level-2.yaml +4 -0
  319. package/content/gear/surgical-theater-tools-level-3.yaml +4 -0
  320. package/content/gear/ultralight-tab-radio.yaml +5 -0
  321. package/content/gear/wearable-light.yaml +7 -0
  322. package/content/programs/subjects/avatar.yaml +6 -0
  323. package/content/programs/subjects/barrier.yaml +6 -0
  324. package/content/programs/subjects/camera.yaml +6 -0
  325. package/content/programs/subjects/cyber.yaml +6 -0
  326. package/content/programs/subjects/datafile.yaml +6 -0
  327. package/content/programs/subjects/door.yaml +6 -0
  328. package/content/programs/subjects/drone.yaml +6 -0
  329. package/content/programs/subjects/machine.yaml +6 -0
  330. package/content/programs/subjects/program.yaml +6 -0
  331. package/content/programs/subjects/sensor.yaml +6 -0
  332. package/content/programs/subjects/transmission.yaml +6 -0
  333. package/content/programs/subjects/turret.yaml +6 -0
  334. package/content/programs/verbs/activate.yaml +12 -0
  335. package/content/programs/verbs/analyze.yaml +12 -0
  336. package/content/programs/verbs/append.yaml +10 -0
  337. package/content/programs/verbs/blind.yaml +9 -0
  338. package/content/programs/verbs/deactivate.yaml +12 -0
  339. package/content/programs/verbs/decrypt.yaml +10 -0
  340. package/content/programs/verbs/defend.yaml +9 -0
  341. package/content/programs/verbs/delude.yaml +9 -0
  342. package/content/programs/verbs/erase.yaml +11 -0
  343. package/content/programs/verbs/frisk.yaml +11 -0
  344. package/content/programs/verbs/ghost.yaml +8 -0
  345. package/content/programs/verbs/glitch.yaml +10 -0
  346. package/content/programs/verbs/hijack.yaml +9 -0
  347. package/content/programs/verbs/kill.yaml +10 -0
  348. package/content/programs/verbs/lock.yaml +10 -0
  349. package/content/programs/verbs/paralyze.yaml +9 -0
  350. package/content/programs/verbs/replace.yaml +10 -0
  351. package/content/programs/verbs/sabotage.yaml +12 -0
  352. package/content/programs/verbs/sense.yaml +9 -0
  353. package/content/programs/verbs/siege.yaml +9 -0
  354. package/content/programs/verbs/silence.yaml +9 -0
  355. package/content/programs/verbs/stun.yaml +11 -0
  356. package/content/programs/verbs/terminate.yaml +10 -0
  357. package/content/programs/verbs/unlock.yaml +12 -0
  358. package/content/skillplugs/level-0.yaml +35 -0
  359. package/content/skillplugs/level-1.yaml +35 -0
  360. package/content/skillplugs/level-2.yaml +35 -0
  361. package/content/skillplugs/level-3.yaml +37 -0
  362. package/content/spells/arson.yaml +5 -0
  363. package/content/spells/blast.yaml +5 -0
  364. package/content/spells/blastwave.yaml +5 -0
  365. package/content/spells/bless.yaml +5 -0
  366. package/content/spells/cleanse-toxin.yaml +5 -0
  367. package/content/spells/cloak.yaml +5 -0
  368. package/content/spells/combat-precognition.yaml +5 -0
  369. package/content/spells/compulsion.yaml +5 -0
  370. package/content/spells/curse.yaml +5 -0
  371. package/content/spells/detect-target.yaml +5 -0
  372. package/content/spells/dispel.yaml +5 -0
  373. package/content/spells/disrupt.yaml +5 -0
  374. package/content/spells/emotion.yaml +5 -0
  375. package/content/spells/far-senses.yaml +5 -0
  376. package/content/spells/glide.yaml +5 -0
  377. package/content/spells/haste.yaml +5 -0
  378. package/content/spells/heal-injury.yaml +5 -0
  379. package/content/spells/illumination.yaml +5 -0
  380. package/content/spells/mirage.yaml +5 -0
  381. package/content/spells/muffle.yaml +5 -0
  382. package/content/spells/paralysis.yaml +5 -0
  383. package/content/spells/psychic-interrogation.yaml +5 -0
  384. package/content/spells/slow.yaml +5 -0
  385. package/content/spells/soul-link.yaml +5 -0
  386. package/content/spells/stun.yaml +5 -0
  387. package/content/spells/stunwave.yaml +5 -0
  388. package/content/spells/triage.yaml +5 -0
  389. package/content/spirit-powers/airy-steps.yaml +2 -0
  390. package/content/spirit-powers/artifice-wise.yaml +2 -0
  391. package/content/spirit-powers/aura-of-destruction.yaml +2 -0
  392. package/content/spirit-powers/curse.yaml +2 -0
  393. package/content/spirit-powers/ensnare.yaml +4 -0
  394. package/content/spirit-powers/favor.yaml +2 -0
  395. package/content/spirit-powers/feral-pact.yaml +2 -0
  396. package/content/spirit-powers/finned-swiftness.yaml +2 -0
  397. package/content/spirit-powers/flesh-of-clay.yaml +2 -0
  398. package/content/spirit-powers/ghostly-presence.yaml +2 -0
  399. package/content/spirit-powers/hideous-talons.yaml +4 -0
  400. package/content/spirit-powers/iron-eidolon.yaml +4 -0
  401. package/content/spirit-powers/merciful-hands.yaml +2 -0
  402. package/content/spirit-powers/mighty-form.yaml +4 -0
  403. package/content/spirit-powers/mislead.yaml +2 -0
  404. package/content/spirit-powers/misty-form.yaml +2 -0
  405. package/content/spirit-powers/mortal-disguise.yaml +2 -0
  406. package/content/spirit-powers/myrmidons-shield.yaml +2 -0
  407. package/content/spirit-powers/namebearer.yaml +2 -0
  408. package/content/spirit-powers/natural-immunity.yaml +2 -0
  409. package/content/spirit-powers/poltergeist.yaml +2 -0
  410. package/content/spirit-powers/skilled.yaml +2 -0
  411. package/content/spirit-powers/spiderlegs.yaml +2 -0
  412. package/content/spirit-powers/spirit-of-war.yaml +4 -0
  413. package/content/spirit-powers/spirit-whispers.yaml +2 -0
  414. package/content/spirit-powers/spirits-eye.yaml +2 -0
  415. package/content/spirit-powers/swift-pursuit.yaml +2 -0
  416. package/content/spirit-powers/violent-will.yaml +4 -0
  417. package/content/spirits/spirit.yaml +11 -0
  418. package/content/syndromes/brutal.yaml +4 -0
  419. package/content/syndromes/candid.yaml +4 -0
  420. package/content/syndromes/cold.yaml +4 -0
  421. package/content/syndromes/distant.yaml +4 -0
  422. package/content/syndromes/exultant.yaml +4 -0
  423. package/content/syndromes/fearless.yaml +4 -0
  424. package/content/syndromes/hypervigilant.yaml +4 -0
  425. package/content/syndromes/murderous.yaml +4 -0
  426. package/content/syndromes/ravenous.yaml +4 -0
  427. package/content/syndromes/savage.yaml +4 -0
  428. package/content/syndromes/secretive.yaml +4 -0
  429. package/content/syndromes/stressed.yaml +4 -0
  430. package/content/vehicle-fittings/advanced-sensors.yaml +7 -0
  431. package/content/vehicle-fittings/afterburners.yaml +8 -0
  432. package/content/vehicle-fittings/armor-plating.yaml +8 -0
  433. package/content/vehicle-fittings/cargo-space.yaml +6 -0
  434. package/content/vehicle-fittings/crash-pod.yaml +8 -0
  435. package/content/vehicle-fittings/ecm-emitter.yaml +8 -0
  436. package/content/vehicle-fittings/emissions-cloaking.yaml +8 -0
  437. package/content/vehicle-fittings/extra-durability.yaml +9 -0
  438. package/content/vehicle-fittings/extra-passengers.yaml +8 -0
  439. package/content/vehicle-fittings/field-portable.yaml +7 -0
  440. package/content/vehicle-fittings/ghost-driver.yaml +8 -0
  441. package/content/vehicle-fittings/hardpoint-support.yaml +10 -0
  442. package/content/vehicle-fittings/jack-control-port.yaml +7 -0
  443. package/content/vehicle-fittings/limpet-mount-medium.yaml +8 -0
  444. package/content/vehicle-fittings/limpet-mount-small.yaml +8 -0
  445. package/content/vehicle-fittings/living-quarters.yaml +8 -0
  446. package/content/vehicle-fittings/medbay.yaml +9 -0
  447. package/content/vehicle-fittings/offroad-package.yaml +9 -0
  448. package/content/vehicle-fittings/power-system-large.yaml +9 -0
  449. package/content/vehicle-fittings/power-system-medium.yaml +9 -0
  450. package/content/vehicle-fittings/power-system-small.yaml +8 -0
  451. package/content/vehicle-fittings/sealed-atmosphere.yaml +9 -0
  452. package/content/vehicle-fittings/smugglers-hold.yaml +7 -0
  453. package/content/vehicle-fittings/targeting-board.yaml +9 -0
  454. package/content/vehicle-fittings/tool-rack.yaml +8 -0
  455. package/content/vehicle-mods/augmented-armor.yaml +7 -0
  456. package/content/vehicle-mods/drone-hub.yaml +6 -0
  457. package/content/vehicle-mods/extra-seating.yaml +7 -0
  458. package/content/vehicle-mods/integrated-magazines.yaml +6 -0
  459. package/content/vehicle-mods/personalized-controls.yaml +6 -0
  460. package/content/vehicle-mods/power-system-upgrade.yaml +7 -0
  461. package/content/vehicle-mods/q-cladding.yaml +6 -0
  462. package/content/vehicle-mods/reactive-defenses.yaml +8 -0
  463. package/content/vehicle-mods/reinforced-chassis.yaml +8 -0
  464. package/content/vehicle-mods/remote-sensors.yaml +6 -0
  465. package/content/vehicle-mods/supplementary-tanks.yaml +6 -0
  466. package/content/vehicle-mods/ultralight-components.yaml +8 -0
  467. package/content/vehicle-mods/upgraded-speed.yaml +8 -0
  468. package/content/vehicles/apc.yaml +16 -0
  469. package/content/vehicles/car.yaml +14 -0
  470. package/content/vehicles/casra.yaml +17 -0
  471. package/content/vehicles/dropcraft.yaml +17 -0
  472. package/content/vehicles/gev.yaml +16 -0
  473. package/content/vehicles/helicopter.yaml +16 -0
  474. package/content/vehicles/micro-flyer.yaml +15 -0
  475. package/content/vehicles/motorcycle.yaml +14 -0
  476. package/content/vehicles/tank.yaml +16 -0
  477. package/content/vehicles/truck.yaml +14 -0
  478. package/content/weapon-mods/autotargeting.yaml +7 -0
  479. package/content/weapon-mods/body-blades-1.yaml +17 -0
  480. package/content/weapon-mods/body-blades-2.yaml +17 -0
  481. package/content/weapon-mods/concealed.yaml +4 -0
  482. package/content/weapon-mods/customized.yaml +6 -0
  483. package/content/weapon-mods/extended-mag.yaml +7 -0
  484. package/content/weapon-mods/hand-of-doom.yaml +16 -0
  485. package/content/weapon-mods/heavy-sabot.yaml +7 -0
  486. package/content/weapon-mods/integral-toxins.yaml +8 -0
  487. package/content/weapon-mods/onboard-gunlink.yaml +5 -0
  488. package/content/weapon-mods/predictive-guidance.yaml +8 -0
  489. package/content/weapon-mods/reel-wires.yaml +5 -0
  490. package/content/weapon-mods/savage-impact.yaml +8 -0
  491. package/content/weapon-mods/shock-burst.yaml +4 -0
  492. package/content/weapon-mods/stun-rounds.yaml +13 -0
  493. package/content/weapon-mods/thermal-charge.yaml +8 -0
  494. package/content/weapon-mods/unarmed-combatant-2.yaml +7 -0
  495. package/content/weapon-mods/unarmed-combatant.yaml +11 -0
  496. package/content/weapons/advanced-big-sword.yaml +15 -0
  497. package/content/weapons/advanced-bow.yaml +17 -0
  498. package/content/weapons/advanced-club.yaml +15 -0
  499. package/content/weapons/advanced-knife.yaml +16 -0
  500. package/content/weapons/advanced-sword.yaml +14 -0
  501. package/content/weapons/anti-materiel-rifle.yaml +19 -0
  502. package/content/weapons/automatic-rifle.yaml +18 -0
  503. package/content/weapons/big-club.yaml +16 -0
  504. package/content/weapons/big-sword.yaml +15 -0
  505. package/content/weapons/club.yaml +17 -0
  506. package/content/weapons/combat-rifle.yaml +18 -0
  507. package/content/weapons/combat-shotgun.yaml +18 -0
  508. package/content/weapons/demo-charge.yaml +17 -0
  509. package/content/weapons/drone-cannon.yaml +17 -0
  510. package/content/weapons/eye-flechette.yaml +14 -0
  511. package/content/weapons/flash-grenade.yaml +14 -0
  512. package/content/weapons/frag-grenade.yaml +16 -0
  513. package/content/weapons/gas-grenade.yaml +14 -0
  514. package/content/weapons/grenade-launcher.yaml +15 -0
  515. package/content/weapons/headshot-pod.yaml +17 -0
  516. package/content/weapons/heavy-machine-gun.yaml +20 -0
  517. package/content/weapons/heavy-pistol.yaml +15 -0
  518. package/content/weapons/knife.yaml +16 -0
  519. package/content/weapons/land-mine-anti-personnel.yaml +14 -0
  520. package/content/weapons/land-mine-anti-vehicle.yaml +15 -0
  521. package/content/weapons/light-pistol.yaml +15 -0
  522. package/content/weapons/main-tank-gun.yaml +17 -0
  523. package/content/weapons/mortar.yaml +17 -0
  524. package/content/weapons/mounted-autogun.yaml +18 -0
  525. package/content/weapons/rifle.yaml +16 -0
  526. package/content/weapons/rocket-launcher.yaml +17 -0
  527. package/content/weapons/semi-auto-shotgun.yaml +16 -0
  528. package/content/weapons/shotgun.yaml +16 -0
  529. package/content/weapons/shrieker-gun.yaml +15 -0
  530. package/content/weapons/smoke-grenade.yaml +14 -0
  531. package/content/weapons/sniper-rifle.yaml +18 -0
  532. package/content/weapons/spear.yaml +16 -0
  533. package/content/weapons/submachine-gun.yaml +17 -0
  534. package/content/weapons/sword.yaml +14 -0
  535. package/content/weapons/taser-pistol.yaml +14 -0
  536. package/content/weapons/unarmed.yaml +13 -0
  537. package/dist/i18n/en.d.ts +3 -0
  538. package/dist/i18n/en.js +2 -0
  539. package/dist/i18n/en.json +2531 -0
  540. package/dist/index.d.ts +3 -0
  541. package/dist/index.js +2 -0
  542. package/dist/release.json +38279 -0
  543. package/i18n/en/backgrounds.yaml +20 -0
  544. package/i18n/en/cyberware.yaml +299 -0
  545. package/i18n/en/edges.yaml +41 -0
  546. package/i18n/en/foci.yaml +184 -0
  547. package/i18n/en/gear.yaml +252 -0
  548. package/i18n/en/magic.yaml +174 -0
  549. package/i18n/en/tech.yaml +472 -0
  550. package/i18n/en/weapons.yaml +99 -0
  551. package/i18n/en.yaml +1491 -0
  552. package/pack.yaml +13 -0
  553. package/package.json +58 -3
  554. package/rules/advancement.yaml +163 -0
  555. package/rules/armor.yaml +81 -0
  556. package/rules/attributes.yaml +46 -0
  557. package/rules/backgrounds.yaml +102 -0
  558. package/rules/building.yaml +467 -0
  559. package/rules/character.yaml +100 -0
  560. package/rules/checks.yaml +187 -0
  561. package/rules/contacts.yaml +10 -0
  562. package/rules/creation.yaml +398 -0
  563. package/rules/cyberware.yaml +162 -0
  564. package/rules/drones.yaml +38 -0
  565. package/rules/edges.yaml +80 -0
  566. package/rules/foci.yaml +118 -0
  567. package/rules/gear.yaml +185 -0
  568. package/rules/hacking.yaml +131 -0
  569. package/rules/layout.yaml +426 -0
  570. package/rules/magic.yaml +207 -0
  571. package/rules/skills.yaml +61 -0
  572. package/rules/tags.yaml +137 -0
  573. package/rules/vehicles.yaml +30 -0
  574. package/rules/weapons.yaml +253 -0
package/LICENSE ADDED
@@ -0,0 +1,144 @@
1
+ Cities Without Number (SRD) (cwn-srd): an Open Character Format pack
2
+ ================================================================================
3
+
4
+ This pack models the character rules of the Cities Without Number System
5
+ Reference Document 1.0 by Kevin Crawford, which its author dedicated to the
6
+ public domain under CC0 1.0 Universal (dated 9/8/23). It carries that document's text and
7
+ tables.
8
+
9
+ This pack is compatible with Cities Without Number, a game by Kevin Crawford
10
+ published by Sine Nomine Publishing. It is built on the Cities Without Number
11
+ System Reference Document, which its author dedicated to the public domain under
12
+ CC0 1.0. It is unofficial: it is not affiliated with, approved or endorsed by
13
+ Kevin Crawford or Sine Nomine Publishing.
14
+
15
+ The Open Character Format contributors' own work in this pack (its data, and the
16
+ names, labels and text written for it) is dedicated to the public domain under
17
+ CC0 1.0 Universal too. The game's name, the publisher's name and their
18
+ trademarks belong to their owners.
19
+
20
+ The text of CC0 1.0 Universal follows.
21
+
22
+ --------------------------------------------------------------------------------
23
+
24
+ Creative Commons Legal Code
25
+
26
+ CC0 1.0 Universal
27
+
28
+ CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
29
+ LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
30
+ ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
31
+ INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
32
+ REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
33
+ PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
34
+ THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
35
+ HEREUNDER.
36
+
37
+ Statement of Purpose
38
+
39
+ The laws of most jurisdictions throughout the world automatically confer
40
+ exclusive Copyright and Related Rights (defined below) upon the creator
41
+ and subsequent owner(s) (each and all, an "owner") of an original work of
42
+ authorship and/or a database (each, a "Work").
43
+
44
+ Certain owners wish to permanently relinquish those rights to a Work for
45
+ the purpose of contributing to a commons of creative, cultural and
46
+ scientific works ("Commons") that the public can reliably and without fear
47
+ of later claims of infringement build upon, modify, incorporate in other
48
+ works, reuse and redistribute as freely as possible in any form whatsoever
49
+ and for any purposes, including without limitation commercial purposes.
50
+ These owners may contribute to the Commons to promote the ideal of a free
51
+ culture and the further production of creative, cultural and scientific
52
+ works, or to gain reputation or greater distribution for their Work in
53
+ part through the use and efforts of others.
54
+
55
+ For these and/or other purposes and motivations, and without any
56
+ expectation of additional consideration or compensation, the person
57
+ associating CC0 with a Work (the "Affirmer"), to the extent that he or she
58
+ is an owner of Copyright and Related Rights in the Work, voluntarily
59
+ elects to apply CC0 to the Work and publicly distribute the Work under its
60
+ terms, with knowledge of his or her Copyright and Related Rights in the
61
+ Work and the meaning and intended legal effect of CC0 on those rights.
62
+
63
+ 1. Copyright and Related Rights. A Work made available under CC0 may be
64
+ protected by copyright and related or neighboring rights ("Copyright and
65
+ Related Rights"). Copyright and Related Rights include, but are not
66
+ limited to, the following:
67
+
68
+ i. the right to reproduce, adapt, distribute, perform, display,
69
+ communicate, and translate a Work;
70
+ ii. moral rights retained by the original author(s) and/or performer(s);
71
+ iii. publicity and privacy rights pertaining to a person's image or
72
+ likeness depicted in a Work;
73
+ iv. rights protecting against unfair competition in regards to a Work,
74
+ subject to the limitations in paragraph 4(a), below;
75
+ v. rights protecting the extraction, dissemination, use and reuse of data
76
+ in a Work;
77
+ vi. database rights (such as those arising under Directive 96/9/EC of the
78
+ European Parliament and of the Council of 11 March 1996 on the legal
79
+ protection of databases, and under any national implementation
80
+ thereof, including any amended or successor version of such
81
+ directive); and
82
+ vii. other similar, equivalent or corresponding rights throughout the
83
+ world based on applicable law or treaty, and any national
84
+ implementations thereof.
85
+
86
+ 2. Waiver. To the greatest extent permitted by, but not in contravention
87
+ of, applicable law, Affirmer hereby overtly, fully, permanently,
88
+ irrevocably and unconditionally waives, abandons, and surrenders all of
89
+ Affirmer's Copyright and Related Rights and associated claims and causes
90
+ of action, whether now known or unknown (including existing as well as
91
+ future claims and causes of action), in the Work (i) in all territories
92
+ worldwide, (ii) for the maximum duration provided by applicable law or
93
+ treaty (including future time extensions), (iii) in any current or future
94
+ medium and for any number of copies, and (iv) for any purpose whatsoever,
95
+ including without limitation commercial, advertising or promotional
96
+ purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
97
+ member of the public at large and to the detriment of Affirmer's heirs and
98
+ successors, fully intending that such Waiver shall not be subject to
99
+ revocation, rescission, cancellation, termination, or any other legal or
100
+ equitable action to disrupt the quiet enjoyment of the Work by the public
101
+ as contemplated by Affirmer's express Statement of Purpose.
102
+
103
+ 3. Public License Fallback. Should any part of the Waiver for any reason
104
+ be judged legally invalid or ineffective under applicable law, then the
105
+ Waiver shall be preserved to the maximum extent permitted taking into
106
+ account Affirmer's express Statement of Purpose. In addition, to the
107
+ extent the Waiver is so judged Affirmer hereby grants to each affected
108
+ person a royalty-free, non transferable, non sublicensable, non exclusive,
109
+ irrevocable and unconditional license to exercise Affirmer's Copyright and
110
+ Related Rights in the Work (i) in all territories worldwide, (ii) for the
111
+ maximum duration provided by applicable law or treaty (including future
112
+ time extensions), (iii) in any current or future medium and for any number
113
+ of copies, and (iv) for any purpose whatsoever, including without
114
+ limitation commercial, advertising or promotional purposes (the
115
+ "License"). The License shall be deemed effective as of the date CC0 was
116
+ applied by Affirmer to the Work. Should any part of the License for any
117
+ reason be judged legally invalid or ineffective under applicable law, such
118
+ partial invalidity or ineffectiveness shall not invalidate the remainder
119
+ of the License, and in such case Affirmer hereby affirms that he or she
120
+ will not (i) exercise any of his or her remaining Copyright and Related
121
+ Rights in the Work or (ii) assert any associated claims and causes of
122
+ action with respect to the Work, in either case contrary to Affirmer's
123
+ express Statement of Purpose.
124
+
125
+ 4. Limitations and Disclaimers.
126
+
127
+ a. No trademark or patent rights held by Affirmer are waived, abandoned,
128
+ surrendered, licensed or otherwise affected by this document.
129
+ b. Affirmer offers the Work as-is and makes no representations or
130
+ warranties of any kind concerning the Work, express, implied,
131
+ statutory or otherwise, including without limitation warranties of
132
+ title, merchantability, fitness for a particular purpose, non
133
+ infringement, or the absence of latent or other defects, accuracy, or
134
+ the present or absence of errors, whether or not discoverable, all to
135
+ the greatest extent permissible under applicable law.
136
+ c. Affirmer disclaims responsibility for clearing rights of other persons
137
+ that may apply to the Work or any use thereof, including without
138
+ limitation any person's Copyright and Related Rights in the Work.
139
+ Further, Affirmer disclaims responsibility for obtaining any necessary
140
+ consents, permissions or other rights required for any use of the
141
+ Work.
142
+ d. Affirmer understands and acknowledges that Creative Commons is not a
143
+ party to this document and has no duty or obligation with respect to
144
+ this CC0 or use of the Work.
package/README.md CHANGED
@@ -1,3 +1,171 @@
1
- # Temporary Holding Version
1
+ # Cities Without Number (SRD)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ `@opencharacter/cwn-srd` is an [Open Character Format](https://opencharacterformat.org/) pack
4
+ of the character rules of the Cities Without Number System Reference Document 1.0, which its
5
+ author, Kevin Crawford, dedicated to the public domain under CC0. It is for apps that build, show
6
+ and play its characters with an OCF engine: attributes and skills, backgrounds, Edges and Foci,
7
+ hit points, saves and combat, advancement to 10th level, System Strain and cyberware, weapons,
8
+ armor and gear, hacking, drones and vehicles, Contacts, and the optional magic and alienation
9
+ rules. It carries the document's own text and tables.
10
+
11
+ Compatible with Cities Without Number, by Kevin Crawford. This pack is unofficial: it is not
12
+ affiliated with, approved or endorsed by Kevin Crawford or Sine Nomine Publishing.
13
+
14
+ ## Install and load
15
+
16
+ ```sh
17
+ pnpm add @opencharacter/cwn-srd @opencharacter/engine
18
+ ```
19
+
20
+ This release needs spec 0.3: `@opencharacter/engine` 0.3.0 or later. An engine for an older
21
+ spec refuses it (`spec-version-unsupported`).
22
+
23
+ The package's default export is the pack's release, ready for `loadRuleset`; its English text is
24
+ `@opencharacter/cwn-srd/i18n/en` (also as JSON, `release.json` and `i18n/en.json`).
25
+
26
+ ```ts
27
+ import { applyChanges, computeSheet, loadRuleset, startAction } from '@opencharacter/engine';
28
+ import cyber from '@opencharacter/cwn-srd';
29
+
30
+ const loaded = loadRuleset([cyber]);
31
+ if (!loaded.ok) throw new Error(loaded.errors.map((e) => e.code).join(', '));
32
+ const { ruleset } = loaded;
33
+
34
+ // A random character: attributes rolled in order, the background's skills rolled, every other
35
+ // pick drawn.
36
+ const blank = {
37
+ specVersion: '0.3.0',
38
+ id: 'new-operator',
39
+ packs: [{ id: 'cwn-srd', version: '0.2.0' }],
40
+ creating: true,
41
+ };
42
+ const run = startAction(ruleset, blank, {
43
+ action: { id: 'cwn-srd:create-character' },
44
+ params: { random: true },
45
+ });
46
+ if (!('status' in run) || run.status !== 'finished') throw new Error('creation paused');
47
+ const made = applyChanges(
48
+ ruleset,
49
+ blank,
50
+ run.proposedChanges.map((p) => p.change),
51
+ );
52
+ if (!made.ok) throw new Error('creation failed');
53
+
54
+ const sheet = computeSheet(ruleset, made.character);
55
+ sheet.values['cwn-srd:saves.physical']?.value; // 15 less the better of Str and Con
56
+ ```
57
+
58
+ The guided start, `guided` (the same action without `random`), pauses for every pick, each with
59
+ a recommendation, so an automatic run finishes too. Campaigns with magic or alienation turn on
60
+ the input fields `campaign.magic` and `campaign.alienation`. The
61
+ [quick start](https://opencharacterformat.org/guides/quick-start/) and the
62
+ [guides](https://opencharacterformat.org/guides/) cover showing the sheet, rolling, pausing for
63
+ the player's choices and other characters.
64
+
65
+ ## License
66
+
67
+ - **License:** `CC0-1.0`. The source document is CC0, and so is this pack: [`LICENSE`](LICENSE).
68
+ - **Notice:** `not-affiliated`, which apps show as they would a license notice. CC0 asks for
69
+ nothing; the document's author asks that works built on it not be presented as official or
70
+ endorsed.
71
+
72
+ ## What it models
73
+
74
+ - **Attributes:** the six scores (3d6 in order with one score made 14, or the array), their
75
+ modifiers (Prodigy's +3, bonuses capped at +2, or +3 where the source says so), and cyberware
76
+ that sets a score.
77
+ - **Skills:** 19 skills, plus Cast and Summon for magic, from no skill (-1) to level-4; checks
78
+ are 2d6 plus skill and attribute, with Specialist's and Healer's extra dice. Skill levels are
79
+ saved inputs: creation and advancement raise them, and skillplugs lift the level checks use.
80
+ - **Creation:** a guided and a random start. Backgrounds with their free skill and Growth and
81
+ Learning tables (three rolls split between them, or two Learning picks), the rule that a
82
+ third pick of a skill becomes another skill, attribute bonuses split among physical or mental
83
+ attributes, two Edges, a Focus, the Underdog Rule's bonus Edge, hit points, the free skill,
84
+ two Acquaintances or a Friend, $500 and an item of up to $1,000. Edges and Foci bring their
85
+ bonus skills, gear budgets, starting cyber, programs, spells and arts.
86
+ - **Edges** (14, and the three magical ones) in rules-level choices: two at creation, the
87
+ Underdog Rule's, and a third at 5th level. `gain-edge` finishes `closed` for the 5th-level
88
+ Edge below 5th level and for the Underdog Edge without the rule. The Underdog Rule counts the
89
+ modifiers of the rolled scores (`attributes.modTotal`), so its bonus Edge can't undo it. **Foci** (26) are copies with a level, gained at
90
+ creation, at 2nd, 5th, 7th and 10th level and with Focused; a Focus's bonus skill during
91
+ advancement is three skill points toward it, banked as credit.
92
+ - **Advancement:** experience on the fast or slow table, a level-up action (hit points rerolled
93
+ per level, skill points, the Focus and Edge the level brings), and actions to spend skill
94
+ points on skills and attribute boosts.
95
+ - **Combat:** attack bonus, saves, initiative, Ranged and Melee AC, Trauma Target, Damage Soak
96
+ that ablates per fight, and an attack action with the attribute choice, skill (-2 untrained),
97
+ burst fire, Shock on a miss, the Trauma Die and Traumatic Hits, Killing Blow, Armsmaster and
98
+ Deadeye. Weapons track their magazines.
99
+ - **Gear:** every weapon, armor, accessory, mod, mission gear, pharmaceutical, cyberdeck,
100
+ program element, drone, drone fitting, vehicle, vehicle fitting and mod in the document.
101
+ Mods, fittings and armor accessories are templates on their item; fittings use a drone's
102
+ fittings or a vehicle's Power and Mass. Encumbrance counts Readied and Stowed gear.
103
+ - **Cyberware:** all 80 systems with their System Strain (eye and ear mods halved by
104
+ cybereyes and cyberears), effects, cyberware mods and implant complications as templates,
105
+ skillplugs, and the optional alienation rules with the chrome syndromes. System Strain
106
+ counts implants, lifestyle and the drugs, first aid and cyber that add to it.
107
+ - **Hacking:** Access, Memory, CPU and Shielding from the best deck, the program elements in
108
+ Memory, the programs a hacker can write and keep, and an action to run a program.
109
+ - **Magic:** Mage and Summoner Effort, cyber's cost to them, prepared spells, casting and
110
+ overcasting, summoning (each spirit's cost from its own powers and ritual), spirits and their
111
+ powers, and Graced arts with their points. Martial Instinct's bonus rolls (the `bonusRoll`
112
+ situational choice on an attack) roll the hit or damage twice, the better kept, and refresh
113
+ with rest; Occult Pavis rolls saves against magic (`versusMagic`) twice.
114
+ - **Contacts**, named by the player, as Acquaintances or Friends.
115
+
116
+ ## Add-on packs
117
+
118
+ A pack that depends on `cwn-srd` can add content of its types, and creation and advancement offer
119
+ it with the core's: backgrounds, Edges and Foci in the guided picks and the random draws, and
120
+ weapons, armor, gear, cyberdecks and drones as the free starting item. What content brings is read
121
+ from its fields and tags, not its ID: a Focus or Edge's `startingItems` and `startingCyber` (write
122
+ another pack's items by qualified ID, `<pack>:gear.<id>`), `brings-cyber` for one that brings
123
+ cyberware, `bars-cyber` for one that bars it (as All Natural does), `repeatable`, `not-underdog`.
124
+
125
+ - **Open enums:** cyberware `category`, a program Subject's `subjectType` (a Verb's `targets`
126
+ name them), a drone's `moveKind` and a spell's `duration`. An add-on lists new values in
127
+ `extendEnums` and names them in its text.
128
+ - **Naming what an add-on adds:** it names each added value, option or key in its own text,
129
+ under the key this pack would use, and `createText` finds it there when the app passes the
130
+ ruleset's `enumOrigins`, `optionOrigins` and `familyOrigins`. For example,
131
+ `psionic` added to `cwn-srd:types.cyberware.fields.category` is
132
+ `types.cyberware.fields.category.values.psionic.name: Psionic` (through `enumOrigins`).
133
+ - **Tagged steps** take an add-on's rules-level `option` and `changes` effects: `creation.item`
134
+ (the free starting item's kind: an added option is another free item), `creation.gear` (the
135
+ starting money and lifestyle), `creation.finish` (the last step of creation),
136
+ `advancement.level` (each new level), `rest.night` (a night's rest) and `rest.scene` (the end of
137
+ a scene).
138
+
139
+ - **Skills** are the `skill` family: an add-on adds one (`families: { 'cwn-srd:skill': [<key>] }`)
140
+ and declares its `skills.<key>.base` (tagged `skill-base` and `skill.<key>`), `.credit` and
141
+ `.level` (tagged `skill` and `skill.<key>`). The core's changes reach them through `fieldId`, so
142
+ creation, a Focus's or Edge's bonus skill and `improve-skill` gain and raise it as the core's. A
143
+ background's entries (`freeSkill`, `growth1`–`growth6`, `learning1`–`learning8`), a Focus's
144
+ `bonusSkill`, `bonusSkill2` and `levelTwoSkill`, an Edge's `bonusSkill`, a weapon's `skill` and
145
+ the parameters `gain-skill.code` and `improve-skill.skill` are open enums that take its key.
146
+
147
+ Still closed: the enums that are the rules' own: a program's `kind` (Verb or Subject), armor `kind`,
148
+ cyberware `concealment`, a spell's `effort`, vehicle `size`, and the attributes.
149
+
150
+ ## Left to the table
151
+
152
+ - Situational modifiers (cover, range, prone targets, snap attacks, charges, dual wielding) are
153
+ the attack's and checks' `modifier` parameters.
154
+ - Execution Attacks, suppressive fire, grappling, drone and vehicle combat, chases, demons and
155
+ network architecture are text: the attack covers single and burst fire.
156
+ - Once-per-scene and once-per-day abilities (rerolls, Veteran's Luck, Enhanced Reflexes) are
157
+ text; the cyber that costs System Strain to trigger has a trigger action.
158
+ - Starting languages are a count and a free text field: the city's languages are the setting's.
159
+
160
+ ## Rule readings
161
+
162
+ - **Random start:** the attributes are rolled in order (one score made 14: the lowest, if under
163
+ 14), and the background's skills rolled, each roll's table drawn. Everything else is drawn
164
+ among the eligible options.
165
+ - **Guided recommendations:** the first eligible option, so an automatic run finishes; the
166
+ recommended Focus gear is the dearest vehicle or drone the budget buys, then the dearest that
167
+ still fits, until the budget is spent.
168
+ - **Physical skills** for skillplugs: Drive, Exert, Perform, Punch, Shoot, Sneak and Stab.
169
+ - **Pushing encumbrance:** up to two Readied and four Stowed past the limits is Move 7 m, twice
170
+ that is Move 5 m, and more is past the limits.
171
+ - **Dermal plating and armor** don't stack: the higher base AC applies.
@@ -0,0 +1,10 @@
1
+ id: armor.armored-clothing
2
+ type: armor
3
+ fields:
4
+ cost: 1000
5
+ enc: 2
6
+ kind: clothing
7
+ rangedAc: 16
8
+ meleeAc: 14
9
+ soak: 5
10
+ traumaMod: 1
@@ -0,0 +1,14 @@
1
+ id: armor.heavy-armored-suit
2
+ type: armor
3
+ tags:
4
+ - restricted
5
+ fields:
6
+ cost: 20000
7
+ enc: 3
8
+ kind: suit
9
+ rangedAc: 20
10
+ meleeAc: 18
11
+ soak: 15
12
+ traumaMod: 3
13
+ heavy: 1
14
+ obvious: true
@@ -0,0 +1,11 @@
1
+ id: armor.impact-jacket
2
+ type: armor
3
+ fields:
4
+ cost: 1000
5
+ enc: 1
6
+ kind: clothing
7
+ rangedAc: 12
8
+ meleeAc: 14
9
+ soak: 8
10
+ traumaMod: 1
11
+ obvious: true
@@ -0,0 +1,13 @@
1
+ id: armor.light-armored-suit
2
+ type: armor
3
+ tags:
4
+ - restricted
5
+ fields:
6
+ cost: 5000
7
+ enc: 2
8
+ kind: suit
9
+ rangedAc: 16
10
+ meleeAc: 13
11
+ soak: 5
12
+ traumaMod: 2
13
+ obvious: true
@@ -0,0 +1,13 @@
1
+ id: armor.medium-armored-suit
2
+ type: armor
3
+ tags:
4
+ - restricted
5
+ fields:
6
+ cost: 10000
7
+ enc: 3
8
+ kind: suit
9
+ rangedAc: 18
10
+ meleeAc: 14
11
+ soak: 10
12
+ traumaMod: 2
13
+ obvious: true
@@ -0,0 +1,8 @@
1
+ id: armor.ordinary-clothing
2
+ type: armor
3
+ fields:
4
+ cost: 25
5
+ enc: 0
6
+ kind: clothing
7
+ rangedAc: 10
8
+ meleeAc: 10
@@ -0,0 +1,12 @@
1
+ id: armor.plated-longcoat
2
+ type: armor
3
+ fields:
4
+ cost: 2000
5
+ enc: 3
6
+ kind: clothing
7
+ rangedAc: 17
8
+ meleeAc: 15
9
+ soak: 5
10
+ traumaMod: 1
11
+ heavy: 1
12
+ obvious: true
@@ -0,0 +1,9 @@
1
+ id: armor.reinforced-clothing
2
+ type: armor
3
+ fields:
4
+ cost: 100
5
+ enc: 0
6
+ kind: clothing
7
+ rangedAc: 13
8
+ meleeAc: 10
9
+ soak: 2
@@ -0,0 +1,10 @@
1
+ id: armor.reinforced-longcoat
2
+ type: armor
3
+ fields:
4
+ cost: 500
5
+ enc: 1
6
+ kind: clothing
7
+ rangedAc: 15
8
+ meleeAc: 13
9
+ soak: 5
10
+ traumaMod: 1
@@ -0,0 +1,9 @@
1
+ id: armor.riot-shield
2
+ type: armor
3
+ fields:
4
+ cost: 1000
5
+ enc: 2
6
+ kind: shield
7
+ rangedAc: 2
8
+ meleeAc: 4
9
+ obvious: true
@@ -0,0 +1,9 @@
1
+ id: armor.street-leathers
2
+ type: armor
3
+ fields:
4
+ cost: 250
5
+ enc: 0
6
+ kind: clothing
7
+ rangedAc: 13
8
+ meleeAc: 12
9
+ soak: 3
@@ -0,0 +1,10 @@
1
+ id: armor.war-harness
2
+ type: armor
3
+ fields:
4
+ cost: 200
5
+ enc: 1
6
+ kind: clothing
7
+ rangedAc: 13
8
+ meleeAc: 14
9
+ soak: 5
10
+ obvious: true
@@ -0,0 +1,13 @@
1
+ id: armor-accessories.absorption-plates
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind == 'clothing'"
6
+ fields:
7
+ rangedAc: 'prior.rangedAc + 2'
8
+ meleeAc: 'prior.meleeAc + 2'
9
+ soak: 'prior.soak + 3'
10
+ enc: 'prior.enc + 1'
11
+ heavy: 'prior.heavy + 1'
12
+ obvious: true
13
+ cost: 'prior.cost + 500'
@@ -0,0 +1,10 @@
1
+ id: armor-accessories.joint-reinforcement
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind == 'clothing'"
6
+ fields:
7
+ rangedAc: 'prior.rangedAc + 1'
8
+ meleeAc: 'prior.meleeAc + 1'
9
+ heavy: 'prior.heavy + 1'
10
+ cost: 'prior.cost + 250'
@@ -0,0 +1,7 @@
1
+ id: armor-mods.absorption-pads
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ soak: 'prior.soak + 5'
@@ -0,0 +1,7 @@
1
+ id: armor-mods.active-response
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ traumaMod: 'prior.traumaMod + 1'
@@ -0,0 +1,5 @@
1
+ id: armor-mods.biostabilizing
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
@@ -0,0 +1,8 @@
1
+ id: armor-mods.customized
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ rangedAc: 'prior.rangedAc + 1'
8
+ meleeAc: 'prior.meleeAc + 1'
@@ -0,0 +1,9 @@
1
+ id: armor-mods.discreet-design
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ rangedAc: prior.rangedAc - 2
8
+ meleeAc: prior.meleeAc - 2
9
+ obvious: false
@@ -0,0 +1,7 @@
1
+ id: armor-mods.flexible
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ heavy: 'max(0, prior.heavy - base.heavy)'
@@ -0,0 +1,5 @@
1
+ id: armor-mods.quickchange
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
@@ -0,0 +1,5 @@
1
+ id: armor-mods.sealed
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
@@ -0,0 +1,14 @@
1
+ id: armor-mods.tailored-rig
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ effects:
7
+ - target: enc.readiedMax
8
+ op: add
9
+ value: 1
10
+ when: self.equipped
11
+ - target: enc.stowedMax
12
+ op: add
13
+ value: 2
14
+ when: self.equipped
@@ -0,0 +1,7 @@
1
+ id: armor-mods.trauma-dampers
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ soak: 'prior.soak + 5'
@@ -0,0 +1,7 @@
1
+ id: armor-mods.whisperlight
2
+ type: template
3
+ appliesTo:
4
+ type: armor
5
+ where: "item.kind != 'shield'"
6
+ fields:
7
+ enc: 'max(0, prior.enc - 1)'
@@ -0,0 +1,6 @@
1
+ id: arts.alacrity-basic
2
+ type: art
3
+ tags:
4
+ - alacrity
5
+ fields:
6
+ cost: 2
@@ -0,0 +1,6 @@
1
+ id: arts.alacrity-improved
2
+ type: art
3
+ tags:
4
+ - alacrity
5
+ fields:
6
+ cost: 3
@@ -0,0 +1,6 @@
1
+ id: arts.alacrity-sublime
2
+ type: art
3
+ tags:
4
+ - alacrity
5
+ fields:
6
+ cost: 4
@@ -0,0 +1,4 @@
1
+ id: arts.arcane-senses
2
+ type: art
3
+ fields:
4
+ cost: 1
@@ -0,0 +1,4 @@
1
+ id: arts.arcane-skill
2
+ type: art
3
+ fields:
4
+ cost: 1
@@ -0,0 +1,4 @@
1
+ id: arts.blades-of-will
2
+ type: art
3
+ fields:
4
+ cost: 1
@@ -0,0 +1,11 @@
1
+ id: arts.brazen-thews
2
+ type: art
3
+ fields:
4
+ cost: 1
5
+ effects:
6
+ - target: attributes.str.modBonus
7
+ op: add
8
+ value: 1
9
+ - target: attributes.str.modCap
10
+ op: atLeast
11
+ value: 3
@@ -0,0 +1,11 @@
1
+ id: arts.faultless-grace
2
+ type: art
3
+ fields:
4
+ cost: 1
5
+ effects:
6
+ - target: attributes.dex.modBonus
7
+ op: add
8
+ value: 1
9
+ - target: attributes.dex.modCap
10
+ op: atLeast
11
+ value: 3