Skip to content

ships.Interface.OutfittingModule

github-actions[bot] edited this page Aug 26, 2026 · 73 revisions

@elite-dangerous-almanac/core / ships / OutfittingModule

Interface: OutfittingModule

Defined in: src/ships/modules.ts:863

One fittable outfitting module: its identity and sparse stats in one flat record.

Remarks

Keeping the runtime record flat lets engineering modifiers address stat keys directly. Consumers that need a smaller contract can accept OutfittingModuleIdentity, OutfittingModuleStats, or one of the required groups in ./module-capabilities.

Example

import { getModuleBySymbol } from '@elite-dangerous-almanac/core/ships/modules';

getModuleBySymbol('Int_Hyperdrive_Size5_Class5')?.engineeringGroup;
// -> 'frameShiftDrives'

Extends

Properties

alwaysPowered?

readonly optional alwaysPowered?: boolean

Defined in: src/ships/modules.ts:747

true when a hardpoint-mounted module draws its power continuously.

Remarks

Weapons and most utility fittings only draw power while the hardpoints are deployed; shield boosters, chaff, heat sinks, point defence, caustic sinks and shutdown field neutralisers draw theirs all the time, and carry this flag. Absent on every core/internal module, which are always powered anyway. See powerDraw and ./power.

Inherited from

OutfittingModuleStats.alwaysPowered


ammoMaximum?

readonly optional ammoMaximum?: number

Defined in: src/ships/modules.ts:804

Reserve rounds to reload from — the magazine is not counted in it, exactly as the journal's AmmoInHopper does not count it. Absent beside a clipSize means nothing limits the refills (the mining Abrasion Blaster); absent beside no clip either means the module takes no ammunition at all, as the lasers do.

Inherited from

OutfittingModuleStats.ammoMaximum


armourPiercing?

readonly optional armourPiercing?: number

Defined in: src/ships/modules.ts:821

Armour piercing rating. Damage to a hull is scaled by min(1, armourPiercing / hardness) against a hull of that Ship.hardness.

Inherited from

OutfittingModuleStats.armourPiercing


bootTime?

readonly optional bootTime?: number

Defined in: src/ships/modules.ts:505

Boot time from power-on, in seconds.

Inherited from

OutfittingModuleStats.bootTime


burstInterval?

readonly optional burstInterval?: number

Defined in: src/ships/modules.ts:782

Seconds between shots — between bursts on a burst-fire weapon.

Inherited from

OutfittingModuleStats.burstInterval


burstRateOfFire?

readonly optional burstRateOfFire?: number

Defined in: src/ships/modules.ts:786

Shots per second within a burst.

Inherited from

OutfittingModuleStats.burstRateOfFire


burstRounds?

readonly optional burstRounds?: number

Defined in: src/ships/modules.ts:784

Shots in one burst. Absent (or 1) on a weapon that does not fire in bursts.

Inherited from

OutfittingModuleStats.burstRounds


cargoCapacity?

readonly optional cargoCapacity?: number

Defined in: src/ships/modules.ts:612

Cargo rack: capacity, in tonnes.

Inherited from

OutfittingModuleStats.cargoCapacity


category

readonly category: ModuleCategory

Defined in: src/ships/modules.ts:268

Which kind of slot the module fits.

Remarks

Derived from the catalogue the record was read from rather than stored on it — CORE_MODULES is what makes a record 'core' — so it is always present and always agrees with the catalogue you found the module in — it is written after the record's own fields, so the file wins outright. That also makes it the last key on the record, which is worth knowing only if you serialize one and compare the resulting string.

Inherited from

OutfittingModuleIdentity.category


causticResistance?

readonly optional causticResistance?: number

Defined in: src/ships/modules.ts:647

Caustic resistance, as a fraction (negative is a weakness).

Inherited from

OutfittingModuleStats.causticResistance


chargeTime?

readonly optional chargeTime?: number

Defined in: src/ships/modules.ts:788

Seconds spent charging before a shot (rail guns), if any.

Inherited from

OutfittingModuleStats.chargeTime


class

readonly class: number

Defined in: src/ships/modules.ts:342

The module size, 08 — the number in the "5A" the outfitting screen shows.

Remarks

Frontier calls this the module class; it is the slot-size number, not the grade letter (that is OutfittingModule.rating). Named class to match the source registry.

Inherited from

OutfittingModuleIdentity.class


clipSize?

readonly optional clipSize?: number

Defined in: src/ships/modules.ts:797

Rounds in a clip before reloading. Absent on weapons that never reload.

Remarks

A capacity, and the largest AmmoInClip a journal can report for the module. ammunitionCapacity in ./ammunition reads it together with OutfittingModule.ammoMaximum.

Inherited from

OutfittingModuleStats.clipSize


cost?

readonly optional cost?: number

Defined in: src/ships/modules.ts:474

Standard purchase price, in credits — the base list price before any station discount or markup, which is what an outfitting screen quotes at 0% discount.

Remarks

Absent on the handful of records no registry prices: the starter *_free variants, the size-8 frame shift drives, and a few internals no outfitting registry carries a figure for — among them the two Corrosion Resistant Cargo Racks no station sells, which are not free. Treat undefined as "unknown", never as free — see data/ships/SOURCES.md.

Inherited from

OutfittingModuleIdentity.cost


damage?

readonly optional damage?: number

Defined in: src/ships/modules.ts:757

Damage per round — or per second on a continuous-fire (beam) weapon.

Inherited from

OutfittingModuleStats.damage


damageComponents?

readonly optional damageComponents?: DamageComponents

Defined in: src/ships/modules.ts:765

Exact damage amounts when in-game verification exposes distinct components. On effective fitted stats these scale with engineered total damage, and are absent when engineering converts the weapon to a new fractional damage distribution.

Inherited from

OutfittingModuleStats.damageComponents


damageDistribution?

readonly optional damageDistribution?: DamageDistribution

Defined in: src/ships/modules.ts:759

How damage splits across the damage types.

Inherited from

OutfittingModuleStats.damageDistribution


distributorDraw?

readonly optional distributorDraw?: number

Defined in: src/ships/modules.ts:814

Weapons-capacitor draw, in megawatts — per shot, or per second on a continuous-fire weapon. Shield generators carry it too, as the systems-capacitor cost of one MJ per second of regeneration — the stat the journal calls EnergyPerRegen rather than DistributorDraw, and the one Hi-Cap, Lo-draw and Force Block move.

Inherited from

OutfittingModuleStats.distributorDraw


engineeringGroup

readonly engineeringGroup: EngineeringGroupId | null

Defined in: src/ships/modules.ts:273

Stable engineering-menu family, or null when the stock module has no ordinary engineering menu. See EngineeringGroupId.

Inherited from

OutfittingModuleIdentity.engineeringGroup


engineeringLocked?

readonly optional engineeringLocked?: boolean

Defined in: src/ships/modules.ts:667

Whether this particular resolved article accepts no further engineering.

Remarks

Stock module catalogues omit this field. getPreEngineeredStats sets it on final pre-engineered Guardian weapons so a fitted article exposes an empty engineering menu and rejects both blueprints and experimental effects.

Inherited from

OutfittingModuleStats.engineeringLocked


engineHeatRate?

readonly optional engineHeatRate?: number

Defined in: src/ships/modules.ts:540

Thrusters: waste heat generated per second at top speed.

Remarks

The stat the journal calls EngineHeatRate — every Dirty Drive Tuning roll raises it and every Clean Drive roll lowers it. Frontier's own units: a bare number the ship's heat model consumes, not a temperature or a percentage.

Inherited from

OutfittingModuleStats.engineHeatRate


enginesCapacity?

readonly optional enginesCapacity?: number

Defined in: src/ships/modules.ts:599

Power distributor: ENG capacitor capacity.

Inherited from

OutfittingModuleStats.enginesCapacity


enginesRecharge?

readonly optional enginesRecharge?: number

Defined in: src/ships/modules.ts:601

Power distributor: maximum ENG recharge at four pips, in megajoules per second.

Inherited from

OutfittingModuleStats.enginesRecharge


entitlement?

readonly optional entitlement?: string

Defined in: src/ships/modules.ts:365

Frontier's DLC / purchase-grant entitlement token, e.g. "ELITE_HORIZONS_V_PLANETARY_LANDINGS". Present only on gated modules.

Inherited from

OutfittingModuleIdentity.entitlement


exclusionGroup?

readonly optional exclusionGroup?: ModuleExclusionGroup

Defined in: src/ships/modules.ts:447

One-per-ship family, absent when the module has no exclusive fitting rule. Two fitted modules sharing this id are structurally invalid.

Inherited from

OutfittingModuleIdentity.exclusionGroup


explosiveResistance?

readonly optional explosiveResistance?: number

Defined in: src/ships/modules.ts:645

Explosive resistance, as a fraction (negative is a weakness).

Inherited from

OutfittingModuleStats.explosiveResistance


falloffRange?

readonly optional falloffRange?: number

Defined in: src/ships/modules.ts:828

Range at which damage starts to drop off, in metres.

Inherited from

OutfittingModuleStats.falloffRange


familyId

readonly familyId: OutfittingFamilyId

Defined in: src/ships/modules.ts:289

Stable outfitting family used to group an outfitting list, such as 'cargoRacks', 'shieldGenerators' or 'beamLasers'. See OutfittingFamilyId.

Remarks

Every record carries one, core modules included, so every choice ShipLoadout.modulesForSlot returns has a family. Closely related variants share it: Bi-Weave and Prismatic generators are 'shieldGenerators', Mk II and corrosion-resistant racks are 'cargoRacks', and a Powerplay or pre-engineered variant stays with its base weapon's family.

OUTFITTING_FAMILIES gives the canonical English display name; getOutfittingFamilyName in i18n/module-families gives a localized one.

Inherited from

OutfittingModuleIdentity.familyId


fsdHeatRate?

readonly optional fsdHeatRate?: number

Defined in: src/ships/modules.ts:559

Frame shift drive: waste heat generated per second while charging a jump.

Remarks

The journal's FSDHeatRate, in the same units as OutfittingModule.engineHeatRate. It is what Faster Boot Sequence trades away, what Shielded improves, and the whole of the Deep Charge / Thermal Spread (special_fsd_cooled) experimental effect. A drive's size sets it — every rating of a size shares one value, and a supercruise-assist (SCO) drive matches the plain drive of the same size.

Inherited from

OutfittingModuleStats.fsdHeatRate


fuelCapacity?

readonly optional fuelCapacity?: number

Defined in: src/ships/modules.ts:610

Fuel tank: capacity, in tonnes.

Inherited from

OutfittingModuleStats.fuelCapacity


fuelMul?

readonly optional fuelMul?: number

Defined in: src/ships/modules.ts:545

FSD: rating (linear) fuel constant.

Inherited from

OutfittingModuleStats.fuelMul


fuelPower?

readonly optional fuelPower?: number

Defined in: src/ships/modules.ts:547

FSD: size (power) fuel constant.

Inherited from

OutfittingModuleStats.fuelPower


grantOnly?

readonly optional grantOnly?: true

Defined in: src/ships/modules.ts:385

true on an article that arrives granted — with a hull or with a bundle — and that no outfitting screen sells. Absent on every module a station offers.

Remarks

The fifteen are the nine starter *_free fittings and the six bundle-granted Vessel Hangars. Each is a second identity for an article the game already sells: Int_Engine_Size2_Class1_free is the 2E Thrusters again, which is why ShipLoadout.modulesForSlot leaves them out — a picker that offered both would list "2E Thrusters" twice, once unpriced.

They are still real fitted articles, so they stay in the catalogues and every lookup resolves one: a build imported from a journal can carry one, and getModuleBySymbol answers for it like any other symbol. Absent is not false — nothing carries grantOnly: false.

Do not read it as a price: OutfittingModule.cost is missing on these but also on articles that are sold and simply unpriced by every registry.

Inherited from

OutfittingModuleIdentity.grantOnly


guardianZoneResistance?

readonly optional guardianZoneResistance?: boolean

Defined in: src/ships/modules.ts:658

Whether Anti-Guardian Zone Resistance protects this Guardian module from a Thargoid anti-Guardian field.

Remarks

A sparse capability flag rather than a percentage: true means the protection is inherent or the grade-1 blueprint grants it, while absence means it is not granted. The two Guardian Nanite Torpedo Pylons carry it inherently; read engineered protection from a fitted module's FittedModule.effectiveStats.

Inherited from

OutfittingModuleStats.guardianZoneResistance


guidance?

readonly optional guidance?: ModuleGuidance

Defined in: src/ships/modules.ts:354

A missile/torpedo hardpoint's guidance. Present only on the launchers that have one; absent on everything else.

Inherited from

OutfittingModuleIdentity.guidance


heatEfficiency?

readonly optional heatEfficiency?: number

Defined in: src/ships/modules.ts:592

Power plant: heat efficiency (lower runs cooler).

Inherited from

OutfittingModuleStats.heatEfficiency


hullBoost?

readonly optional hullBoost?: number

Defined in: src/ships/modules.ts:678

Armour: the hull hit points this bulkhead adds, as a fraction of the hull's Ship.baseArmour on top of it — 0.8 (lightweight alloy) means baseArmour × 1.8, 2.5 means baseArmour × 3.5.

Remarks

Carried by the ship-specific armour modules, which are the core-category records with a OutfittingModule.ship. List a hull's five (or, on the Caspian Explorer, six) options with getBulkheadsForShip.

Inherited from

OutfittingModuleStats.hullBoost


hullReinforcement?

readonly optional hullReinforcement?: number

Defined in: src/ships/modules.ts:680

Hull reinforcement package: hull hit points added.

Inherited from

OutfittingModuleStats.hullReinforcement


integrity?

readonly optional integrity?: number

Defined in: src/ships/modules.ts:501

Integrity (hit points against module damage).

Inherited from

OutfittingModuleStats.integrity


interdictorFacingLimit?

readonly optional interdictorFacingLimit?: number

Defined in: src/ships/modules.ts:730

FSD interdictor: maximum target angle off boresight, in degrees.

Inherited from

OutfittingModuleStats.interdictorFacingLimit


interdictorRange?

readonly optional interdictorRange?: number

Defined in: src/ships/modules.ts:735

FSD interdictor: maximum target range, in seconds to intercept — the units the game measures a supercruise separation in, not a distance.

Inherited from

OutfittingModuleStats.interdictorRange


jitter?

readonly optional jitter?: number

Defined in: src/ships/modules.ts:843

Maximum aim deviation, in degrees.

Inherited from

OutfittingModuleStats.jitter


jumpBoost?

readonly optional jumpBoost?: number

Defined in: src/ships/modules.ts:587

Guardian FSD Booster: flat jump-range bonus, in light-years.

Inherited from

OutfittingModuleStats.jumpBoost


kineticResistance?

readonly optional kineticResistance?: number

Defined in: src/ships/modules.ts:641

Kinetic resistance, as a fraction (0.4 = 40% resisted, -0.2 = 20% weaker).

Inherited from

OutfittingModuleStats.kineticResistance


limitGroup?

readonly optional limitGroup?: "experimentalWeapon"

Defined in: src/ships/modules.ts:453

Per-ship count limit this fitted module consumes, absent when it consumes none. Read the base allowance and current usage with calculateModuleLimits from ships/module-limits rather than inferring the family from a symbol or name.

Inherited from

OutfittingModuleIdentity.limitGroup


limitIncrease?

readonly optional limitIncrease?: ModuleLimitIncrease

Defined in: src/ships/modules.ts:462

Increase this fitted module grants to a per-ship count allowance.

Remarks

The Experimental Weapon Stabiliser grants one additional experimental weapon at class 3 and two at class 5. The grant comes from the fitted article; module power state does not change structural fitting validity.

Inherited from

OutfittingModuleIdentity.limitIncrease


mass?

readonly optional mass?: number

Defined in: src/ships/modules.ts:499

Mass, in tonnes.

Inherited from

OutfittingModuleStats.mass


maxFuel?

readonly optional maxFuel?: number

Defined in: src/ships/modules.ts:543

FSD: maximum fuel per jump, in tonnes.

Inherited from

OutfittingModuleStats.maxFuel


maximumRange?

readonly optional maximumRange?: number

Defined in: src/ships/modules.ts:826

Maximum effective range, in metres. A weapon does no damage beyond it; on a non-scanner utility module, it is the effect's reach.

Inherited from

OutfittingModuleStats.maximumRange


maxMass?

readonly optional maxMass?: number

Defined in: src/ships/modules.ts:512

Maximum mass for the performance curve, in tonnes.

Inherited from

OutfittingModuleStats.maxMass


maxMultiplier?

readonly optional maxMultiplier?: number

Defined in: src/ships/modules.ts:518

Maximum performance multiplier, reached at minMass.

Inherited from

OutfittingModuleStats.maxMultiplier


maxRotationMultiplier?

readonly optional maxRotationMultiplier?: number

Defined in: src/ships/modules.ts:530

Thruster maximum rotation multiplier, reached at minMass.

Inherited from

OutfittingModuleStats.maxRotationMultiplier


maxSpeedMultiplier?

readonly optional maxSpeedMultiplier?: number

Defined in: src/ships/modules.ts:524

Thruster maximum top-speed multiplier, reached at minMass.

Inherited from

OutfittingModuleStats.maxSpeedMultiplier


minMass?

readonly optional minMass?: number

Defined in: src/ships/modules.ts:510

Minimum mass for the performance curve, in tonnes.

Inherited from

OutfittingModuleStats.minMass


minMultiplier?

readonly optional minMultiplier?: number

Defined in: src/ships/modules.ts:516

Minimum performance multiplier, reached at maxMass.

Inherited from

OutfittingModuleStats.minMultiplier


minRotationMultiplier?

readonly optional minRotationMultiplier?: number

Defined in: src/ships/modules.ts:528

Thruster minimum rotation multiplier, reached at maxMass.

Inherited from

OutfittingModuleStats.minRotationMultiplier


minSpeedMultiplier?

readonly optional minSpeedMultiplier?: number

Defined in: src/ships/modules.ts:522

Thruster minimum top-speed multiplier, reached at maxMass.

Inherited from

OutfittingModuleStats.minSpeedMultiplier


moduleProtection?

readonly optional moduleProtection?: number

Defined in: src/ships/modules.ts:687

Module reinforcement package: the fraction of module damage it absorbs (0.3 = 30%). Protects the modules, not the hull.

Inherited from

OutfittingModuleStats.moduleProtection


mount?

readonly optional mount?: ModuleMount

Defined in: src/ships/modules.ts:349

How the weapon is aimed. Present only on hardpoint weapons that have a mount variant; absent on every other module.

Inherited from

OutfittingModuleIdentity.mount


name

readonly name: string

Defined in: src/ships/modules.ts:333

Stable, descriptive English name, e.g. "Pulse Laser".

Remarks

This is a canonical library label, not a byte-exact copy of the game's localized UI text: abbreviations such as FSD and AFM are expanded for readability. It is not localized and is not suitable as a localization key.

Not unique — the game shows most modules at several sizes and ratings, and every hull's armour shares the same five names. Use OutfittingModule.symbol as the key; getModulesByName returns every match.

Inherited from

OutfittingModuleIdentity.name


optMass?

readonly optional optMass?: number

Defined in: src/ships/modules.ts:508

Optimised mass, in tonnes — thrusters, shield generators, and FSDs.

Inherited from

OutfittingModuleStats.optMass


optMultiplier?

readonly optional optMultiplier?: number

Defined in: src/ships/modules.ts:514

Performance multiplier at optMass — thruster speed or shield strength.

Inherited from

OutfittingModuleStats.optMultiplier


optRotationMultiplier?

readonly optional optRotationMultiplier?: number

Defined in: src/ships/modules.ts:526

Thruster rotation multiplier at optMass, when distinct from acceleration.

Inherited from

OutfittingModuleStats.optRotationMultiplier


optSpeedMultiplier?

readonly optional optSpeedMultiplier?: number

Defined in: src/ships/modules.ts:520

Thruster top-speed multiplier at optMass, when distinct from acceleration.

Inherited from

OutfittingModuleStats.optSpeedMultiplier


powerCapacity?

readonly optional powerCapacity?: number

Defined in: src/ships/modules.ts:590

Power plant: power generated, in megawatts.

Inherited from

OutfittingModuleStats.powerCapacity


powerDraw?

readonly optional powerDraw?: number

Defined in: src/ships/modules.ts:503

Power draw, in megawatts.

Inherited from

OutfittingModuleStats.powerDraw


probeRadius?

readonly optional probeRadius?: number

Defined in: src/ships/modules.ts:725

Detailed Surface Scanner: probe radius, as a percentage (20 = the stock 20%).

Remarks

Frontier stores this one as a percentage rather than a fraction, and the journal reports it that way too — a grade 4 Expanded Probe Scanning Radius roll takes the stock 20 to 28. The journal spells the label DSS_PatchRadius; the blueprint recipe spells it ProbeRadius, and both resolve here.

Inherited from

OutfittingModuleStats.probeRadius


projectileRange?

readonly optional projectileRange?: ProjectileRangeBoundaries

Defined in: src/ships/modules.ts:830

Projectile boundary parameters; these are not effective distances in metres.

Inherited from

OutfittingModuleStats.projectileRange


rateOfFire?

readonly optional rateOfFire?: number

Defined in: src/ships/modules.ts:780

Shots per second with the burst pattern folded in — the journal's RateOfFire.

Remarks

Absent on continuous-fire weapons (beam and mining lasers), whose damage is already per second. Excludes charge and reload time; OutfittingModule.chargeTime is the delay before a shot lands, while OutfittingModule.clipSize and OutfittingModule.reloadTime give the sustained rate.

Inherited from

OutfittingModuleStats.rateOfFire


rating

readonly rating: ModuleRating

Defined in: src/ships/modules.ts:344

The grade letter, AI — the letter in the "5A" the screen shows.

Inherited from

OutfittingModuleIdentity.rating


refuelRate?

readonly optional refuelRate?: number

Defined in: src/ships/modules.ts:608

Fuel scoop: scoop rate, in tonnes per second.

Inherited from

OutfittingModuleStats.refuelRate


reloadTime?

readonly optional reloadTime?: number

Defined in: src/ships/modules.ts:806

Seconds to reload a clip.

Inherited from

OutfittingModuleStats.reloadTime


restrictedToShips?

readonly optional restrictedToShips?: readonly string[]

Defined in: src/ships/modules.ts:397

The hull symbol(s) a module is restricted to, when it is ship-specific — e.g. ["Explorer_NX"] for the Python Mk II's MkII Gravity Optimised thrusters.

Remarks

Present only on the handful of non-armour modules limited to particular hulls. Armour is ship-specific too, but that restriction lives in OutfittingModule.ship / getBulkheadsForShip, not here. Symbols match Ship.symbol.

Inherited from

OutfittingModuleIdentity.restrictedToShips


restrictedToSlot?

readonly optional restrictedToSlot?: SlotRestriction

Defined in: src/ships/modules.ts:442

The slot restriction a module requires — it fits only mounts carrying this SlotRestriction, and no unrestricted mount at all.

Remarks

Not to be confused with OutfittingModule.slot, which names one mount the module fills; this narrows a whole family of them, and the two never appear on the same record.

The mirror image of BuildSlot.restriction, and the other half of the same rule: a mount's restriction says which modules it takes, this says which mounts a module goes in. Most restricted families bind one way only — a cargo rack fits a cargo mount and any unrestricted optional — so this is present on just the five records the game sells for one kind of mount and nowhere else:

Module Requires
Int_PlanetApproachSuite, Int_PlanetApproachSuite_Advanced planetaryApproachSuite
Int_LargeCargoRack_Size7_Class1, Int_LargeCargoRack_Size8_class1 (Mk II Cargo Rack) cargo
Int_MultiDroneControl_MiningV2_Size5_Class5 (Mk II Mining Multi-Limpet Controller) limpetController

It composes with OutfittingModule.restrictedToShips rather than replacing it: the Mk II racks name both the hull that can buy them and the kind of mount they go in, and a build must satisfy both. Where a module names a hull and nothing else — the Mk II Vessel Hangars, say — it fits that hull's ordinary optionals like anything else. As with OutfittingModule.slot, the rule is read off the record rather than the symbol.

Example

import { getModuleBySymbol } from '@elite-dangerous-almanac/core/ships/modules';
import { INTERNAL_MODULES } from '@elite-dangerous-almanac/core/ships/modules-internal';
import { ShipLoadout } from '@elite-dangerous-almanac/core/ships/ship-loadout';

const rack = getModuleBySymbol('Int_LargeCargoRack_Size8_class1', INTERNAL_MODULES)!;
rack.restrictedToSlot; // -> 'cargo'
ShipLoadout.empty('PantherMkII').setModule('Cargo01', rack); // fits
try {
    ShipLoadout.empty('PantherMkII').setModule('Slot01_Size8', rack);
} catch (error) {
    if (error instanceof TypeError) error.message;
    // -> 'ShipLoadout.setModule: Int_LargeCargoRack_Size8_class1 → Slot01_Size8: module only fits a mount that takes cargo racks and fuel tanks'
}

Inherited from

OutfittingModuleIdentity.restrictedToSlot


roundsPerShot?

readonly optional roundsPerShot?: number

Defined in: src/ships/modules.ts:770

Rounds fired per shot, for the weapons that fire several at once (fragment cannons, shard cannons). Absent means one round per shot.

Inherited from

OutfittingModuleStats.roundsPerShot


scanAngle?

readonly optional scanAngle?: number

Defined in: src/ships/modules.ts:712

Scan cone half-angle, in degrees — how far off boresight a target can sit and still be scanned. Wide Angle raises it; Long Range and Lightweight narrow it.

Inherited from

OutfittingModuleStats.scanAngle


scannerRange?

readonly optional scannerRange?: number

Defined in: src/ships/modules.ts:707

Scan range, in metres.

Remarks

On a utility scanner it is the distance the scan reaches. On a core sensor suite it is the range at which a contact with typical emissions resolves — the "typical sensor range" the outfitting panel shows in kilometres and the journal reports in metres, not the suite's absolute detection ceiling.

This is the sole distance field on utility scanners and sensor suites. A journal may spell its modifier ScannerRange or Range; both labels resolve here. Weapon distance is the separate OutfittingModule.maximumRange field.

Inherited from

OutfittingModuleStats.scannerRange


scanTime?

readonly optional scanTime?: number

Defined in: src/ships/modules.ts:714

Seconds a scan takes to complete. Utility scanners only.

Inherited from

OutfittingModuleStats.scanTime


shieldAddition?

readonly optional shieldAddition?: number

Defined in: src/ships/modules.ts:682

Guardian shield reinforcement package: shield megajoules added.

Inherited from

OutfittingModuleStats.shieldAddition


shieldBankDuration?

readonly optional shieldBankDuration?: number

Defined in: src/ships/modules.ts:632

Shield cell bank: seconds one cell keeps reinforcing for.

Inherited from

OutfittingModuleStats.shieldBankDuration


shieldBankHeat?

readonly optional shieldBankHeat?: number

Defined in: src/ships/modules.ts:628

Shield cell bank: waste heat generated by firing one cell.

Inherited from

OutfittingModuleStats.shieldBankHeat


shieldBankReinforcement?

readonly optional shieldBankReinforcement?: number

Defined in: src/ships/modules.ts:626

Shield cell bank: shield megajoules restored per second while a cell runs.

Inherited from

OutfittingModuleStats.shieldBankReinforcement


shieldBankSpinUp?

readonly optional shieldBankSpinUp?: number

Defined in: src/ships/modules.ts:630

Shield cell bank: seconds between firing a cell and the shields starting to rise.

Inherited from

OutfittingModuleStats.shieldBankSpinUp


shieldBoost?

readonly optional shieldBoost?: number

Defined in: src/ships/modules.ts:619

Shield booster: shield strength bonus, as a fraction (0.04 = +4%).

Inherited from

OutfittingModuleStats.shieldBoost


shieldBrokenRegenRate?

readonly optional shieldBrokenRegenRate?: number

Defined in: src/ships/modules.ts:617

Shield generator: broken (down) regeneration rate, MJ per second.

Inherited from

OutfittingModuleStats.shieldBrokenRegenRate


shieldRegenRate?

readonly optional shieldRegenRate?: number

Defined in: src/ships/modules.ts:615

Shield generator: regeneration rate, MJ per second.

Inherited from

OutfittingModuleStats.shieldRegenRate


ship?

readonly optional ship?: string

Defined in: src/ships/modules.ts:360

The hull an armour variant belongs to, e.g. "Anaconda". Present only on the core-category armour modules, which are the one ship-specific module; absent on every generic module.

Inherited from

OutfittingModuleIdentity.ship


shotSpeed?

readonly optional shotSpeed?: number

Defined in: src/ships/modules.ts:841

Projectile speed, in metres per second.

Remarks

Absent on the weapons that have no projectile to speed up — the pulse, burst, beam and mining lasers, rail guns, Gauss cannons and mine launchers all hit (or drop) where they are aimed. No registry publishes a figure for them because there is none, so Long Range and Focused simply leave their shot speed alone; see ShipLoadout.applyBlueprint.

Inherited from

OutfittingModuleStats.shotSpeed


slot?

readonly optional slot?: ModuleSlot

Defined in: src/ships/modules.ts:320

The one fixed mount this module fills, when it fills one: 'armour' or one of the seven CoreSlotType core functions.

Remarks

Present on every core module, and on the fifteen Guardian Hybrid power plants and power distributors — which Frontier files under internal, but which go in a core mount. Absent on everything else, because there is no one mount to name: a weapon, a utility fitting or an ordinary optional internal fits any mount of its kind that is large enough.

This is the module's half of the fit rule and BuildSlot.core is the mount's half; ShipLoadout.setModule matches the two. The rule is read off the record, not off the symbol: Int_Engine_* being thrusters is a naming habit the Python Mk II's Int_MkIIAgileBoost_* already breaks, and a record you assembled yourself without a slot will not go into a core mount at all. Resolve records from a catalogue (getModuleBySymbol) and the question does not arise.

A fuelTank is the one module that fits somewhere else as well: its own core mount and any optional slot large enough.

Example

import { getModuleBySymbol } from '@elite-dangerous-almanac/core/ships/modules';

getModuleBySymbol('Int_Hyperdrive_Size5_Class5')?.slot; // -> 'frameShiftDrive'
getModuleBySymbol('Anaconda_Armour_Grade1')?.slot;      // -> 'armour'
getModuleBySymbol('Int_CargoRack_Size4_Class1')?.slot;  // -> undefined

Inherited from

OutfittingModuleIdentity.slot


supercruiseOvercharge?

readonly optional supercruiseOvercharge?: boolean

Defined in: src/ships/modules.ts:585

Frame shift drive: true on a Supercruise Overcharge drive, the line the outfitting screen labels SCO.

Remarks

A sparse capability flag on the 36 Overcharge drives and absent everywhere else, including on the 36 ordinary drives of the same sizes and ratings. Read it rather than matching Int_Hyperdrive_Overcharge on the symbol: the capability is the record's to state, and a pre-engineered or fitted article carries the flag through while its symbol is not always the one you looked up.

The two lines share every jump constant this library models, so the flag changes no calculation here; it is what an outfitting list filters and labels on. The overcharged supercruise behaviour itself — the boosted acceleration and the extra fuel it burns — is in-flight behaviour the game publishes no figures for, and the library models none of it.

Example

import { getModuleBySymbol } from '@elite-dangerous-almanac/core/ships/modules';

getModuleBySymbol('Int_Hyperdrive_Overcharge_Size5_Class5')?.supercruiseOvercharge; // -> true
getModuleBySymbol('Int_Hyperdrive_Size5_Class5')?.supercruiseOvercharge; // -> undefined

Inherited from

OutfittingModuleStats.supercruiseOvercharge


symbol

readonly symbol: string

Defined in: src/ships/modules.ts:256

Internal identifier, e.g. "Hpt_PulseLaser_Fixed_Small". Unique — the module's key.

Inherited from

OutfittingModuleIdentity.symbol


systemsCapacity?

readonly optional systemsCapacity?: number

Defined in: src/ships/modules.ts:603

Power distributor: SYS capacitor capacity.

Inherited from

OutfittingModuleStats.systemsCapacity


systemsRecharge?

readonly optional systemsRecharge?: number

Defined in: src/ships/modules.ts:605

Power distributor: maximum SYS recharge at four pips, in megajoules per second.

Inherited from

OutfittingModuleStats.systemsRecharge


thermalLoad?

readonly optional thermalLoad?: number

Defined in: src/ships/modules.ts:816

Heat generated — per shot, or per second on a continuous-fire weapon.

Inherited from

OutfittingModuleStats.thermalLoad


thermalResistance?

readonly optional thermalResistance?: number

Defined in: src/ships/modules.ts:643

Thermal resistance, as a fraction (negative is a weakness).

Inherited from

OutfittingModuleStats.thermalResistance


weaponsCapacity?

readonly optional weaponsCapacity?: number

Defined in: src/ships/modules.ts:595

Power distributor: WEP capacitor capacity.

Inherited from

OutfittingModuleStats.weaponsCapacity


weaponsRecharge?

readonly optional weaponsRecharge?: number

Defined in: src/ships/modules.ts:597

Power distributor: maximum WEP recharge at four pips, in megajoules per second.

Inherited from

OutfittingModuleStats.weaponsRecharge

API

Guides
astro
Classes (1)
ProceduralSystem

Properties

Accessors

Methods

Interfaces (16)
Type Aliases (3)
Variables (11)
Functions (37)
Subpath modules (3)
commodities
Interfaces (1)
Type Aliases (1)
Variables (3)
Functions (3)
equipment
Interfaces (6)
Type Aliases (8)
Variables (3)
Functions (10)
Subpath modules (2)
i18n
Interfaces (1)
Type Aliases (1)
Functions (17)
materials
Enumerations (2)
Interfaces (2)
Type Aliases (2)
Variables (9)
Functions (9)
ships
Classes (3)
BuildMetrics

Methods

LoadoutEditError

Constructors

Properties

Methods

ShipLoadout

Accessors

Methods

Interfaces (125)
Type Aliases (44)
Variables (10)
Functions (85)
Subpath modules (8)

Clone this wiki locally