@elite-dangerous-almanac/core 0.2.8 → 0.2.10
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.
- package/PROVENANCE/astro/SOURCES.md +13 -12
- package/PROVENANCE/commodities/SOURCES.md +50 -6
- package/PROVENANCE/equipment/SOURCES.md +137 -45
- package/PROVENANCE/i18n/SOURCES.md +187 -81
- package/PROVENANCE/ships/SOURCES.md +344 -200
- package/README.md +10 -2
- package/THIRD_PARTY_NOTICES.md +11 -3
- package/dist/astro/body-rings.d.ts +2 -2
- package/dist/astro/codex-region-lookup.d.ts +1 -1
- package/dist/astro/codex-region-lookup.js +1 -1
- package/dist/astro/hand-authored-regions.d.ts +1 -1
- package/dist/astro/index.d.ts +1 -1
- package/dist/astro/index.js +1 -1
- package/dist/astro/naming-region-origins.d.ts +1 -1
- package/dist/astro/naming-region-origins.js +1 -1
- package/dist/astro/nebulae-all.d.ts +4 -6
- package/dist/astro/nebulae-all.js +1 -1
- package/dist/astro/nebulae-all.js.map +1 -1
- package/dist/astro/nebulae-planetary.d.ts +4 -5
- package/dist/astro/nebulae-planetary.js +1 -1
- package/dist/astro/nebulae-procgen.d.ts +3 -3
- package/dist/astro/nebulae-real.d.ts +3 -3
- package/dist/astro/nebulae.d.ts +8 -8
- package/dist/astro/permit-locked-regions.d.ts +2 -2
- package/dist/astro/permit-locked-systems.d.ts +1 -1
- package/dist/astro/permit-locks.d.ts +2 -2
- package/dist/astro/procedural-system.d.ts +3 -3
- package/dist/astro/procedural-system.js +1 -1
- package/dist/astro/system-address.d.ts +1 -1
- package/dist/astro/system-address.js +1 -1
- package/dist/astro/system-name.js +1 -1
- package/dist/{chunk-XSLPWM5N.js → chunk-2J6NNI3Y.js} +1 -1
- package/dist/{chunk-DWRNXUAX.js → chunk-2KIZN3BY.js} +1 -1
- package/dist/{chunk-J7BM5NGK.js → chunk-2TY42PTF.js} +1 -1
- package/dist/{chunk-773VO2GK.js → chunk-4T3TTYUT.js} +1 -1
- package/dist/{chunk-773VO2GK.js.map → chunk-4T3TTYUT.js.map} +1 -1
- package/dist/{chunk-W5ULI75F.js → chunk-7C7NJWCF.js} +1 -1
- package/dist/{chunk-W5ULI75F.js.map → chunk-7C7NJWCF.js.map} +1 -1
- package/dist/{chunk-IMNOEFUE.js → chunk-7Y5EK2VO.js} +1 -1
- package/dist/{chunk-IMNOEFUE.js.map → chunk-7Y5EK2VO.js.map} +1 -1
- package/dist/{chunk-2OBUSQA7.js → chunk-AAU7OM47.js} +1 -1
- package/dist/{chunk-2OBUSQA7.js.map → chunk-AAU7OM47.js.map} +1 -1
- package/dist/{chunk-BJU27V6C.js → chunk-AUBV6S7V.js} +1 -1
- package/dist/{chunk-BJU27V6C.js.map → chunk-AUBV6S7V.js.map} +1 -1
- package/dist/{chunk-DI5RXSJR.js → chunk-BVLBS2QY.js} +1 -1
- package/dist/{chunk-DI5RXSJR.js.map → chunk-BVLBS2QY.js.map} +1 -1
- package/dist/{chunk-IN36YSS4.js → chunk-C3YZ5KTA.js} +1 -1
- package/dist/{chunk-IN36YSS4.js.map → chunk-C3YZ5KTA.js.map} +1 -1
- package/dist/{chunk-6UNAD74Z.js → chunk-C4FUV6GF.js} +1 -1
- package/dist/{chunk-6UNAD74Z.js.map → chunk-C4FUV6GF.js.map} +1 -1
- package/dist/chunk-C6G7IN74.js +1 -0
- package/dist/chunk-C6G7IN74.js.map +1 -0
- package/dist/chunk-CEF7SMB2.js +1 -0
- package/dist/chunk-CEF7SMB2.js.map +1 -0
- package/dist/chunk-E2HDF6PJ.js +1 -0
- package/dist/chunk-E2HDF6PJ.js.map +1 -0
- package/dist/{chunk-OFZGNWBT.js → chunk-ETREYN5U.js} +1 -1
- package/dist/{chunk-OFZGNWBT.js.map → chunk-ETREYN5U.js.map} +1 -1
- package/dist/{chunk-KBCA4GEZ.js → chunk-FP2TQJZP.js} +1 -1
- package/dist/{chunk-YJAH6DFY.js → chunk-G7WARJ3X.js} +1 -1
- package/dist/chunk-G7WARJ3X.js.map +1 -0
- package/dist/{chunk-Z4OUB4SJ.js → chunk-GLTCCDN5.js} +1 -1
- package/dist/{chunk-Z4OUB4SJ.js.map → chunk-GLTCCDN5.js.map} +1 -1
- package/dist/chunk-GVNTKCVF.js +1 -0
- package/dist/chunk-GVNTKCVF.js.map +1 -0
- package/dist/{chunk-Q6YDPREF.js → chunk-GZLD7RTK.js} +1 -1
- package/dist/{chunk-Q6YDPREF.js.map → chunk-GZLD7RTK.js.map} +1 -1
- package/dist/{chunk-SC4MEHVY.js → chunk-HIJR7DOC.js} +1 -1
- package/dist/{chunk-SC4MEHVY.js.map → chunk-HIJR7DOC.js.map} +1 -1
- package/dist/{chunk-ETWMPMZP.js → chunk-K5JK3XQB.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js → chunk-KY7KSPU6.js} +1 -1
- package/dist/{chunk-GRIK3EDH.js.map → chunk-KY7KSPU6.js.map} +1 -1
- package/dist/{chunk-EHFHRQEP.js → chunk-M4STXLXO.js} +1 -1
- package/dist/{chunk-EHFHRQEP.js.map → chunk-M4STXLXO.js.map} +1 -1
- package/dist/{chunk-5YEHJM6V.js → chunk-OSMBAFRW.js} +1 -1
- package/dist/{chunk-5YEHJM6V.js.map → chunk-OSMBAFRW.js.map} +1 -1
- package/dist/chunk-PIU24HRN.js +1 -0
- package/dist/chunk-PIU24HRN.js.map +1 -0
- package/dist/{chunk-ELT3FEA4.js → chunk-PKKBYBL4.js} +1 -1
- package/dist/{chunk-ELT3FEA4.js.map → chunk-PKKBYBL4.js.map} +1 -1
- package/dist/{chunk-6HMIF2RJ.js → chunk-Q647OXON.js} +1 -1
- package/dist/{chunk-6HMIF2RJ.js.map → chunk-Q647OXON.js.map} +1 -1
- package/dist/{chunk-BMQM4JBL.js → chunk-QPT2WJYN.js} +1 -1
- package/dist/{chunk-BMQM4JBL.js.map → chunk-QPT2WJYN.js.map} +1 -1
- package/dist/{chunk-3WGXGBW5.js → chunk-R2AEZYX7.js} +1 -1
- package/dist/{chunk-FJIWJYKO.js → chunk-RA4YJBU5.js} +1 -1
- package/dist/chunk-RA4YJBU5.js.map +1 -0
- package/dist/{chunk-MRLUWHGI.js → chunk-RJ3ZLQRB.js} +1 -1
- package/dist/{chunk-MRLUWHGI.js.map → chunk-RJ3ZLQRB.js.map} +1 -1
- package/dist/chunk-SFEQXUIA.js +1 -0
- package/dist/{chunk-WV7QCDL5.js → chunk-SIL356HB.js} +1 -1
- package/dist/{chunk-WV7QCDL5.js.map → chunk-SIL356HB.js.map} +1 -1
- package/dist/{chunk-OLKOWR7S.js → chunk-SS7HVNP5.js} +1 -1
- package/dist/{chunk-OLKOWR7S.js.map → chunk-SS7HVNP5.js.map} +1 -1
- package/dist/chunk-TRGHPX2O.js +1 -0
- package/dist/chunk-TRGHPX2O.js.map +1 -0
- package/dist/{chunk-GMTAFUAG.js → chunk-TYRH73MO.js} +1 -1
- package/dist/{chunk-GMTAFUAG.js.map → chunk-TYRH73MO.js.map} +1 -1
- package/dist/{chunk-7TVFV3VO.js → chunk-U3IRMXMR.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js → chunk-U73MBQ45.js} +1 -1
- package/dist/{chunk-A7IVMYNF.js.map → chunk-U73MBQ45.js.map} +1 -1
- package/dist/{chunk-IZIIGK3W.js → chunk-UE22QU7A.js} +1 -1
- package/dist/{chunk-IZIIGK3W.js.map → chunk-UE22QU7A.js.map} +1 -1
- package/dist/{chunk-DBDCOHI4.js → chunk-UI5RROGI.js} +1 -1
- package/dist/{chunk-DBDCOHI4.js.map → chunk-UI5RROGI.js.map} +1 -1
- package/dist/chunk-URRPEUIK.js +1 -0
- package/dist/{chunk-QJECDMQQ.js.map → chunk-URRPEUIK.js.map} +1 -1
- package/dist/chunk-UVX7RCMP.js +1 -0
- package/dist/chunk-UVX7RCMP.js.map +1 -0
- package/dist/{chunk-7ATBEOVC.js → chunk-WG4DPXJI.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js → chunk-WZIBBJHA.js} +1 -1
- package/dist/{chunk-XFDMCPDW.js.map → chunk-WZIBBJHA.js.map} +1 -1
- package/dist/{chunk-7EWZGDWY.js → chunk-X3MXPE7G.js} +1 -1
- package/dist/{chunk-7EWZGDWY.js.map → chunk-X3MXPE7G.js.map} +1 -1
- package/dist/{chunk-JCYOE3C4.js → chunk-XQJERZUS.js} +1 -1
- package/dist/{chunk-JCYOE3C4.js.map → chunk-XQJERZUS.js.map} +1 -1
- package/dist/{chunk-SD6GNFDX.js → chunk-YBE5M27G.js} +1 -1
- package/dist/{chunk-SD6GNFDX.js.map → chunk-YBE5M27G.js.map} +1 -1
- package/dist/chunk-YI5XKWW2.js +1 -0
- package/dist/{chunk-GIGRBFIJ.js.map → chunk-YI5XKWW2.js.map} +1 -1
- package/dist/chunk-ZBUTGTZ3.js +1 -0
- package/dist/chunk-ZBUTGTZ3.js.map +1 -0
- package/dist/commodities/commodities-all.d.ts +2 -2
- package/dist/commodities/commodities-all.js +1 -1
- package/dist/commodities/commodities-rare.d.ts +3 -4
- package/dist/commodities/commodities-rare.js +1 -1
- package/dist/commodities/commodities-standard.d.ts +7 -7
- package/dist/commodities/commodities-standard.js +1 -1
- package/dist/commodities/commodities.d.ts +12 -12
- package/dist/commodities/commodities.js +1 -1
- package/dist/commodities/index.js +1 -1
- package/dist/equipment/engineering.d.ts +11 -6
- package/dist/equipment/engineering.js +1 -1
- package/dist/equipment/index.d.ts +4 -4
- package/dist/equipment/index.js +1 -1
- package/dist/equipment/modification-journal.js +1 -1
- package/dist/equipment/modifications.d.ts +23 -14
- package/dist/equipment/modifications.js +1 -1
- package/dist/equipment/suits.d.ts +2 -145
- package/dist/equipment/suits.js +1 -1
- package/dist/equipment/tools.d.ts +102 -0
- package/dist/equipment/tools.js +1 -0
- package/dist/equipment/tools.js.map +1 -0
- package/dist/equipment/upgrade-costs.d.ts +2 -3
- package/dist/equipment/upgrade-costs.js +1 -1
- package/dist/equipment/weapons.d.ts +2 -135
- package/dist/equipment/weapons.js +1 -1
- package/dist/i18n/blueprints.d.ts +2 -3
- package/dist/i18n/blueprints.js +1 -1
- package/dist/i18n/commodities.d.ts +36 -0
- package/dist/i18n/commodities.js +1 -0
- package/dist/i18n/commodities.js.map +1 -0
- package/dist/i18n/experimental-effect-descriptions.d.ts +5 -6
- package/dist/i18n/experimental-effect-descriptions.js +1 -1
- package/dist/i18n/experimental-effects.d.ts +2 -3
- package/dist/i18n/experimental-effects.js +1 -1
- package/dist/i18n/index.d.ts +19 -9
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/materials.d.ts +2 -4
- package/dist/i18n/materials.js +1 -1
- package/dist/i18n/micro-resources.d.ts +2 -4
- package/dist/i18n/micro-resources.js +1 -1
- package/dist/i18n/module-families.d.ts +3 -5
- package/dist/i18n/module-families.js +1 -1
- package/dist/i18n/modules.d.ts +3 -6
- package/dist/i18n/modules.js +1 -1
- package/dist/i18n/personal-modifications.d.ts +4 -6
- package/dist/i18n/personal-modifications.js +1 -1
- package/dist/i18n/personal-tools.d.ts +33 -0
- package/dist/i18n/personal-tools.js +1 -0
- package/dist/i18n/personal-tools.js.map +1 -0
- package/dist/i18n/personal-weapons.d.ts +3 -4
- package/dist/i18n/personal-weapons.js +1 -1
- package/dist/i18n/pre-engineered.d.ts +1 -1
- package/dist/i18n/slots.d.ts +2 -2
- package/dist/i18n/suits.d.ts +36 -6
- package/dist/i18n/suits.js +1 -1
- package/dist/materials/index.d.ts +4 -3
- package/dist/materials/index.js +1 -1
- package/dist/materials/materials-all.d.ts +2 -2
- package/dist/materials/materials-all.js +1 -1
- package/dist/materials/materials-raw.d.ts +3 -4
- package/dist/materials/materials-raw.js +1 -1
- package/dist/materials/materials.d.ts +18 -15
- package/dist/materials/materials.js +1 -1
- package/dist/materials/micro-resources-all.d.ts +2 -2
- package/dist/materials/micro-resources-all.js +1 -1
- package/dist/materials/micro-resources-component.d.ts +2 -2
- package/dist/materials/micro-resources-consumable.d.ts +2 -2
- package/dist/materials/micro-resources-data.d.ts +2 -2
- package/dist/materials/micro-resources-item.d.ts +2 -2
- package/dist/materials/micro-resources.d.ts +17 -14
- package/dist/materials/micro-resources.js +1 -1
- package/dist/ships/ammunition.d.ts +4 -4
- package/dist/ships/blueprint-costs.d.ts +13 -13
- package/dist/ships/blueprint-costs.js +1 -1
- package/dist/ships/blueprint-journal.d.ts +3 -3
- package/dist/ships/blueprint-journal.js +1 -1
- package/dist/ships/blueprints.d.ts +3 -3
- package/dist/ships/build-metrics.d.ts +2 -1
- package/dist/ships/build-metrics.js +1 -1
- package/dist/ships/default-loadouts.d.ts +2 -3
- package/dist/ships/default-loadouts.js +1 -1
- package/dist/ships/engineering-options.d.ts +29 -32
- package/dist/ships/engineering-options.js +1 -1
- package/dist/ships/engineering.d.ts +1 -2
- package/dist/ships/engineering.js +1 -1
- package/dist/ships/experimental-effect-costs.d.ts +1 -1
- package/dist/ships/gunsights.d.ts +3 -3
- package/dist/ships/heat.d.ts +1 -1
- package/dist/ships/index.d.ts +4 -5
- package/dist/ships/index.js +1 -1
- package/dist/ships/loadout-validation.d.ts +1 -1
- package/dist/ships/module-families.d.ts +1 -1
- package/dist/ships/modules-all.d.ts +2 -3
- package/dist/ships/modules-all.js +1 -1
- package/dist/ships/modules-core.d.ts +3 -3
- package/dist/ships/modules-hardpoint.d.ts +4 -5
- package/dist/ships/modules-hardpoint.js +1 -1
- package/dist/ships/modules-internal.d.ts +5 -6
- package/dist/ships/modules-internal.js +1 -1
- package/dist/ships/modules-utility.d.ts +3 -4
- package/dist/ships/modules-utility.js +1 -1
- package/dist/ships/modules.d.ts +26 -24
- package/dist/ships/modules.js +1 -1
- package/dist/ships/pre-engineered-stats.d.ts +1 -1
- package/dist/ships/pre-engineered-stats.js +1 -1
- package/dist/ships/pre-engineered.d.ts +9 -10
- package/dist/ships/pre-engineered.js +1 -1
- package/dist/ships/shield-capacitor.js +1 -1
- package/dist/ships/ship-loadout.d.ts +7 -7
- package/dist/ships/ship-loadout.js +1 -1
- package/dist/ships/ships.d.ts +1 -2
- package/dist/ships/ships.js +1 -1
- package/dist/ships/slots.d.ts +5 -5
- package/dist/ships/weapons.js +1 -1
- package/dist/suits-B4sQMLFe.d.ts +450 -0
- package/dist/{system-address-cyJaeZIS.d.ts → system-address-DmzXRD48.d.ts} +6 -4
- package/package.json +13 -1
- package/dist/chunk-77TT4K53.js +0 -1
- package/dist/chunk-DAQ3PJ4R.js +0 -1
- package/dist/chunk-DAQ3PJ4R.js.map +0 -1
- package/dist/chunk-DHACRCLI.js +0 -1
- package/dist/chunk-DHACRCLI.js.map +0 -1
- package/dist/chunk-FJIWJYKO.js.map +0 -1
- package/dist/chunk-GIGRBFIJ.js +0 -1
- package/dist/chunk-IUSMAX5T.js +0 -1
- package/dist/chunk-IUSMAX5T.js.map +0 -1
- package/dist/chunk-LWNBWRKL.js +0 -1
- package/dist/chunk-LWNBWRKL.js.map +0 -1
- package/dist/chunk-MT5AHPNP.js +0 -1
- package/dist/chunk-MT5AHPNP.js.map +0 -1
- package/dist/chunk-QJECDMQQ.js +0 -1
- package/dist/chunk-YJAH6DFY.js.map +0 -1
- /package/dist/{chunk-XSLPWM5N.js.map → chunk-2J6NNI3Y.js.map} +0 -0
- /package/dist/{chunk-DWRNXUAX.js.map → chunk-2KIZN3BY.js.map} +0 -0
- /package/dist/{chunk-J7BM5NGK.js.map → chunk-2TY42PTF.js.map} +0 -0
- /package/dist/{chunk-KBCA4GEZ.js.map → chunk-FP2TQJZP.js.map} +0 -0
- /package/dist/{chunk-ETWMPMZP.js.map → chunk-K5JK3XQB.js.map} +0 -0
- /package/dist/{chunk-3WGXGBW5.js.map → chunk-R2AEZYX7.js.map} +0 -0
- /package/dist/{chunk-77TT4K53.js.map → chunk-SFEQXUIA.js.map} +0 -0
- /package/dist/{chunk-7TVFV3VO.js.map → chunk-U3IRMXMR.js.map} +0 -0
- /package/dist/{chunk-7ATBEOVC.js.map → chunk-WG4DPXJI.js.map} +0 -0
|
@@ -18,6 +18,7 @@ Referred to throughout by source name; the pin is here, once.
|
|
|
18
18
|
| Elite Dangerous in-game verification | game version `4.4.0.3`; direct in-game observation | 2026-08-14 UTC |
|
|
19
19
|
| Elite Dangerous in-game purchase capture | no game version recorded; nine `ModuleBuyAndStore` journal entries from market `128666762`, 17:34-17:37, at a 10% and a 2.5% outfitting discount | 2026-08-30 UTC |
|
|
20
20
|
| Elite Dangerous in-game outfitting observation | no game version recorded; direct in-game observation that outfitting offers no non-SCO size-8 frame shift drive | 2026-08-30 UTC |
|
|
21
|
+
| Elite Dangerous Large Planetary Vehicle Hangar readings | **unreleased** — observation of the modules an unreleased update adds, plus outfitting and journal `ModuleBuy` readings at a 10% and 2.5% discount | 2026-09-02 UTC |
|
|
21
22
|
|
|
22
23
|
Every `eddb.js` derivation uses the baseline snapshot unless its catalogue note names
|
|
23
24
|
the Vessel Hangar snapshot.
|
|
@@ -32,13 +33,13 @@ re-derived from a public source.
|
|
|
32
33
|
Each hull is **one record** carrying its identity, its stats, and its slot layout —
|
|
33
34
|
identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
34
35
|
|
|
35
|
-
- **File:** `ships.jsonc` (
|
|
36
|
+
- **File:** `ships.jsonc` (the player-flyable hulls).
|
|
36
37
|
- **Identity source:** FDevIDs `shipyard.csv`, columns `id,symbol,name,entitlement`.
|
|
37
38
|
- **Identity derivation:** records are carried over in shipyard order (roughly the
|
|
38
39
|
order hulls were introduced): internal `symbol` and display `name`. The CSV's
|
|
39
40
|
numeric ship-type `id` column is dropped — hulls are keyed by `symbol`.
|
|
40
|
-
`entitlement` is FDevIDs' DLC/grant token, kept only where the CSV gives one (
|
|
41
|
-
|
|
41
|
+
`entitlement` is FDevIDs' DLC/grant token, kept only where the CSV gives one (most
|
|
42
|
+
hulls carry no entitlement, so the field is omitted rather than stored empty).
|
|
42
43
|
- **Stats + slots source:** coriolis-data `ships/*.json` — `properties` for manufacturer,
|
|
43
44
|
numeric size class and stats,
|
|
44
45
|
`slots` + `bulkheads` for the layout.
|
|
@@ -56,8 +57,8 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
56
57
|
Masses are tonnes, speeds m/s, rotation rates deg/s. The in-game hull audit below
|
|
57
58
|
overrides registry values where they disagree.
|
|
58
59
|
- **Speed is stored as installed endpoints.** An Elite Dangerous `4.4.0.3` hull audit
|
|
59
|
-
recorded 2026-08-14 UTC supplies `minimumSpeed` and `maximumSpeed` directly for
|
|
60
|
-
|
|
60
|
+
recorded 2026-08-14 UTC supplies `minimumSpeed` and `maximumSpeed` directly for every
|
|
61
|
+
hull.
|
|
61
62
|
The game's ratio values carry no independent information:
|
|
62
63
|
`minThrust = 100 * minimumSpeed / maximumSpeed` and
|
|
63
64
|
`pipSpeed = (maximumSpeed - minimumSpeed) / (4 * maximumSpeed)`. The ratios are
|
|
@@ -67,8 +68,8 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
67
68
|
- **Angular rates are stored as zero- and four-ENG-PIP endpoints.** The same game audit
|
|
68
69
|
supplies `minPitch`, `minRoll` and `minYaw` from each flight-default block. The
|
|
69
70
|
selected full-rate words come from the hull overrides; an exact `-1.0` override
|
|
70
|
-
sentinel selects the corresponding flight-default word. This structure holds for
|
|
71
|
-
|
|
71
|
+
sentinel selects the corresponding flight-default word. This structure holds for every
|
|
72
|
+
player hull. EDSY's public handling implementation independently identifies these
|
|
72
73
|
minima as zero-ENG-PIP values and linearly interpolates each axis to its full rate.
|
|
73
74
|
- **Installed English display names are taken verbatim from the game.** The Elite
|
|
74
75
|
Dangerous `4.4.0.3` localisation audit recorded 2026-08-14 UTC replaces eight compact
|
|
@@ -111,8 +112,8 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
111
112
|
measurement of Frontier's game rather than a stat the game displays. The baseline is
|
|
112
113
|
EDSY `eddb.js` `ship[…].heatdismax` from the pinned snapshot, joined by
|
|
113
114
|
case-insensitive `fdname` / `symbol`. A complete maintainer-supplied thermal audit
|
|
114
|
-
from Elite Dangerous `4.4.0.3`, recorded 2026-08-14 UTC, governs
|
|
115
|
-
supplies the nine corrections and omissions listed above.
|
|
115
|
+
from Elite Dangerous `4.4.0.3`, recorded 2026-08-14 UTC, governs every value and
|
|
116
|
+
supplies the nine corrections and omissions listed above. Every other value agrees
|
|
116
117
|
with EDSY exactly.
|
|
117
118
|
Each value is the load in thermal-load units per second shed at heat level 1. The
|
|
118
119
|
stored catalogue range is Hauler `16.2` through Cutter `72.58`.
|
|
@@ -131,7 +132,7 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
131
132
|
|
|
132
133
|
### Gunsights
|
|
133
134
|
|
|
134
|
-
- **File:** `gunsights.jsonc` (
|
|
135
|
+
- **File:** `gunsights.jsonc` (every hardpoint on every player-flyable hull).
|
|
135
136
|
- **Derivation:** each observation is joined to `ships.jsonc` by case-insensitive hull
|
|
136
137
|
symbol. Its hardpoints are joined by exact journal slot key to the hardpoints returned
|
|
137
138
|
by `enumerateSlots`, then written in the existing `Ship.hardpoints` order. One observed
|
|
@@ -152,14 +153,14 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
152
153
|
`48.7663916349` written `48.76639`. Exact zero and tiny near-zero values both describe
|
|
153
154
|
centerline mounts; the residuals are numeric precision, not meaningful sub-millimetre
|
|
154
155
|
displacements to interpret or normalize.
|
|
155
|
-
- **Manual corrections:** none.
|
|
156
|
+
- **Manual corrections:** none. Every hull and every hardpoint slot key joins
|
|
156
157
|
one-to-one without correction.
|
|
157
158
|
|
|
158
159
|
### Default loadouts
|
|
159
160
|
|
|
160
|
-
- **File:** `default-loadouts.jsonc` (
|
|
161
|
+
- **File:** `default-loadouts.jsonc` (every hull's stock modules).
|
|
161
162
|
- **Primary source:** EDSY `eddb.js` `ship[*].stock`, from the baseline pinned snapshot.
|
|
162
|
-
It carries
|
|
163
|
+
It carries every current hull, including the Lynx Highliner absent from the pinned
|
|
163
164
|
coriolis-data revision, and distinguishes current stock modules such as SCO frame
|
|
164
165
|
shift drives, Supercruise Assist and Advanced Docking Computer.
|
|
165
166
|
- **Derivation:** the source ship is joined to `ships.jsonc` by case-insensitive Frontier
|
|
@@ -169,8 +170,8 @@ identity from FDevIDs, stats and slots from coriolis-data, joined on `symbol`.
|
|
|
169
170
|
then through EDSY's global module table; the resulting Frontier `fdname` becomes the
|
|
170
171
|
stored module `symbol`. Zero entries are empty optional, hardpoint or utility mounts
|
|
171
172
|
and are omitted. The output stores the layout's canonical journal slot key, not the
|
|
172
|
-
source array position.
|
|
173
|
-
ship and module catalogues and
|
|
173
|
+
source array position. Every fitted symbol and mount resolves against the checked-in
|
|
174
|
+
ship and module catalogues and passes the same compatibility rules as `ShipLoadout`.
|
|
174
175
|
- **Planetary approach suite:** EDSY treats the approach suite as a built-in outside its
|
|
175
176
|
stock arrays. `int_planetapproachsuite_advanced` is added to every hull's dedicated
|
|
176
177
|
`PlanetaryApproachSuite` mount. Coriolis-data stores id `4F` (the advanced suite) on 46
|
|
@@ -217,6 +218,25 @@ include the Sub-Surface Extraction Missile (`Hpt_Human_Extraction_Fixed_Medium`)
|
|
|
217
218
|
alongside the displacement missile it varies, so it counts as a mining tool despite its
|
|
218
219
|
unrelated symbol.
|
|
219
220
|
|
|
221
|
+
**`vesselHangar` takes three families, where the registries list one.** Both carry the
|
|
222
|
+
Type-11's `FighterBay01` as fighter-hangars-only — coriolis `"eligible": { "fh": 1 }`,
|
|
223
|
+
EDSY `{ifh:1}` — and both were read before the modules existed. A journal `ModuleBuy`
|
|
224
|
+
records `int_mkiilargebuggybay_size4_class3` bought into that mount, over the
|
|
225
|
+
`int_fighterbay_size5_class1` it replaced, and both **unreleased** Large Planetary Vehicle
|
|
226
|
+
Hangar lines fit there, so the stored rule takes `int_largebuggybay` and
|
|
227
|
+
`int_mkiilargebuggybay` beside `int_fighterbay`. The plain line's prefix covers its
|
|
228
|
+
`_Free` grants, which fit wherever their sold twins do. In-game readings govern where a
|
|
229
|
+
registry disagrees, and here the registries are not wrong so much as older than the
|
|
230
|
+
modules.
|
|
231
|
+
|
|
232
|
+
**Neither Large Planetary Vehicle Hangar line carries `restrictedToSlot`.** Fitting one
|
|
233
|
+
mount does not reserve a module to that kind of mount, and neither line could be reserved
|
|
234
|
+
to `vesselHangar` anyway: of the thirteen hulls the Mk II line is restricted to, only the
|
|
235
|
+
Type-11 has such a mount, so on the other twelve it must be fitting ordinary optionals,
|
|
236
|
+
and the plain line carries no hull restriction at all. Those thirteen are exactly the hulls that can carry a
|
|
237
|
+
ship-launched vessel, which is what makes the hull list and the mount reading one fact
|
|
238
|
+
rather than two.
|
|
239
|
+
|
|
220
240
|
**`passenger` rests on a capture as well as on EDSY**, and needs to. `PASSENGER` is the
|
|
221
241
|
one restricted family absent from EDSY's journal import map and its `ipc` eligibility
|
|
222
242
|
check is commented out in `edsy.js`, so the reservation alone confirmed no journal
|
|
@@ -236,7 +256,7 @@ stored on the mount, for example `{ "size": 1, "name": "Slot14_Size1" }`.
|
|
|
236
256
|
EDSY's own — `edsy.js` reads them in `Build.fromJournal()` and writes them in
|
|
237
257
|
`exportJournal()`. Only EDSY carries them; coriolis-data does not model journal slot
|
|
238
258
|
names at all, so the corroborating source has to be captures, and five are in hand —
|
|
239
|
-
four SLEF exports and one journal — covering four of the
|
|
259
|
+
four SLEF exports and one journal — covering four of the hulls with names of their
|
|
240
260
|
own (below). One is a journal rather
|
|
241
261
|
than an export: `journal-lynx-highliner.jsonc` gives Frontier's own casing for a hull the
|
|
242
262
|
Inara export already covers in lower case, and one thing that export does not — its
|
|
@@ -273,7 +293,7 @@ size differs from coriolis's.
|
|
|
273
293
|
- **Lynx Highliner** `Slot01_Size6`, **`Passenger01`–`03`**, `Slot02_Size5`, …
|
|
274
294
|
- **Panther Clipper Mk II** and **Type-11 Prospector** are carried too, though the
|
|
275
295
|
regular numbering derives their names. They are kept so the stored table matches EDSY's
|
|
276
|
-
|
|
296
|
+
entries one for one.
|
|
277
297
|
|
|
278
298
|
**The `_SizeN` suffix is Frontier's, and on three hulls it is wrong.** The Keelback, Asp
|
|
279
299
|
Scout and Type-7 name mounts with a class the hull does not have there. That is the
|
|
@@ -351,17 +371,17 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
351
371
|
outfitting categories.
|
|
352
372
|
- **Identity source:** FDevIDs `outfitting.csv`, columns
|
|
353
373
|
`id,symbol,category,name,mount,guidance,ship,class,rating,entitlement`, supplemented
|
|
354
|
-
for the six bundle-granted Vessel Hangars by the pinned CAPI response below
|
|
374
|
+
for the six bundle-granted Vessel Hangars by the pinned CAPI response below and for
|
|
375
|
+
the nine unreleased Large Planetary Vehicle Hangars by the readings pinned above.
|
|
355
376
|
- **Identity derivation:** the acquired FDevIDs module records are kept in CSV order
|
|
356
|
-
within each category file. The
|
|
357
|
-
records across all four categories. The CSV's numeric `id`
|
|
377
|
+
within each category file. The CSV's numeric `id`
|
|
358
378
|
column is dropped — modules are keyed by `symbol` — and rows marked `removed` are
|
|
359
379
|
excluded because they are not current outfitting modules. `class` is FDevIDs' `class` — the
|
|
360
380
|
module size (0–8) — and `rating` its grade letter (A–I); together they are the "5A"
|
|
361
381
|
the outfitting screen shows. `mount` (Fixed / Gimballed / Turreted) and `guidance`
|
|
362
382
|
(Dumbfire / Seeker / Swarm) are stored only on the hardpoints that carry them; `ship`
|
|
363
383
|
names the hull an armour variant belongs to (armour is the one ship-specific module,
|
|
364
|
-
so only the
|
|
384
|
+
so only the armour records carry it); `entitlement` is kept only where it is a
|
|
365
385
|
real DLC/grant token. `name` is FDevIDs' descriptive English label, including expanded
|
|
366
386
|
forms such as Frame Shift Drive and Auto Field-Maintenance Unit.
|
|
367
387
|
- **The CSV's `category` column is not stored — the file states it.** It would be the
|
|
@@ -377,7 +397,7 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
377
397
|
fitting or an ordinary optional internal fits any mount of its kind that is large
|
|
378
398
|
enough, so there is no single mount to name.
|
|
379
399
|
- **Derivation:** the value is the mount the module is sold for in the outfitting
|
|
380
|
-
screen, assigned by symbol family — the
|
|
400
|
+
screen, assigned by symbol family — the `*_Armour_*` records are `armour`, the
|
|
381
401
|
`Int_PowerPlant_*`/`Int_GuardianPowerplant_*` are `powerPlant`, and so on through
|
|
382
402
|
`Int_Engine_*` and `Int_MkIIAgileBoost_Engine_*` (`thrusters`), `Int_Hyperdrive_*`
|
|
383
403
|
(`frameShiftDrive`), `Int_LifeSupport_*`, `Int_PowerDistributor_*`/
|
|
@@ -386,18 +406,17 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
386
406
|
II's `Int_MkIIAgileBoost_Engine_*` thrusters.
|
|
387
407
|
- **A fuel tank is the one module built for two kinds of mount:** it is `fuelTank`
|
|
388
408
|
and also fits any optional slot large enough, exactly as the game sells it.
|
|
389
|
-
- **`kind` is the ordinary engineering-menu family.** The
|
|
409
|
+
- **`kind` is the ordinary engineering-menu family.** The records mapped by
|
|
390
410
|
`engineering-options.jsonc` repeat that map's group key in the compact on-disk `kind`
|
|
391
|
-
field. The
|
|
392
|
-
engineering menu; this includes the
|
|
393
|
-
Abrasion Blaster, and the
|
|
411
|
+
field. The rest carry no `kind` because they have no ordinary
|
|
412
|
+
engineering menu; this includes the Enzyme/AX weapons, the fixed Mining Laser and
|
|
413
|
+
Abrasion Blaster, and the cargo racks documented under Engineering options below.
|
|
394
414
|
The group source, derivation, split
|
|
395
415
|
Guardian families and coverage are documented under Engineering options below; this
|
|
396
416
|
field is a projection of that map, not a separate classification source.
|
|
397
417
|
- **`familyId` groups every outfitting list.** Every record in all four catalogues
|
|
398
|
-
carries the id of the family its outfitting list shows it under
|
|
399
|
-
|
|
400
|
-
in 12. No family crosses an outfitting category. The ids and their canonical English
|
|
418
|
+
carries the id of the family its outfitting list shows it under. No family crosses an
|
|
419
|
+
outfitting category. The ids and their canonical English
|
|
401
420
|
names are `module-families.jsonc`, below; localized labels are
|
|
402
421
|
`data/i18n/module-family-names.jsonc`. Variants remain with the base family rather
|
|
403
422
|
than fragmenting a list: Bi-Weave and Prismatic generators are `shieldGenerators`;
|
|
@@ -406,8 +425,8 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
406
425
|
`passengerCabins` and `vesselHangars`. Guardian and AX weapons retain their distinct
|
|
407
426
|
family where their function differs. A core record's family follows from its `slot`,
|
|
408
427
|
which is on every one of them, so the two never disagree.
|
|
409
|
-
- **`supercruiseOvercharge` — the SCO drive line.** The
|
|
410
|
-
`Int_Hyperdrive_Overcharge_*` records carry `true`; the
|
|
428
|
+
- **`supercruiseOvercharge` — the SCO drive line.** The
|
|
429
|
+
`Int_Hyperdrive_Overcharge_*` records carry `true`; the plain drives of the same
|
|
411
430
|
sizes and ratings, and every other record in all four catalogues, omit it.
|
|
412
431
|
- **Source:** FDevIDs `outfitting.csv`, which sells the two drive lines under distinct
|
|
413
432
|
symbol families and names the Overcharge one `Frame Shift Drive (SCO)`. No registry
|
|
@@ -417,7 +436,7 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
417
436
|
above, and it is applied once here so that consumers read a datum instead of
|
|
418
437
|
matching `Int_Hyperdrive_Overcharge` themselves — which a pre-engineered or fitted
|
|
419
438
|
article's symbol does not always let them do. Stored as a sparse flag rather than a
|
|
420
|
-
`true`/`false` pair on
|
|
439
|
+
`true`/`false` pair on every drive, following `alwaysPowered` and
|
|
421
440
|
`guardianZoneResistance`.
|
|
422
441
|
- **Nothing else is derived from it.** The two lines share every jump constant this
|
|
423
442
|
catalogue carries (`optMass`, `maxFuel`, `fuelMul`, `fuelPower`, and the
|
|
@@ -426,14 +445,14 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
426
445
|
calculation reads the flag; the
|
|
427
446
|
overcharged supercruise behaviour the drives are named for has no published figures
|
|
428
447
|
and none are stored.
|
|
429
|
-
- **`cabinCapacity` — a passenger cabin's berths.** The
|
|
448
|
+
- **`cabinCapacity` — a passenger cabin's berths.** The `passengerCabins` records
|
|
430
449
|
carry it; every other record in all four catalogues omits it, and no cabin carries a
|
|
431
450
|
zero. It is the module's own seat count, not the ship's.
|
|
432
451
|
- **Source:** coriolis-data
|
|
433
452
|
`modules/internal/{economy,business,first,luxury}_passenger_cabin.json` (`passengers`)
|
|
434
453
|
and EDSY `eddb.js` (`cabincap`, whose `fdattr` is the journal's `CabinCapacity`), from
|
|
435
|
-
the snapshots pinned above. The two agree on every
|
|
436
|
-
neither is preferred; the
|
|
454
|
+
the snapshots pinned above. The two agree on every Mk I cabin, so
|
|
455
|
+
neither is preferred; the Mk II cabins rest on EDSY alone, which is where their
|
|
437
456
|
masses come from as well. FDevIDs publishes no capacity column.
|
|
438
457
|
- **Values:** Mk I economy 2/4/8/16/32 by size 2–6, business 3/6/10/16 by size 3–6,
|
|
439
458
|
first 3/6/12 by size 4–6 and luxury 4/8 by size 5–6. Mk II economy 3/6/12/24/48 by
|
|
@@ -448,19 +467,20 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
448
467
|
publishes one (`cabincls`, values `E`/`B`/`F`/`L`), which this catalogue does not
|
|
449
468
|
copy: the symbol already states the class, uniformly across both lines. The symbol's
|
|
450
469
|
`_ClassN` suffix — not the `class` field, which is the slot size — is 1/2/3/4 for
|
|
451
|
-
economy/business/first/luxury on
|
|
470
|
+
economy/business/first/luxury on every record, which is what the English `name` and
|
|
452
471
|
EDSY's `cabincls` both agree with; the `rating` field is what does not state it, for
|
|
453
472
|
the reason above. The Mk I line runs all four, the Mk II line economy and business
|
|
454
473
|
only.
|
|
455
474
|
- **EDSY's five `Int_PassengerCabin_Size{2..6}_Class0` "Prisoner Cells" rows are not
|
|
456
475
|
carried**, capacity or otherwise: EDSY has them commented out with a null `fdid`, and
|
|
457
476
|
the inclusion rule below excludes an identity no registry offers to players.
|
|
458
|
-
- **`grantOnly` — the articles that arrive granted rather than sold.**
|
|
459
|
-
carry `true
|
|
460
|
-
support, distributor, sensors, fuel tank, shield generator, cargo rack)
|
|
461
|
-
`*_Free` Vessel Hangars
|
|
462
|
-
|
|
463
|
-
|
|
477
|
+
- **`grantOnly` — the articles that arrive granted rather than sold.** The records that
|
|
478
|
+
carry `true` are the nine `*_free` starter fittings (power plant, thrusters, drive, life
|
|
479
|
+
support, distributor, sensors, fuel tank, shield generator, cargo rack), the six
|
|
480
|
+
`*_Free` Vessel Hangars and the three **unreleased** `*_Class3_Free` Large Planetary
|
|
481
|
+
Vehicle Hangars. Every other record omits it, and nothing carries `false`.
|
|
482
|
+
- **Source:** Frontier's own symbol naming, and for the six Vessel Hangars the pinned
|
|
483
|
+
CAPI response, which lists them `bundle: true` under the grant tokens
|
|
464
484
|
`ELITE_V_MKIFIGHTERBAY_FREE` / `ELITE_V_MKIIFIGHTERBAY_FREE` — see "Records sourced
|
|
465
485
|
outside the baseline registries" below, which also reads that response's zero as the
|
|
466
486
|
bundle charge rather than a purchase price. No registry publishes a field for
|
|
@@ -484,10 +504,10 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
484
504
|
and supplied by the repository owner. The game publishes no immutable identifier for
|
|
485
505
|
its localisation tables, so the acquired table is the evidence; it is the same table
|
|
486
506
|
that supplies `data/i18n/module-family-names.jsonc`.
|
|
487
|
-
- **Derivation:**
|
|
507
|
+
- **Derivation:** most families are named by an in-game outfitting category and
|
|
488
508
|
take that category's English label verbatim — which is why `Cargo Scanners` is
|
|
489
509
|
`Manifest Scanners`, `Torpedo Pylons` is `Torpedoes` and `Mine Launchers` is `Mines`.
|
|
490
|
-
The
|
|
510
|
+
The rest keep the Almanac's own descriptive name, because the outfitting
|
|
491
511
|
screen does not name them separately. Each id is the camelCase form of its English
|
|
492
512
|
name with punctuation removed.
|
|
493
513
|
- **Merged families.** Where the game lists several Almanac families under one category,
|
|
@@ -560,9 +580,9 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
560
580
|
zero would zero their DPS) and `burstrof: 0` on the Mining Volley Repeater, whose
|
|
561
581
|
burst is a single shot.
|
|
562
582
|
- **`shotSpeed` and `reloadTime` are absent on the weapons that have neither, and
|
|
563
|
-
that absence is an answer.** The
|
|
583
|
+
that absence is an answer.** The weapons with no `shotSpeed` are the lasers, rail
|
|
564
584
|
guns, Gauss cannons and mine launchers — nothing there travels, so there is no
|
|
565
|
-
projectile speed to move.
|
|
585
|
+
projectile speed to move. Those with no `reloadTime` are a _different and smaller_
|
|
566
586
|
family, the pulse, burst, beam and mining lasers alone: they have no clip and never
|
|
567
587
|
reload, while rail guns, Gauss cannons and mine launchers all reload and all carry
|
|
568
588
|
the stat. Neither registry publishes a figure for either set, and EDSY's per-family
|
|
@@ -576,8 +596,8 @@ FDevIDs, stats from coriolis-data and EDSY, joined on `symbol`.
|
|
|
576
596
|
computers, and Coriolis's own code reads a missing mass as zero (`Module.getMass()` →
|
|
577
597
|
`this.mass || 0`). This catalogue reads an absent field as _unknown_ instead, so a
|
|
578
598
|
single such module would make a whole hull's mass — and with it its jump range —
|
|
579
|
-
impossible to compute. The
|
|
580
|
-
`Int_Repairer_
|
|
599
|
+
impossible to compute. The affected records (`Int_FuelScoop_*`,
|
|
600
|
+
`Int_Repairer_*`, `Int_Refinery_*`, `Int_DockingComputer_{Standard,Advanced}`,
|
|
581
601
|
`ModularCargoBayDoor`, `Int_DroneControl_ResourceSiphon`) say so outright, matching
|
|
582
602
|
upstream's own `"mass": 0` on `Int_DetailedSurfaceScanner_Tiny`. **Verified, not
|
|
583
603
|
assumed:** summing the Deep Black's module masses with these families excluded gives
|
|
@@ -626,7 +646,7 @@ Thirteen stored fields supply the base values referenced by engineering recipes:
|
|
|
626
646
|
scanner and sensor suite carries
|
|
627
647
|
`scannerRange`, while `maximumRange` is reserved for weapons and non-scanner utility
|
|
628
648
|
effects.
|
|
629
|
-
- **`EnergyPerRegen` needs no stored value.**
|
|
649
|
+
- **`EnergyPerRegen` needs no stored value.** Every shield generator carries
|
|
630
650
|
`distributorDraw`, and EDSY (`genpwr`) and coriolis (`distdraw`) both confirm it is the
|
|
631
651
|
same stat under the journal's other name.
|
|
632
652
|
- **Four figures no third-party registry lists, derived from the family rule.** Three
|
|
@@ -641,11 +661,11 @@ Thirteen stored fields supply the base values referenced by engineering recipes:
|
|
|
641
661
|
join makes it a reading.
|
|
642
662
|
- **A weapon with no maximum range carries no Long Range falloff leg.** That leg is
|
|
643
663
|
stored upstream as an overwrite in `[0, 1]` — a flag meaning "damage falls off from
|
|
644
|
-
maximum range." On the
|
|
645
|
-
|
|
664
|
+
maximum range." On the weapons `Weapon_LongRange` reaches that have no range at all
|
|
665
|
+
(missile and torpedo
|
|
646
666
|
racks, mine launchers, flak mortars, the AX dumbfires) there is nothing to resolve
|
|
647
667
|
against, and the recipe's `Range` leg is inert there for the same reason; the flag is
|
|
648
|
-
dropped rather than published as a one-metre falloff.
|
|
668
|
+
dropped rather than published as a one-metre falloff. A few of them do carry a real
|
|
649
669
|
`falloffRange` — the flak mortars, the AX dumbfire missiles and the Disruptor pulse
|
|
650
670
|
laser — and keep it unchanged: only the sentinel is ever dropped, and no record's
|
|
651
671
|
`falloffRange` is small enough to be mistaken for one.
|
|
@@ -664,7 +684,7 @@ Thirteen stored fields supply the base values referenced by engineering recipes:
|
|
|
664
684
|
|
|
665
685
|
### Deliberately absent fields
|
|
666
686
|
|
|
667
|
-
- **`integrity` is absent on
|
|
687
|
+
- **`integrity` is absent on some non-armour records** because no registry publishes one
|
|
668
688
|
for those families and the game's module panel shows none. Guardian hull reinforcement
|
|
669
689
|
packages are in that set and do draw power,
|
|
670
690
|
so "no integrity" is not a shorthand for "inert".
|
|
@@ -684,33 +704,36 @@ Two starter capacities are derived rather than read:
|
|
|
684
704
|
2^size across all eight sizes of both families, with no exception.
|
|
685
705
|
|
|
686
706
|
**In-game coverage, stated separately from registry coverage.** In-game verification
|
|
687
|
-
covers
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
707
|
+
covers every catalogue identity except two sets. The six bundle-granted Vessel Hangars
|
|
708
|
+
rely on the public registry and CAPI evidence below — their stats match their ordinary
|
|
709
|
+
twins, but they have not been independently checked in the module panel. The six
|
|
710
|
+
**unreleased** Large Planetary Vehicle Hangars sit outside it altogether: the game does
|
|
711
|
+
not offer them yet, so nothing about them can be read from a panel until the update
|
|
712
|
+
ships. Numeric verification covers the non-armour modules; the ship-specific armour
|
|
713
|
+
modules' class, mass, hull boost and resistances retain their registry provenance rather
|
|
714
|
+
than being described as game-verified.
|
|
715
|
+
|
|
716
|
+
Every numeric field available through in-game verification was compared, and the
|
|
717
|
+
comparison reached every record carrying the field, apart from the two sets named above,
|
|
718
|
+
which sit outside in-game verification of `powerDraw` and
|
|
719
|
+
`bootTime`. The fields compared are `powerDraw`, `bootTime`, power-plant output and
|
|
720
|
+
efficiency, every FSD field, thruster heat rate, all six distributor fields, sensor
|
|
721
|
+
range and angle, shield mass/strength curves, shield regeneration, shield-cell
|
|
722
|
+
timing/reinforcement/heat, fuel-scoop rate, interdictor range and facing, cargo
|
|
723
|
+
capacity, fuel capacity, hull reinforcement, module protection, shield addition,
|
|
724
|
+
Guardian jump boost, weapon armour piercing, burst rounds, burst rate and rounds per
|
|
725
|
+
shot. Of those, `powerDraw` and `bootTime` agreed everywhere; where the others
|
|
726
|
+
disagreed, the corrections are tabulated below.
|
|
727
|
+
|
|
728
|
+
In-game verification did not yield store prices, hardpoint reserve ammo,
|
|
729
|
+
projectile speed, rail-gun charge time, or the hardpoint scanners'
|
|
730
|
+
range/angle/time fields. Hardpoint maximum-range values, ECM heat and reload,
|
|
731
|
+
the armour modules, blueprint grade rolls and crafting costs remain unverified too.
|
|
709
732
|
It also did not unambiguously settle the shield-generator resistances, shield-booster
|
|
710
|
-
properties or probe radius. Those values are not changed on guesswork. For the
|
|
733
|
+
properties or probe radius. Those values are not changed on guesswork. For the
|
|
711
734
|
anti-xeno, Guardian and special weapons whose damage observed in-game does not reduce honestly
|
|
712
735
|
to one conventional scalar, `damageComponents` preserves the exact amounts. The two
|
|
713
|
-
channel types not established by in-game verification remain `unclassified`.
|
|
736
|
+
channel types not established by in-game verification remain `unclassified`. The
|
|
714
737
|
projectile-limited hardpoints carry their boundary parameters observed in-game in
|
|
715
738
|
`projectileRange`; those parameters are not presented as effective ranges.
|
|
716
739
|
|
|
@@ -750,7 +773,7 @@ and its `PowerDraw` leg reads ×1.15 in the same block.
|
|
|
750
773
|
A fourth label, `Jitter`, already resolved to `jitter`. A capture states it as
|
|
751
774
|
`OriginalValue: 0` on a missile rack whose record holds no such field — a weapon that
|
|
752
775
|
carries no jitter fires true. That zero is a value rather than an absence, so it is a
|
|
753
|
-
`defaultBase` like `roundsPerShot`'s 1. It applies to the
|
|
776
|
+
`defaultBase` like `roundsPerShot`'s 1. It applies to the weapons offered Rapid Fire,
|
|
754
777
|
its multi-cannon spelling, or Inertial Impact (`special_distortion_field`) that hold no
|
|
755
778
|
jitter of their own.
|
|
756
779
|
|
|
@@ -759,10 +782,9 @@ external readings of an unmodified weapon's folded figure. On a beam laser the f
|
|
|
759
782
|
trivial because `damage` is already per second; the huge and medium gimballed beams have
|
|
760
783
|
no separate journal `Damage` reading.
|
|
761
784
|
|
|
762
|
-
**Every module in every catalogue carries at least one stat
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
absent.
|
|
785
|
+
**Every module in every catalogue carries at least one stat**, and no record holds only a
|
|
786
|
+
lone `mass`. Many `bootTime` values are `0` (every hardpoint among them); they are stored
|
|
787
|
+
rather than omitted, because an absent field means absent.
|
|
766
788
|
|
|
767
789
|
**`Int_DroneControl_ResourceSiphon` has a mass of 0 t.** The value is read directly from
|
|
768
790
|
in-game: 0 t mass, alongside integrity 20, power draw 0.4 MW and boot time 0 s. It is not
|
|
@@ -811,8 +833,8 @@ or where no corresponding in-game value was available:
|
|
|
811
833
|
| `Hpt_HeatSinkLauncher_Turret_Tiny` | `ammoMaximum` | 3 | 2 | a journal states the base as 2, and EDSY agrees; in-game verification does not reach hardpoint reserve ammo |
|
|
812
834
|
| `Hpt_Guardian_ShardCannon_Fixed_Medium` | `shotSpeed` | 1133 | 1133.333374 | Frontier's journal states the base beside the tech-broker Modified variant's engineered value |
|
|
813
835
|
|
|
814
|
-
**In-game corrections.** Values are stored at the observed in-game precision.
|
|
815
|
-
|
|
836
|
+
**In-game corrections.** Values are stored at the observed in-game precision. Beyond the
|
|
837
|
+
Resource Siphon, the corrections are:
|
|
816
838
|
|
|
817
839
|
| Records | Fields | Stored in-game values |
|
|
818
840
|
| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------ |
|
|
@@ -822,11 +844,11 @@ account for 300 fields on 135 modules in addition to the Resource Siphon:
|
|
|
822
844
|
| `Int_MetaAlloyHullReinforcement_Size{1..5}_Class{1,2}` | caustic resistance | 0.02 on all ten |
|
|
823
845
|
| shield generators | regeneration / broken regeneration | observed 1.06–5.76 values per symbol |
|
|
824
846
|
| `Int_ShieldCellBank_Size1_Class2`; `Int_FuelScoop_Size4_Class5` | reserve ammo; scoop rate | 1; 0.343 t/s |
|
|
825
|
-
| Beam Laser, Cannon, Fragment Cannon, Multi-Cannon, Plasma Accelerator, Rail Gun, Shock Cannon and Point Defence records | damage / thermal load |
|
|
847
|
+
| Beam Laser, Cannon, Fragment Cannon, Multi-Cannon, Plasma Accelerator, Rail Gun, Shock Cannon and Point Defence records | damage / thermal load | `damage` and `thermalLoad` read from the module panel per symbol |
|
|
826
848
|
| Advanced Plasma Accelerator, Imperial Hammer, Shock Cannons and Mk II Plasma Shock Accelerator | burst interval / combined rate of fire | exact cycle values derived with the catalogue's documented formula |
|
|
827
849
|
| mining, utility and Guardian hardpoints | clip, distributor draw, reload, jitter, falloff and maximum range | observed values per symbol |
|
|
828
|
-
| anti-xeno, Guardian and special weapons | scalar, distribution and exact damage components |
|
|
829
|
-
| AX missiles, subsurface displacement missiles and seismic charge launchers | projectile boundary parameters; misleading ordinary ranges absent |
|
|
850
|
+
| anti-xeno, Guardian and special weapons | scalar, distribution and exact damage components | one component record per weapon |
|
|
851
|
+
| AX missiles, subsurface displacement missiles and seismic charge launchers | projectile boundary parameters; misleading ordinary ranges absent | `projectileRange` stored; `maximumRange` and `falloffRange` absent |
|
|
830
852
|
|
|
831
853
|
In-game verification gives the integer thruster/FSD masses, 1.1/1.2 enhanced-thruster
|
|
832
854
|
acceleration multipliers and the rising Guardian Shield Reinforcement integrity ladder.
|
|
@@ -869,7 +891,7 @@ heuristic does not keep rediscovering them:
|
|
|
869
891
|
distributor integrity otherwise tracks 0.80× the A-rated standard ladder, which would
|
|
870
892
|
put size 5 near 85; EDSY states 99 for both sizes. The duplicate is in the game data.
|
|
871
893
|
- **`Int_DroneControl_Recon_Size5_Class1` `bootTime` really is 9.85** — the only
|
|
872
|
-
non-integer boot time in
|
|
894
|
+
non-integer boot time in the whole catalogue, where its three family siblings are exactly 10.
|
|
873
895
|
EDSY gives `boottime:9.85`.
|
|
874
896
|
|
|
875
897
|
### Prices — `cost` on modules, `hullCost` / `retailCost` on hulls
|
|
@@ -884,11 +906,11 @@ the Lynx Highliner, which has no coriolis entry.
|
|
|
884
906
|
Ship-specific **armour** is priced from each hull's `bulkheads` upstream, joined on hull
|
|
885
907
|
and bulkhead name because those records carry no symbol upstream.
|
|
886
908
|
|
|
887
|
-
- **
|
|
888
|
-
|
|
909
|
+
- **Every hull is priced, and nearly every module.** The ones without a price are the
|
|
910
|
+
grant/starter `*_free` variants, the two unsold Corrosion Resistant Cargo Racks
|
|
889
911
|
(both Community Goal rewards) and `Int_ShieldGenerator_Size1_Class4` — no registry
|
|
890
|
-
publishes a figure for them. The three Mk II Vessel Hangars are
|
|
891
|
-
|
|
912
|
+
publishes a figure for them. The three Mk II Vessel Hangars are priced from an in-game
|
|
913
|
+
purchase capture, below.
|
|
892
914
|
**`cost` is omitted, never set to 0**: `0` is a real price (the starter
|
|
893
915
|
Lightweight Alloy bulkhead costs nothing), while omission means unknown.
|
|
894
916
|
- **Sixteen duplicated symbols take the first occurrence's price.** Where coriolis-data
|
|
@@ -1102,7 +1124,10 @@ and size-6 racks): here the discount is stated rather than solved for.
|
|
|
1102
1124
|
Clipper Mk II, and coriolis-data describes them as a "Panther Clipper storage rack")
|
|
1103
1125
|
and the three Mk II Vessel Hangars → `["Explorer_NX", "PantherMkII", "LakonMiner"]`
|
|
1104
1126
|
(EDSY has no record for the Mk II bays at all, so their restriction rests on
|
|
1105
|
-
Frontier's update notes and Inara)
|
|
1127
|
+
Frontier's update notes and Inara), plus the three **unreleased** Mk II Large
|
|
1128
|
+
Planetary Vehicle Hangars → the thirteen hulls listed under "Records sourced outside
|
|
1129
|
+
the baseline registries" below, where the plain Large hangars beside them carry no
|
|
1130
|
+
restriction. Armour records use the `ship` field instead.
|
|
1106
1131
|
- **`restrictedToSlot`** is the same idea one axis over: the slot restriction a module
|
|
1107
1132
|
requires, so it fits only mounts carrying it — the mirror of a mount's `restriction`,
|
|
1108
1133
|
and the half `restrictedToShips` cannot express. Five records have one: the two
|
|
@@ -1122,8 +1147,8 @@ and size-6 racks): here the discount is stated rather than solved for.
|
|
|
1122
1147
|
optional: a plain cargo rack fits a `cargo` mount _and_ every unrestricted one, and
|
|
1123
1148
|
does not carry it. The set of five is pinned, so widening it is a deliberate act.
|
|
1124
1149
|
- **`exclusionGroup`** carries EDSY's one-per-ship `limit` families, renamed from its
|
|
1125
|
-
compact ids to stable descriptive values.
|
|
1126
|
-
|
|
1150
|
+
compact ids to stable descriptive values. The stored set covers the internal and
|
|
1151
|
+
utility records in all but one of EDSY's one-per-ship source families: shield
|
|
1127
1152
|
generators (standard, bi-weave and prismatic
|
|
1128
1153
|
share one group), fuel scoops, refineries, frame-shift-drive interdictors, Guardian
|
|
1129
1154
|
FSD boosters, vessel hangars, docking computers, supercruise assist, multi-limpet
|
|
@@ -1133,10 +1158,10 @@ and size-6 racks): here the discount is stated rather than solved for.
|
|
|
1133
1158
|
are not current outfitting records; `Int_SupercruiseAssist` matches EDSY's
|
|
1134
1159
|
`Int_SuperCruiseAssist` case-insensitively, as Frontier symbols are matched elsewhere.
|
|
1135
1160
|
The three Mk I bundle-granted and all six Mk II Vessel Hangars are absent from the
|
|
1136
|
-
baseline table; they join to the separately pinned Vessel Hangar snapshot, where
|
|
1137
|
-
|
|
1138
|
-
- **`limitGroup` / `limitIncrease` preserve EDSY's non-exclusive fitting limit.**
|
|
1139
|
-
|
|
1161
|
+
baseline table; they join to the separately pinned Vessel Hangar snapshot, where each
|
|
1162
|
+
carries the same `limit:'ifh'` as the ordinary Mk I records.
|
|
1163
|
+
- **`limitGroup` / `limitIncrease` preserve EDSY's non-exclusive fitting limit.** Every
|
|
1164
|
+
current hardpoint record whose EDSY module carries `limit:'hex'` stores
|
|
1140
1165
|
`limitGroup:'experimentalWeapon'`; the source's `eddb.limit.hex` is `4`. This is the
|
|
1141
1166
|
shared AX/Guardian experimental-weapon allowance, not a name-based classification:
|
|
1142
1167
|
the marked set is exactly the source set, including the Caustic Missile Rack and
|
|
@@ -1165,6 +1190,117 @@ and size-6 racks): here the discount is stated rather than solved for.
|
|
|
1165
1190
|
|
|
1166
1191
|
Records not in coriolis-data / FDevIDs at the acquired revisions:
|
|
1167
1192
|
|
|
1193
|
+
- **Large Planetary Vehicle Hangars — nine records that are UNRELEASED.** They are
|
|
1194
|
+
carried ahead of the update that adds them, and split into a line that is observed and
|
|
1195
|
+
a line that is not:
|
|
1196
|
+
- `Int_LargeBuggyBay_Size{2,4,6}_Class3` and their `_Free` grant twins, named **Large
|
|
1197
|
+
Planetary Vehicle Hangar** — identity and stats from the in-game observation pinned
|
|
1198
|
+
above.
|
|
1199
|
+
- `Int_MkIILargeBuggyBay_Size{2,4,6}_Class3`, named **Mk II Large Planetary Vehicle
|
|
1200
|
+
Hangar** — stats from the same observation, with the size-4 identity, its price and
|
|
1201
|
+
its mount read from a journal `ModuleBuy`. See "The Mk II line's identity comes from
|
|
1202
|
+
a journal" below.
|
|
1203
|
+
|
|
1204
|
+
No registry carries any of the nine, and the game cannot be asked about most of them
|
|
1205
|
+
until the update ships, so none is registry-confirmed and all are outside in-game
|
|
1206
|
+
*verification* as this file uses the term — including the size-4 Mk II record, which a
|
|
1207
|
+
journal does carry. #16 tracks the verification and lists what closes it; a reading on
|
|
1208
|
+
release that disagrees wins outright, symbols included.
|
|
1209
|
+
- **The observed line's identity is settled.** The symbol is `Int_LargeBuggyBay_`, not
|
|
1210
|
+
the `Int_BuggyBay_…_Class3` this catalogue first guessed — the same `Large` prefix
|
|
1211
|
+
Frontier uses for `Int_LargeCargoRack_Size{7,8}_Class1`, whose display name is "Mk II
|
|
1212
|
+
Cargo Rack". The observation also carries three `_Free` grant twins, spelled as the
|
|
1213
|
+
Vessel Hangars' are.
|
|
1214
|
+
- **Observed stats.** Integrity 30 and boot time 5 s throughout, matching every shipped
|
|
1215
|
+
hangar; mass 12/20/34 t and power draw 0.75/1.2/1.8 MW at sizes 2, 4 and 6. The
|
|
1216
|
+
`_Free` twins carry the same four values as their sold twins, so they are stored with
|
|
1217
|
+
them rather than left blank.
|
|
1218
|
+
- **The size-2 record was derived before it was observed, and the derivation held.**
|
|
1219
|
+
It was reasoned from two relations across the shipped hangars — the Large hangar
|
|
1220
|
+
taking the shipped `Class1` mass and the shipped `Class2` power draw — which
|
|
1221
|
+
produced exactly the 12 t and 0.75 MW later observed. The relations are recorded
|
|
1222
|
+
because they still carry the Mk II line, which has no observation.
|
|
1223
|
+
- **`rating` is `F`, and a `C` alongside it is a mapping artefact.** The shipped
|
|
1224
|
+
hangars are `Class1` rating H and `Class2` rating G, so this family does not use the
|
|
1225
|
+
ordinary class-to-letter ladder that would make a `Class3` record a C. F continues
|
|
1226
|
+
its own ladder and F is what the outfitting panel reads, which settles it: the
|
|
1227
|
+
panel is the grade letter's source everywhere in this catalogue. The `C` seen beside
|
|
1228
|
+
these records is what a generic quality-tier mapping produces, applied to a family
|
|
1229
|
+
that does not use that ladder, and it is not carried.
|
|
1230
|
+
- **`vehicleSlots` is observed as 1, 2 and 4 by size — and still not stored.** The
|
|
1231
|
+
observation carries the count for both lines and it matches the shipped hangars of
|
|
1232
|
+
the same sizes. No module record in this catalogue carries a vehicle-slot field, the
|
|
1233
|
+
six shipped hangars included, so adding one is a schema change covering all fifteen
|
|
1234
|
+
hangars rather than something to smuggle in beside unreleased records. The figures
|
|
1235
|
+
are kept here so they are not lost.
|
|
1236
|
+
- **`entitlement` is omitted.** The six shipped hangars carry
|
|
1237
|
+
`ELITE_HORIZONS_V_PLANETARY_LANDINGS`; the Mk II Vessel Hangars, the closest recent
|
|
1238
|
+
addition of the same shape, carry no token at all. Nothing states one for these, and
|
|
1239
|
+
an invented token would be worse than an absent one. The `_Free` twins take
|
|
1240
|
+
`grantOnly` from Frontier's own `_Free` suffix, as §`grantOnly` describes, and no
|
|
1241
|
+
token either.
|
|
1242
|
+
- **The Mk II line's identity comes from a journal.** A `ModuleBuy` entry names
|
|
1243
|
+
`$int_mkiilargebuggybay_size4_class3_name;`, localised "Mk II Large Planetary Vehicle
|
|
1244
|
+
Hangar" — so the prefix is `Int_MkIILargeBuggyBay_`, one word, and the earlier
|
|
1245
|
+
`Int_BuggyBayMk2_` guess is gone. Its stats are 9/15/25.5 t at 0.5/0.8/1.2 MW,
|
|
1246
|
+
integrity 30 and boot time 5 s, at sizes 2, 4 and 6.
|
|
1247
|
+
- **Only the size-4 identity is read; the other two are extended from it.** The
|
|
1248
|
+
journal names one module. Sizes 2 and 6 keep the same prefix and the same
|
|
1249
|
+
`_Size{n}_Class3` shape, which is how every other sized family in this catalogue
|
|
1250
|
+
spells itself, and their stats are observed. It is a narrow extension of a read
|
|
1251
|
+
identity rather than a guess, but it is still an extension.
|
|
1252
|
+
- **The casing is reconstructed.** A journal spells a symbol in lower case, and
|
|
1253
|
+
FDevIDs — which supplies casing everywhere else here — has no row yet.
|
|
1254
|
+
`Int_MkIILargeBuggyBay_` follows `Int_MkII_PassengerCabin_`'s `MkII` and the
|
|
1255
|
+
observed `Int_LargeBuggyBay_`, minus the separator the journal shows is absent.
|
|
1256
|
+
Nothing turns on it: this catalogue matches symbols case-insensitively.
|
|
1257
|
+
- **The Mk II line has no observed `_Free` grant twin**, where the plain line has
|
|
1258
|
+
three. Whether that is a real asymmetry or a gap in what has been seen is open.
|
|
1259
|
+
- **Only the Mk II records are ship-restricted**, to the thirteen hulls reported:
|
|
1260
|
+
`TypeX_2`, `Anaconda`, `BelugaLiner`, `Explorer_NX`, `Federation_Corvette`,
|
|
1261
|
+
`Federation_Gunship`, `Cutter`, `Independant_Trader`, `Krait_MkII`, `PantherMkII`,
|
|
1262
|
+
`Type9`, `Type9_Military` and `LakonMiner` — stored in the order they were reported.
|
|
1263
|
+
The plain line carries no restriction, and nothing read so far shows one. **How wide
|
|
1264
|
+
that line's hull coverage actually is has not been established**, so its absent
|
|
1265
|
+
restriction is the reading its silence supports rather than a positive fact.
|
|
1266
|
+
- **The thirteen are exactly the hulls that can carry a ship-launched vessel**, and
|
|
1267
|
+
the journal reading is what makes that legible rather than coincidental: the Mk II
|
|
1268
|
+
hangar was bought into the Type-11's `FighterBay01`, the one vessel-hangar-restricted
|
|
1269
|
+
mount in the catalogue, over the Vessel Hangar it replaced. §`restriction` carries
|
|
1270
|
+
the mount half of this, including why neither line takes `restrictedToSlot`.
|
|
1271
|
+
- **Prices are stored at list, recovered from six discounted readings** — one per sold
|
|
1272
|
+
record, all at a 10% and a 2.5% outfitting discount. The readings are 28 431 at size
|
|
1273
|
+
2, 113 724 at size 4 and 909 792 at size 6, **the same figure for the plain and the
|
|
1274
|
+
Mk II record at each size**. Run each through the discount model §Prices measures —
|
|
1275
|
+
`paid = ceil(ceil(list * 9/10) * 39/40)` — and all three come back exactly from a
|
|
1276
|
+
round list figure that is 1.5x the shipped `Class2` hangar of the same size: 32 400,
|
|
1277
|
+
129 600 and 1 036 800 against 21 600, 86 400 and 691 200. `cost` stores that recovered
|
|
1278
|
+
list price, as it does everywhere else. This overrides an early note that the size-2
|
|
1279
|
+
figure carried no 2.5% discount: undiscounted, 28 431 would be 1.316x its `Class2`
|
|
1280
|
+
sibling, against a 1.5x that lands on a round number and holds for all three sizes at
|
|
1281
|
+
once. The size-4 Mk II reading is a journal `ModuleBuy` `BuyPrice`; the rest are
|
|
1282
|
+
outfitting readings.
|
|
1283
|
+
- **The two lines really do share a price, and that was doubted here.** A Mk II
|
|
1284
|
+
article costing exactly its plain sibling is not how the Mk I and Mk II Vessel
|
|
1285
|
+
Hangars behave, which differ at every size, so this file previously called the
|
|
1286
|
+
shared size-6 figure unlikely to survive. Readings at all three sizes, taken for
|
|
1287
|
+
both lines, say otherwise. The price tracks the size, not the mark.
|
|
1288
|
+
- **No reading pins its list price on its own.** Under a ceiling at each step,
|
|
1289
|
+
`list - 1` reproduces the same paid figure for all three sizes (32 399, 129 599 and
|
|
1290
|
+
1 036 799 do), exactly as `unique: false` marks two rows of the purchase capture.
|
|
1291
|
+
What settles them is the 1.5x relation landing on a round number three times over,
|
|
1292
|
+
and that is weaker than a reading — the one part of the price story a release does
|
|
1293
|
+
not automatically confirm.
|
|
1294
|
+
- **The `_Free` twins carry no price**, as the bundle-granted Vessel Hangars do not:
|
|
1295
|
+
a grant has no list price, and `cost` is omitted rather than set to 0.
|
|
1296
|
+
- **They are exempt from nothing else.** The nine carry stats, so they are among the
|
|
1297
|
+
records carrying at least one; the six sold ones carry a price; and all nine are
|
|
1298
|
+
outside in-game verification, which the `registryOnlyIdentities` count in
|
|
1299
|
+
`fixtures/ships/module-stats.jsonc` pins alongside the bundle-granted Vessel Hangars.
|
|
1300
|
+
`data/i18n/module-names.jsonc` carries the plain line's name in all six locales; the
|
|
1301
|
+
Mk II line's English is read and its five other locales are constructed, which
|
|
1302
|
+
§`module-names.jsonc` there records as a manual correction.
|
|
1303
|
+
|
|
1168
1304
|
- **Vessel Hangars** — the three Mk II records
|
|
1169
1305
|
(`Int_FighterBayMk2_Size{5,6,7}_Class1`) have the same operational stats as the Mk I
|
|
1170
1306
|
bays at half the mass (10/20/30 t, integrity 60/80/120, power
|
|
@@ -1228,12 +1364,12 @@ Records not in coriolis-data / FDevIDs at the acquired revisions:
|
|
|
1228
1364
|
same _kind_ of judgement on thinner evidence, and a contrary in-game reading should
|
|
1229
1365
|
reverse it.
|
|
1230
1366
|
- **The 2026-08-14 in-game audit's totals counted these five as verified, and are
|
|
1231
|
-
|
|
1232
|
-
modules checked numerically, and "every FSD field 72/72" — figures that
|
|
1233
|
-
been true of five records the game does not offer.
|
|
1234
|
-
identity
|
|
1235
|
-
|
|
1236
|
-
capture itself has not changed.
|
|
1367
|
+
corrected here.** That audit reported `identityMatches` 1193 of 1199 with 952
|
|
1368
|
+
non-armour modules checked numerically, and "every FSD field 72/72" — figures that
|
|
1369
|
+
could not have been true of five records the game does not offer. Corrected, those
|
|
1370
|
+
five drop out of the identity, non-armour and FSD totals alike. They leave the
|
|
1371
|
+
catalogue; they do not join the registry-only set, which stays limited to the
|
|
1372
|
+
bundle-granted Vessel Hangars. The source capture itself has not changed.
|
|
1237
1373
|
- **1B Shield Generator** (`Int_ShieldGenerator_Size1_Class4`) — a gap in FDevIDs, not
|
|
1238
1374
|
in the game: every other shield-generator size carries all five ratings, and size 1
|
|
1239
1375
|
ran E/D/C/A with **B missing**. The module is real, so the record is carried with the
|
|
@@ -1265,6 +1401,15 @@ Records not in coriolis-data / FDevIDs at the acquired revisions:
|
|
|
1265
1401
|
the three unknown fields are omitted.
|
|
1266
1402
|
- The built-in **Cargo Hatch** is stored once as `ModularCargoBayDoor`; per-hull
|
|
1267
1403
|
duplicates of the same fitting are not carried separately.
|
|
1404
|
+
- **The nine Large Planetary Vehicle Hangars are a standing exception, and the only
|
|
1405
|
+
one.** No registry lists them and no player-facing capture establishes them, because
|
|
1406
|
+
the update that adds them has not shipped — so the rule, read as written, excludes
|
|
1407
|
+
them. They are carried anyway so that the work of adding them is reviewable before
|
|
1408
|
+
release rather than after; §"Records sourced outside the baseline registries" says
|
|
1409
|
+
which are observed, which are reported and which are guessed. The exception closes
|
|
1410
|
+
the moment the update ships: either a real source confirms them, and they become
|
|
1411
|
+
ordinary records, or it does not, and they come out — #16. It is not a precedent for
|
|
1412
|
+
carrying any other unreleased identity.
|
|
1268
1413
|
|
|
1269
1414
|
## Engineering (blueprints and experimental effects)
|
|
1270
1415
|
|
|
@@ -1333,7 +1478,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1333
1478
|
|
|
1334
1479
|
- **Files:** `blueprints.jsonc` (per-blueprint, per-grade stat modifiers),
|
|
1335
1480
|
`blueprint-costs.jsonc` (the matching per-grade material requirements),
|
|
1336
|
-
`blueprint-merc-coin-costs.jsonc` (the per-roll Merc-Coin amounts the
|
|
1481
|
+
`blueprint-merc-coin-costs.jsonc` (the per-roll Merc-Coin amounts the recipes that
|
|
1337
1482
|
charge a currency bill alongside those materials),
|
|
1338
1483
|
`blueprint-journal-names.jsonc` (the three recipe ids whose journal spelling collides
|
|
1339
1484
|
with another recipe), `experimental-effects.jsonc` (special-effect stat modifiers and
|
|
@@ -1349,14 +1494,14 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1349
1494
|
- **Display names:** each blueprint and experimental effect carries its `name`.
|
|
1350
1495
|
Effect names are the English strings observed in-game. Blueprint names are coriolis
|
|
1351
1496
|
`blueprint.name` for the 81 blueprints coriolis carries, and the Operations dossier's
|
|
1352
|
-
display label for the
|
|
1497
|
+
display label for the rest — the Operations keys and `GuardianModule_Sturdy`,
|
|
1353
1498
|
which is journal-keyed but absent from coriolis, so its name comes from the Inara
|
|
1354
1499
|
registry like the Operations keys' own.
|
|
1355
1500
|
- **These are the short modifier labels, not the full outfitting-panel
|
|
1356
1501
|
strings — deliberately.** The panel calls `Weapon_LongRange` "Long-Range Weapon",
|
|
1357
1502
|
`ShieldBooster_HeavyDuty` "Heavy Duty Shield Booster" and
|
|
1358
1503
|
`Armour_Advanced` "Lightweight Armour"; this catalogue says "Long range", "Heavy
|
|
1359
|
-
duty" and "Lightweight". Nearly all
|
|
1504
|
+
duty" and "Lightweight". Nearly all of them differ that way, because a blueprint's name
|
|
1360
1505
|
is read next to the module it is applied to, where repeating the module's own name
|
|
1361
1506
|
is noise. The convention is house style and is kept: switching to the panel strings
|
|
1362
1507
|
would change every blueprint record's `name` for no gain. Two names were wrong in
|
|
@@ -1365,12 +1510,11 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1365
1510
|
and `special_choke_canister` **"Ion Disruption"** (not "Ion Disruptor").
|
|
1366
1511
|
- **Blueprint journal names — three collisions, stored separately from mechanics.**
|
|
1367
1512
|
`blueprint-journal-names.jsonc` maps a recipe id only when the id the game writes for it
|
|
1368
|
-
is a key some _other_ record already answers to.
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
already carrying and four recipes a player rolls at an engineer. The three that do are
|
|
1513
|
+
is a key some _other_ record already answers to. Every other recipe needs no entry for
|
|
1514
|
+
one of two reasons: its key already is the id a journal writes (including Anti-Guardian
|
|
1515
|
+
Zone Resistance as `GuardianModule_Sturdy`), or it is an Operations id for
|
|
1516
|
+
which no journal spelling has been observed — most of them recipes a module is sold
|
|
1517
|
+
already carrying, and four recipes a player rolls at an engineer. The three that do are
|
|
1374
1518
|
`Scanner_LongRange` and `Scanner_WideAngle`, coriolis keys
|
|
1375
1519
|
for recipes the game writes as `Sensor_LongRange` / `Sensor_WideAngle` — the same ids it
|
|
1376
1520
|
writes for the sensor suites' own Long Range and Wide Angle, which are different recipes
|
|
@@ -1458,7 +1602,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1458
1602
|
repository contains no raw `Loadout` capture of this blueprint.
|
|
1459
1603
|
Their per-roll `materials` are from the same registry (resolved to Frontier material
|
|
1460
1604
|
`symbol`s against the `materials` domain). Where that same crafting-cost table lists a
|
|
1461
|
-
per-roll **Merc-Coin** amount beside them — on the
|
|
1605
|
+
per-roll **Merc-Coin** amount beside them — on the recipes named under "Merc-Coin
|
|
1462
1606
|
crafting cost" below, which is every recipe in this bullet except the Anti-Guardian one
|
|
1463
1607
|
— the amount is a currency rather than a material, so it is stored separately, in
|
|
1464
1608
|
`blueprint-merc-coin-costs.jsonc`. Some totals are
|
|
@@ -1476,20 +1620,21 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1476
1620
|
`EngineeringMaterial` list would put something with no `symbol` in the materials domain.
|
|
1477
1621
|
Amounts are **per roll**, exactly as the material recipes are, so pricing a climb weights
|
|
1478
1622
|
each grade by its roll count.
|
|
1479
|
-
- **
|
|
1480
|
-
a charging recipe by rendering its name in the coin colour, and the marked
|
|
1481
|
-
exactly the
|
|
1623
|
+
- **A minority of recipes charge one.** Inara's blueprint
|
|
1624
|
+
index marks a charging recipe by rendering its name in the coin colour, and the marked
|
|
1625
|
+
set is exactly the bespoke grade-2–5 recipes a bought Mercenary article climbs plus the
|
|
1482
1626
|
four Operations recipes an ordinary menu lists at grades 1–5 (`FuelScoop_Efficiency`
|
|
1483
1627
|
and the three `*Laser_ThermalPlasmaConversion`) — 18 marked rows of the 197 the index
|
|
1484
|
-
lists, because one published recipe can answer to more
|
|
1485
|
-
engineer recipe is therefore **absent rather than
|
|
1628
|
+
lists, fewer than the ids they price because one published recipe can answer to more
|
|
1629
|
+
than one stored id. An ordinary engineer recipe is therefore **absent rather than
|
|
1630
|
+
zero**, and `GuardianModule_Sturdy`
|
|
1486
1631
|
is absent for the same reason. That index is the whole evidence for the negative half
|
|
1487
1632
|
of the claim: it is a completeness reading of one listing, not 197 pages checked one
|
|
1488
1633
|
by one. Acquired 2026-08-22 UTC; the pages are live and expose no immutable revision.
|
|
1489
1634
|
- **Every row is joined to its blueprint symbol by its own material recipe, not by name.** Inara
|
|
1490
1635
|
publishes one page per recipe, keyed by its display name; each of the 18 pages' per-grade
|
|
1491
1636
|
material lists was compared against `blueprint-costs.jsonc` before its Merc-Coin figures
|
|
1492
|
-
were taken, and
|
|
1637
|
+
were taken, and every row agrees on every grade, every material and every count. That is what
|
|
1493
1638
|
binds "Rail Gun — Enduring feedback" to `RailGun_LongShot` rather than a guess at the
|
|
1494
1639
|
display name.
|
|
1495
1640
|
- **One published recipe, several stored ids, one set of amounts.** Inara publishes a
|
|
@@ -1539,9 +1684,9 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1539
1684
|
- **Cross-checked against coriolis-data** (commit
|
|
1540
1685
|
`0db9234b5b9ce8c939ea84133d7ce336eea88e27`, acquired 2026-08-01 UTC), which holds the
|
|
1541
1686
|
same facts split across `modifications/modifierActions.json` (modifiers) and
|
|
1542
|
-
`modifications/specials.json` (recipes).
|
|
1543
|
-
`specials.json`;
|
|
1544
|
-
that do not, `special_blinding_shell` and `special_smart_rounds`, are qualitative
|
|
1687
|
+
`modifications/specials.json` (recipes). Every active effect here appears in
|
|
1688
|
+
`specials.json`; all but two have a `modifierActions.json` entry to diff against — the
|
|
1689
|
+
two that do not, `special_blinding_shell` and `special_smart_rounds`, are qualitative
|
|
1545
1690
|
records this file stores with no modifiers either. The two sources agree everywhere
|
|
1546
1691
|
once each one's conventions are accounted for: coriolis stores the four resistances
|
|
1547
1692
|
as `modmod` percentage points where this file stores fractions (hull and shield boost
|
|
@@ -1555,7 +1700,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1555
1700
|
`ammomax: -100` leg (stored here as `AmmoMaximum −1`, the "reloads from ship fuel"
|
|
1556
1701
|
mechanic) that coriolis's `modifierActions` does not carry at all; and coriolis
|
|
1557
1702
|
splits Plasma Slug by weapon family where EDSY does not, discussed next.
|
|
1558
|
-
- **Weapon-combat experimental effects are carried in full**
|
|
1703
|
+
- **Weapon-combat experimental effects are carried in full** (Auto Loader,
|
|
1559
1704
|
Corrosive Shell, Force Shell, FSD Interrupt, Plasma Slug, …). A purely-qualitative one —
|
|
1560
1705
|
a gameplay flag with no numeric magnitude the data exposes — carries an **empty
|
|
1561
1706
|
`modifiers` list and a human-readable `description`** instead; effects that do have
|
|
@@ -1577,7 +1722,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1577
1722
|
`journal-federation-corvette.jsonc` independently settles High Yield Shell, stating
|
|
1578
1723
|
`$Kinetic;` 100 → 50 and `$Explosive;` 0 → 50 for its large gimballed cannon. The
|
|
1579
1724
|
three sourced conversions remain a lower bound rather than a count:
|
|
1580
|
-
|
|
1725
|
+
several of the effects an engineer offers a weapon carry no `description` at all —
|
|
1581
1726
|
`special_incendiary_rounds` and `special_emissive_munitions` among them — so for those
|
|
1582
1727
|
the data neither states a conversion nor rules one out.
|
|
1583
1728
|
|
|
@@ -1631,7 +1776,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1631
1776
|
- **Availability is a property of the module, not of the blueprint.** A Pulse Laser and a
|
|
1632
1777
|
Rail Gun both take the Efficient blueprint but offer different experimental effects, so
|
|
1633
1778
|
"which experimentals go with blueprint X" has no single answer. Modules are therefore
|
|
1634
|
-
grouped
|
|
1779
|
+
grouped — one group per ordinary engineering menu — and each group lists the
|
|
1635
1780
|
`blueprints` and `experimentals` it offers.
|
|
1636
1781
|
- **A group carries no display name.** The grouping is this repository's own partition of
|
|
1637
1782
|
the modules sharing one menu; the game publishes no engineering-group label, heading
|
|
@@ -1641,7 +1786,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1641
1786
|
(`cannons` Russian "Пушки" against the family's "Орудия", `moduleReinforcements`
|
|
1642
1787
|
Brazilian Portuguese title case against the family's sentence case). Consumers name a
|
|
1643
1788
|
group by joining a module's `familyId` to `module-families.jsonc`. The two partitions
|
|
1644
|
-
do not coincide exactly:
|
|
1789
|
+
do not coincide exactly: nearly every group sits wholly inside one family, while
|
|
1645
1790
|
`heatSinkLaunchers` covers both `heatsinkLaunchers` and `causticSinkLaunchers`, and the
|
|
1646
1791
|
`fsd` and `hullReinforcements` families are each split across two groups.
|
|
1647
1792
|
- **Source:** EDSY `eddb.js`, whose module-group tables carry each group's `blueprints`
|
|
@@ -1651,9 +1796,8 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1651
1796
|
`modifications/modules.json`, which carries the same per-group lists keyed by the
|
|
1652
1797
|
journal `BlueprintName`s this catalogue joins on.
|
|
1653
1798
|
- **Coverage: every retained group EDSY's `mtype` table gives a `blueprints:` key.** After
|
|
1654
|
-
the corrections below,
|
|
1655
|
-
|
|
1656
|
-
bulkheads (the 241 ship armour records), life
|
|
1799
|
+
the corrections below, the grouped modules include
|
|
1800
|
+
bulkheads (the ship armour records), life
|
|
1657
1801
|
support, sensors, the Detailed Surface Scanner, refineries, AFMUs, fuel
|
|
1658
1802
|
scoops, FSD interdictors and boosters, Guardian module and shield reinforcement, the
|
|
1659
1803
|
four engineerable limpet controllers, chaff, heat sink and caustic sink launchers,
|
|
@@ -1676,30 +1820,32 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1676
1820
|
- **The ordinary halves must not list `GuardianModule_Sturdy`**, which is an
|
|
1677
1821
|
Anti-Guardian recipe on a non-Guardian module and EDSY denies it. `powerPlants`,
|
|
1678
1822
|
`powerDistributors` and `hullReinforcements` therefore hold ordinary modules only,
|
|
1679
|
-
and the
|
|
1680
|
-
- **
|
|
1681
|
-
every blueprint:**
|
|
1823
|
+
and the Guardian ones sit in the three groups above.
|
|
1824
|
+
- **Some modules are absent from the registry-derived result because upstream denies them
|
|
1825
|
+
every blueprint:** the AX multi-cannons, most of the mining tools, and the Mk II
|
|
1682
1826
|
Plasma Shock Accelerator. The two gimballed AX multi-cannons are removed by the in-game
|
|
1683
|
-
correction below, while `plasmaAccelerators`
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1827
|
+
correction below, while the `plasmaAccelerators` family keeps every module but the
|
|
1828
|
+
Mk II. The
|
|
1829
|
+
remaining mining tools are the manually corrected Mining Laser and Abrasion Blaster
|
|
1830
|
+
below, so no mining tool has an ordinary menu and the empty `miningToolsLasers` group
|
|
1831
|
+
is not retained.
|
|
1832
|
+
The plain Module Reinforcement Packages are denied their family's only recipe
|
|
1833
|
+
and are absent too, which leaves `moduleReinforcements` holding the Guardian
|
|
1688
1834
|
packages.
|
|
1689
|
-
- **The
|
|
1690
|
-
the pinned registries. Whole families first, both registries
|
|
1835
|
+
- **The modules that are absent have no ordinary engineering menu.** For most this comes
|
|
1836
|
+
from the pinned registries. Whole families first, both registries
|
|
1691
1837
|
agreeing: fuel tanks, passenger cabins, the repair/recon/research/decontamination and
|
|
1692
1838
|
multi-limpet controllers, meta-alloy and ordinary module reinforcement, the Pulse Wave
|
|
1693
1839
|
Analyser, the mining launchers, Shock Cannons, Nanite Torpedo Pylons, fighter and
|
|
1694
1840
|
vehicle hangars, the docking computers and Supercruise Assist, the module stabilisers,
|
|
1695
1841
|
the planetary approach suites, the cargo hatch and
|
|
1696
1842
|
the AX utility modules (Xeno Scanners, Shutdown Field Neutralisers), followed by the
|
|
1697
|
-
individually denied modules described above. The
|
|
1698
|
-
Mining Laser, Abrasion Blaster and
|
|
1699
|
-
result below.
|
|
1700
|
-
They and the size-5 class-2 Module Reinforcement Package
|
|
1701
|
-
|
|
1702
|
-
their bespoke recipes.
|
|
1843
|
+
individually denied modules described above. The rest are the Enzyme and AX articles,
|
|
1844
|
+
the fixed Mining Laser, the Abrasion Blaster and the cargo racks corrected from the
|
|
1845
|
+
registry-derived result below.
|
|
1846
|
+
They and the size-5 class-2 Module Reinforcement Package the registries already leave
|
|
1847
|
+
ungrouped have no stock menu, but qualifying Mercenary articles remain upgradeable
|
|
1848
|
+
through their bespoke recipes.
|
|
1703
1849
|
- **EDSY's `_X_` prefix means "not applicable" and is honoured**, not stripped: the
|
|
1704
1850
|
Detailed Surface Scanner's group lists only `iss_er` (`Sensor_Expanded`), because its
|
|
1705
1851
|
three other entries are `_X_`-marked. The `Decorative_*` entries on the remote-release
|
|
@@ -1720,18 +1866,17 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1720
1866
|
Range and Wide Angle where the sensor suites take the `Sensor_*` ones. (Their other
|
|
1721
1867
|
four ids are unaffected: `Sensor_FastScan` and the generic `Misc_*` trio, exactly as
|
|
1722
1868
|
coriolis has them.) The shared symbol is not a defect in EDSY's table, and §Scanner
|
|
1723
|
-
Long Range and Wide Angle below is what follows from that.
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
20 in all, every one an exact match. Chaff, heat sink, point defence and ECMs keep the
|
|
1869
|
+
Long Range and Wide Angle below is what follows from that. Every substituted list,
|
|
1870
|
+
and every further group coriolis carries a list for, was checked against coriolis's
|
|
1871
|
+
own and matches exactly. Chaff, heat sink, point defence and ECMs keep the
|
|
1727
1872
|
generic `Misc_*` ids: there coriolis agrees with EDSY.
|
|
1728
|
-
- **
|
|
1729
|
-
them at all: the Guardian-only groups (`guardianPowerPlants`,
|
|
1873
|
+
- **Some retained groups rest on EDSY alone**, because coriolis carries no blueprint
|
|
1874
|
+
list for them at all: the Guardian-only groups (`guardianPowerPlants`,
|
|
1730
1875
|
`guardianPowerDistributors`, `guardianHullReinforcements`, `moduleReinforcements`,
|
|
1731
1876
|
`shieldReinforcements`, `fsdBoosters`, `guardianGauss`, `guardianPlasma` and
|
|
1732
1877
|
`guardianShard`). That is coriolis being
|
|
1733
1878
|
silent rather than contradicting — its Guardian groups are empty objects — but it
|
|
1734
|
-
means the second registry corroborates
|
|
1879
|
+
means the second registry corroborates most groups, not
|
|
1735
1880
|
all of them. The Guardian-weapon menus are independently settled by the in-game
|
|
1736
1881
|
observations below: stock weapons take Anti-Guardian Zone Resistance alone, while
|
|
1737
1882
|
the pre-engineered articles are final.
|
|
@@ -1739,12 +1884,12 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1739
1884
|
EDSY has a single Overcharged for every weapon; coriolis splits it, and `multiCannons`
|
|
1740
1885
|
lists coriolis's `MC_Overcharged`. See "Multi-cannon Overcharged: one journal id, two
|
|
1741
1886
|
recipes" below for the evidence and for what the split costs.
|
|
1742
|
-
- **The groups
|
|
1743
|
-
of modules sold already engineered rather than offered in a menu
|
|
1887
|
+
- **The groups do not name every blueprint.** The ones they miss are Operations keys
|
|
1888
|
+
of modules sold already engineered rather than offered in a menu, plus the
|
|
1744
1889
|
fixed Expanded Cargo Rack reward identity. Four Operations keys _are_ named by a
|
|
1745
1890
|
group, because they are recipes a player applies — see "Four Operations recipes are
|
|
1746
1891
|
listed by a menu" below.
|
|
1747
|
-
- **
|
|
1892
|
+
- **A few modules are bound by the family rule, not by a source row.** EDSY has no live
|
|
1748
1893
|
entry for `Int_ShieldGenerator_Size1_Class4` (present but commented out, and naming
|
|
1749
1894
|
its `mtype` — `isg`), nor for eight of the `*_free` starter fittings. Each takes its
|
|
1750
1895
|
family's group, on the same rule the stats above use: a `*_free` variant is its priced
|
|
@@ -1759,12 +1904,12 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1759
1904
|
- **File order is derivable:** `modules` is written group by group in the order `groups`
|
|
1760
1905
|
declares them, and within a group in module-catalogue order, so a re-derivation from the
|
|
1761
1906
|
same sources reproduces the file rather than reshuffling it.
|
|
1762
|
-
- **`exclusions` are the exceptions, and they are real.**
|
|
1763
|
-
blueprints but not all of its experimental effects:
|
|
1764
|
-
Sequence,
|
|
1765
|
-
Penetrator Munitions or FSD Interrupt. Upstream these are an exclusion map. A module
|
|
1766
|
-
absent from `exclusions` takes its whole group's list.
|
|
1767
|
-
that would otherwise be listed here
|
|
1907
|
+
- **`exclusions` are the exceptions, and they are real.** Some modules take their group's
|
|
1908
|
+
blueprints but not all of its experimental effects: most Multi-cannons cannot take
|
|
1909
|
+
Phasing Sequence, dumbfire racks cannot take Drag Munitions, and some missile racks are
|
|
1910
|
+
short of Penetrator Munitions or FSD Interrupt. Upstream these are an exclusion map. A module
|
|
1911
|
+
absent from `exclusions` takes its whole group's list. Every mining tool
|
|
1912
|
+
that would otherwise be listed here is absent from the catalogue entirely, taking no
|
|
1768
1913
|
ordinary blueprint either.
|
|
1769
1914
|
- **The fixed Mining Laser and Abrasion Blaster have no ordinary engineering menu.** Both
|
|
1770
1915
|
are removed from `modules`, despite EDSY assigning them to `miningToolsLasers` with
|
|
@@ -1783,12 +1928,12 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1783
1928
|
- **Expanded Cargo Rack is a fixed reward identity, not an ordinary cargo-rack recipe.**
|
|
1784
1929
|
EDSY and coriolis expose `CargoRack_IncreasedCapacity` as the grade-5 identity carried
|
|
1785
1930
|
by the size-5 and size-6 community-goal articles catalogued in `pre-engineered.jsonc`.
|
|
1786
|
-
Direct in-game menu confirmation recorded 2026-08-18 UTC establishes that
|
|
1787
|
-
|
|
1931
|
+
Direct in-game menu confirmation recorded 2026-08-18 UTC establishes that no
|
|
1932
|
+
stock cargo-rack identity — ordinary, corrosion-resistant, or Mk II — has an
|
|
1788
1933
|
ordinary engineering menu; there is no immutable revision for an in-game observation.
|
|
1789
1934
|
The fixed articles keep their sourced modifier blocks and remain identifiable without
|
|
1790
1935
|
granting the same state to a stock rack. A re-derivation must drop the `cargoRacks`
|
|
1791
|
-
group,
|
|
1936
|
+
group, its module mappings, and the corresponding projected `kind` fields in
|
|
1792
1937
|
`modules-internal.jsonc`.
|
|
1793
1938
|
- **The Enzyme Missile Rack and AX weapons have no ordinary engineering menu.** Direct
|
|
1794
1939
|
in-game confirmation recorded 2026-08-18 UTC establishes that the Enzyme Missile Rack,
|
|
@@ -1798,23 +1943,23 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1798
1943
|
through grades 2–5 of its bespoke `EnzymeMissileRack_HighYield` recipe. Its separately
|
|
1799
1944
|
catalogued grade-5 High Capacity community-goal article is final. The Enhanced AX
|
|
1800
1945
|
Multi-Cannons and AX Missile Racks in `pre-engineered.jsonc` are fixed tech-broker
|
|
1801
|
-
variants and cannot be engineered further.
|
|
1802
|
-
`engineeringLocked: true`; the multi-cannons retain
|
|
1803
|
-
`Weapon_Overcharged`, not the ordinary multi-cannon menu key `MC_Overcharged`. A
|
|
1946
|
+
variants and cannot be engineered further. The community-goal Enzyme article, both
|
|
1947
|
+
multi-cannons and both racks carry `engineeringLocked: true`; the multi-cannons retain
|
|
1948
|
+
Frontier's journal identity `Weapon_Overcharged`, not the ordinary multi-cannon menu key `MC_Overcharged`. A
|
|
1804
1949
|
re-derivation must drop the
|
|
1805
1950
|
`experimentalWeapons`, `antiXenoMissileRacks` and `antiXenoMultiCannons` groups, their
|
|
1806
1951
|
five module mappings and the corresponding projected `kind` fields in
|
|
1807
1952
|
`modules-hardpoint.jsonc`.
|
|
1808
|
-
- **An empty experimental menu is still distinct from no menu.**
|
|
1809
|
-
no experimental at all, so
|
|
1953
|
+
- **An empty experimental menu is still distinct from no menu.** Many groups offer
|
|
1954
|
+
no experimental at all, so their modules have an empty experimental
|
|
1810
1955
|
list while retaining blueprints.
|
|
1811
1956
|
- **Key form:** the Anti-Guardian blueprint is listed under `GuardianModule_Sturdy`, the id
|
|
1812
1957
|
a Loadout writes and the one EDSY uses — the same and only spelling `blueprints.jsonc`
|
|
1813
1958
|
keys it under.
|
|
1814
|
-
- **Anti-Guardian Zone Resistance carries no experimental effect.**
|
|
1815
|
-
offering `GuardianModule_Sturdy`
|
|
1959
|
+
- **Anti-Guardian Zone Resistance carries no experimental effect.** Every group
|
|
1960
|
+
offering `GuardianModule_Sturdy` stores `"experimentals": []`, including
|
|
1816
1961
|
`guardianGauss`, `guardianPlasma` and `guardianShard`.
|
|
1817
|
-
- There are no pre-engineered Guardian module reward variants. The
|
|
1962
|
+
- There are no pre-engineered Guardian module reward variants. The Guardian
|
|
1818
1963
|
variants are weapons, whose ordinary recipes identify final purchases rather than
|
|
1819
1964
|
engineer rolls.
|
|
1820
1965
|
- **Neither registry publishes this, and a re-derivation will not reproduce it.**
|
|
@@ -1834,7 +1979,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1834
1979
|
Guardian power plant, distributor or hull reinforcement package at all. Its
|
|
1835
1980
|
Guardian-weapon entries are final pre-engineered articles, a separate case recorded
|
|
1836
1981
|
below.
|
|
1837
|
-
- The
|
|
1982
|
+
- The modules in the three split families above (`guardianPowerPlants`,
|
|
1838
1983
|
`guardianPowerDistributors` and `guardianHullReinforcements`) therefore carry no
|
|
1839
1984
|
experimental effects in the catalogue at all. Blueprints are unaffected on every
|
|
1840
1985
|
module.
|
|
@@ -1879,7 +2024,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1879
2024
|
stock weapon's engineering menu.
|
|
1880
2025
|
|
|
1881
2026
|
So these recipes reach the weapons only as **pre-engineered identities**, and no menu
|
|
1882
|
-
lists them: `pre-engineered.jsonc` marks
|
|
2027
|
+
lists them: `pre-engineered.jsonc` marks every catalogued Guardian-weapon variant
|
|
1883
2028
|
`engineeringLocked: true`, and the 18 build-corpus entries that name one are final
|
|
1884
2029
|
articles rather than recipes a player may apply.
|
|
1885
2030
|
|
|
@@ -1895,7 +2040,7 @@ up straight through with no disambiguation at all. Both paths are evidence that
|
|
|
1895
2040
|
|
|
1896
2041
|
### A tech-broker unlock may be sold under its own name
|
|
1897
2042
|
|
|
1898
|
-
|
|
2043
|
+
Some tech-broker variants are not sold as the plain base module. Each carries
|
|
1899
2044
|
one of three markers, supplied by repository-owner in-game verification (2026-08-30 UTC);
|
|
1900
2045
|
no registry publishes them, and the game exposes no immutable identifier for its
|
|
1901
2046
|
outfitting strings.
|
|
@@ -1962,12 +2107,12 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
1962
2107
|
`{ symbol, name, blueprint, grade, acquisition }`, plus any sourced stat block and
|
|
1963
2108
|
price. The game reports these articles under the base module symbol rather than a
|
|
1964
2109
|
distinct variant symbol.
|
|
1965
|
-
- **`acquisition` says where each remaining variant comes from
|
|
1966
|
-
|
|
2110
|
+
- **`acquisition` says where each remaining variant comes from** — `mercenary`,
|
|
2111
|
+
`communityGoal` or `techBroker`.
|
|
1967
2112
|
- **`mercenary`** — the Merc-Coin shop rows. Source: the in-game outfitting and
|
|
1968
2113
|
blueprint registries, cross-checked against Inara's outfitting and blueprint registries
|
|
1969
2114
|
acquired 2026-08-07 UTC (no immutable revision exposed) and Frontier's update notes.
|
|
1970
|
-
|
|
2115
|
+
Every one is grade 1, and that is the point: the
|
|
1971
2116
|
purchased module already
|
|
1972
2117
|
contains the grade-1 pre-engineering, which is exactly why these blueprints' own
|
|
1973
2118
|
recipes start at grade 2 (see the Operations section above). The two facts are
|
|
@@ -1980,14 +2125,14 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
1980
2125
|
stocks it; both Lockdown recipes run grades 2–5, the weapon-reward range that marks a
|
|
1981
2126
|
module as bought pre-engineered; and it is the only grade-2–5 Operations recipe in the
|
|
1982
2127
|
file
|
|
1983
|
-
that would otherwise have no row,
|
|
2128
|
+
that would otherwise have no row, every other one having one. Price and size confirmed
|
|
1984
2129
|
2026-08-07 UTC against an index of the Inara outfitting listing, which
|
|
1985
2130
|
reports the MERC Lockdown Seeker Missile Rack [Fixed] at 900 MC for the 3A and 800 MC
|
|
1986
2131
|
for the 2B. This is an index reading rather than a pinned page capture. Both halves check
|
|
1987
2132
|
against rows already here — the large rack is 3A and its other Merc row is 900 MC, the
|
|
1988
2133
|
medium is 2B and its Lockdown row is 800 MC — and that corroboration is what carries
|
|
1989
2134
|
the weight.
|
|
1990
|
-
- **
|
|
2135
|
+
- **Some Merc rows carry a default experimental effect** applied beside the grade-1
|
|
1991
2136
|
blueprint, recorded as `experimentalEffectSymbol`: Screening Shell on both Double
|
|
1992
2137
|
Screaming Fragment Cannons, Incendiary Rounds on the Long Range Mining Laser,
|
|
1993
2138
|
Phasing Sequence on the Rapid Phase Multi-Cannon, Feedback Cascade on the Enduring
|
|
@@ -1996,15 +2141,15 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
1996
2141
|
Seeker Missile Racks. Source: repository-owner in-game observation, recorded
|
|
1997
2142
|
2026-08-29 UTC; no registry publishes them. These rows still carry no `modifiers`:
|
|
1998
2143
|
the effect is recorded, the unpublished grade-1 blueprint transformation is not.
|
|
1999
|
-
- **Two independent checks each corroborate
|
|
2000
|
-
|
|
2144
|
+
- **Two independent checks each corroborate all but one, and between them cover
|
|
2145
|
+
every row.** The first: the effect is one the stock module's own experimental menu
|
|
2001
2146
|
offers, so the shop is baking in an effect the module can carry
|
|
2002
2147
|
(`engineering-options.jsonc`). That covers every row but the Mining Laser, whose
|
|
2003
2148
|
base module offers no experimental effect at all. The second: the same base module
|
|
2004
2149
|
already carries the same effect on a catalogued community-goal or tech-broker
|
|
2005
2150
|
variant. That covers every row but the large Drag Seeker Missile Rack, whose
|
|
2006
2151
|
corroboration is its medium twin rather than a variant of its own symbol.
|
|
2007
|
-
- **The mining laser is the weakest of
|
|
2152
|
+
- **The mining laser is the weakest of them.** Incendiary Rounds is outside
|
|
2008
2153
|
`Hpt_MiningLaser_Fixed_Small`'s experimental menu — it is the only row a shop menu
|
|
2009
2154
|
could not have offered — so only the twin check speaks for it, and a twin is
|
|
2010
2155
|
consistency more than evidence. It is recorded because it was observed. The
|
|
@@ -2016,12 +2161,12 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2016
2161
|
EDSY's stored-module presets, which record each reward as an encoded module state; the
|
|
2017
2162
|
blueprint, grade and experimental effect were
|
|
2018
2163
|
decoded from that state rather than inferred from its display label. All ids join to
|
|
2019
|
-
the blueprint, experimental-effect and module catalogues.
|
|
2020
|
-
|
|
2164
|
+
the blueprint, experimental-effect and module catalogues. All but two are grade 5, and
|
|
2165
|
+
some carry an experimental effect. Acquired 2026-08-01 UTC.
|
|
2021
2166
|
- **`techBroker`** — modules unlocked at a tech broker, from the same EDSY presets and
|
|
2022
2167
|
decoded the same way. Human brokers stock the "V1" drives, the SCO drives and a
|
|
2023
2168
|
seeker rack; the Guardian weapon rows come from the Salvation, Azimuth and Sirius
|
|
2024
|
-
brokers.
|
|
2169
|
+
brokers. Most are grade 5 — the grade-1 rows are the Guardian weapons
|
|
2025
2170
|
and a heat sink launcher, where the blueprint named does define a grade 1, so the
|
|
2026
2171
|
grade is a real grade of a real recipe rather than the Merc-shop convention.
|
|
2027
2172
|
Acquired 2026-08-01 UTC.
|
|
@@ -2031,13 +2176,13 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2031
2176
|
route ever existed.
|
|
2032
2177
|
- **`name` is the base module's name, except on the Merc-shop rows.** A community-goal or
|
|
2033
2178
|
tech-broker article is listed under the module it fits as, so those rows carry the
|
|
2034
|
-
catalogue name verbatim. The
|
|
2179
|
+
catalogue name verbatim. The `mercenary` rows do not: the shop sells the
|
|
2035
2180
|
"Far-Reaching Abrasion Blaster" and the "Support Focused Power Distributor" under those
|
|
2036
|
-
names
|
|
2181
|
+
names. Supplied by the repository owner from the
|
|
2037
2182
|
in-game shop listing, acquired 2026-08-22 UTC; the registries carry the transformation,
|
|
2038
2183
|
not the label. Their localized values are recorded in `data/i18n/SOURCES.md`.
|
|
2039
|
-
- **`engineeringLocked: true` marks
|
|
2040
|
-
Guardian weapons and the
|
|
2184
|
+
- **`engineeringLocked: true` marks the final weapon rows:** the pre-engineered
|
|
2185
|
+
Guardian weapons and the fixed Enzyme/AX articles. Their evidence is recorded once
|
|
2041
2186
|
under Engineering options.
|
|
2042
2187
|
- **A reward variant is not reproducible by engineering the same blueprint.** Alongside
|
|
2043
2188
|
its blueprint and effect, each reward carries hand-set modifier overrides no blueprint
|
|
@@ -2049,7 +2194,7 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2049
2194
|
Resistant Cargo Racks carry no engineering at all. They already exist as ordinary
|
|
2050
2195
|
module records (`Int_CorrosionProofCargoRack_Size{5,6}_Class1`), so there is no pairing
|
|
2051
2196
|
to record.
|
|
2052
|
-
- **`mercCoinCost` is the shop price in Merc Coin**, on the
|
|
2197
|
+
- **`mercCoinCost` is the shop price in Merc Coin**, on the `mercenary` rows and
|
|
2053
2198
|
nowhere else. Source: the in-game outfitting registry, with the variants and prices
|
|
2054
2199
|
corroborated by Inara's outfitting registry acquired 2026-08-07 UTC; no immutable
|
|
2055
2200
|
revision is exposed.
|
|
@@ -2063,7 +2208,7 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2063
2208
|
and grade, then translated into the Almanac's own vocabulary — EDSY's attribute names
|
|
2064
2209
|
map to journal Modifier Labels through its own table, and resistances, which EDSY
|
|
2065
2210
|
stores in a different form from this repo, are converted using the module's base
|
|
2066
|
-
resistance.
|
|
2211
|
+
resistance. Every row carries one except the `mercenary` rows, because no registry
|
|
2067
2212
|
publishes the grade-1 pre-engineering they arrive with and a guess is worse than an
|
|
2068
2213
|
omission.
|
|
2069
2214
|
- **Values are the authored decimals, recovered rather than rounded.** The presets
|
|
@@ -2072,7 +2217,7 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2072
2217
|
as `+20%` yields `0.199997`. Rounding that by eye would be a guess, so instead each
|
|
2073
2218
|
value is the **shortest decimal that re-encodes to the identical 20 bits**: the
|
|
2074
2219
|
figure the encoder was originally given, checked by re-encoding rather than assumed.
|
|
2075
|
-
|
|
2220
|
+
Every stat block recovers exactly; a value with no short round-tripping form would
|
|
2076
2221
|
have been kept as decoded, and none needed it. This is what makes the 5A "FSD V1"
|
|
2077
2222
|
resolve to a whole 1785 optimal mass (from `+0.7`) instead of 1785.0126 (from
|
|
2078
2223
|
`0.699988`).
|
|
@@ -2085,9 +2230,8 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2085
2230
|
multiplier it implies, and re-encode. Where that lands on the stored bits (within the
|
|
2086
2231
|
encoder's own one-unit rounding), the source cannot tell the two apart and the round
|
|
2087
2232
|
stat is what was authored, so it is stored as an **`overwrite` of the stat** — exact,
|
|
2088
|
-
and the shape a journal reports a pre-engineered modifier in anyway.
|
|
2089
|
-
|
|
2090
|
-
over 11 modules in all.
|
|
2233
|
+
and the shape a journal reports a pre-engineered modifier in anyway. A minority of
|
|
2234
|
+
modifiers are stored this way, alongside the file's other `overwrite` modifiers.
|
|
2091
2235
|
Worth stating plainly, because the blueprint name invites the opposite reading: the
|
|
2092
2236
|
Shard's `MaximumRange` ×1.7647 with `FalloffRange` ×0.88235 is **not** a Long Range
|
|
2093
2237
|
roll of any grade. It is a bespoke stat block, as every reward variant's is.
|
|
@@ -2109,11 +2253,11 @@ base module's name: the Mining Laser and the size-5 Frame Shift Drive.
|
|
|
2109
2253
|
itself.
|
|
2110
2254
|
- **Burst interval has to be added to the decoder's output by hand.** EDSY carries no
|
|
2111
2255
|
journal Label for `bstint` — the journal reports the resulting `RateOfFire`, never the
|
|
2112
|
-
interval it comes from — so a straight decode drops it, leaving the
|
|
2256
|
+
interval it comes from — so a straight decode drops it, leaving the variants whose
|
|
2113
2257
|
stat block changes a burst pattern on the _stock_ cadence, and four of them (the two frag cannons
|
|
2114
2258
|
and the two Guardian gauss cannons) inconsistent as well as slow, carrying the
|
|
2115
2259
|
engineered `BurstSize` — and, on the gauss cannons, the engineered `BurstRateOfFire` —
|
|
2116
|
-
against a stock interval.
|
|
2260
|
+
against a stock interval. Each is stored under **`BurstInterval`**, the same label
|
|
2117
2261
|
the Rapid Fire and High Capacity blueprint features use (see the Engineering section
|
|
2118
2262
|
above), and it is the file's one departure from what the decoder emits: re-running the
|
|
2119
2263
|
decoder over the same EDSY revision reproduces every other byte.
|