Skip to content

ships.Interface.OutfittingModule

github-actions[bot] edited this page Aug 13, 2026 · 74 revisions

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

Interface: OutfittingModule

Defined in: ships/modules.ts:735

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: ships/modules.ts:619

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: ships/modules.ts:676

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: ships/modules.ts:693

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: ships/modules.ts:415

Boot time from power-on, in seconds.

Inherited from

OutfittingModuleStats.bootTime


burstInterval?

readonly optional burstInterval?: number

Defined in: ships/modules.ts:654

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

Inherited from

OutfittingModuleStats.burstInterval


burstRateOfFire?

readonly optional burstRateOfFire?: number

Defined in: ships/modules.ts:658

Shots per second within a burst.

Inherited from

OutfittingModuleStats.burstRateOfFire


burstRounds?

readonly optional burstRounds?: number

Defined in: ships/modules.ts:656

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: ships/modules.ts:484

Cargo rack: capacity, in tonnes.

Inherited from

OutfittingModuleStats.cargoCapacity


category

readonly category: ModuleCategory

Defined in: ships/modules.ts:225

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: ships/modules.ts:519

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

Inherited from

OutfittingModuleStats.causticResistance


chargeTime?

readonly optional chargeTime?: number

Defined in: ships/modules.ts:660

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

Inherited from

OutfittingModuleStats.chargeTime


class

readonly class: number

Defined in: ships/modules.ts:288

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: ships/modules.ts:669

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: ships/modules.ts:384

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: ships/modules.ts:629

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

Inherited from

OutfittingModuleStats.damage


damageComponents?

readonly optional damageComponents?: DamageComponents

Defined in: ships/modules.ts:637

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: ships/modules.ts:631

How damage splits across the damage types.

Inherited from

OutfittingModuleStats.damageDistribution


distributorDraw?

readonly optional distributorDraw?: number

Defined in: ships/modules.ts:686

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: ships/modules.ts:230

Stable engineering-menu family, or null when no source classifies this module. See EngineeringGroupId.

Inherited from

OutfittingModuleIdentity.engineeringGroup


engineeringLocked?

readonly optional engineeringLocked?: boolean

Defined in: ships/modules.ts:539

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: ships/modules.ts:438

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: ships/modules.ts:471

Power distributor: ENG capacitor capacity.

Inherited from

OutfittingModuleStats.enginesCapacity


enginesRecharge?

readonly optional enginesRecharge?: number

Defined in: ships/modules.ts:473

Power distributor: ENG recharge rate, per second.

Inherited from

OutfittingModuleStats.enginesRecharge


entitlement?

readonly optional entitlement?: string

Defined in: ships/modules.ts:311

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

Inherited from

OutfittingModuleIdentity.entitlement


explosiveResistance?

readonly optional explosiveResistance?: number

Defined in: ships/modules.ts:517

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

Inherited from

OutfittingModuleStats.explosiveResistance


falloffRange?

readonly optional falloffRange?: number

Defined in: ships/modules.ts:700

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

Inherited from

OutfittingModuleStats.falloffRange


fsdHeatRate?

readonly optional fsdHeatRate?: number

Defined in: ships/modules.ts:457

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: ships/modules.ts:482

Fuel tank: capacity, in tonnes.

Inherited from

OutfittingModuleStats.fuelCapacity


fuelMul?

readonly optional fuelMul?: number

Defined in: ships/modules.ts:443

FSD: rating (linear) fuel constant.

Inherited from

OutfittingModuleStats.fuelMul


fuelPower?

readonly optional fuelPower?: number

Defined in: ships/modules.ts:445

FSD: size (power) fuel constant.

Inherited from

OutfittingModuleStats.fuelPower


guardianZoneResistance?

readonly optional guardianZoneResistance?: boolean

Defined in: ships/modules.ts:530

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: ships/modules.ts:300

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: ships/modules.ts:464

Power plant: heat efficiency (lower runs cooler).

Inherited from

OutfittingModuleStats.heatEfficiency


hullBoost?

readonly optional hullBoost?: number

Defined in: ships/modules.ts:550

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: ships/modules.ts:552

Hull reinforcement package: hull hit points added.

Inherited from

OutfittingModuleStats.hullReinforcement


integrity?

readonly optional integrity?: number

Defined in: ships/modules.ts:411

Integrity (hit points against module damage).

Inherited from

OutfittingModuleStats.integrity


interdictorFacingLimit?

readonly optional interdictorFacingLimit?: number

Defined in: ships/modules.ts:602

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

Inherited from

OutfittingModuleStats.interdictorFacingLimit


interdictorRange?

readonly optional interdictorRange?: number

Defined in: ships/modules.ts:607

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: ships/modules.ts:715

Maximum aim deviation, in degrees.

Inherited from

OutfittingModuleStats.jitter


jumpBoost?

readonly optional jumpBoost?: number

Defined in: ships/modules.ts:459

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

Inherited from

OutfittingModuleStats.jumpBoost


kineticResistance?

readonly optional kineticResistance?: number

Defined in: ships/modules.ts:513

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

Inherited from

OutfittingModuleStats.kineticResistance


mass?

readonly optional mass?: number

Defined in: ships/modules.ts:409

Mass, in tonnes.

Inherited from

OutfittingModuleStats.mass


maxFuel?

readonly optional maxFuel?: number

Defined in: ships/modules.ts:441

FSD: maximum fuel per jump, in tonnes.

Inherited from

OutfittingModuleStats.maxFuel


maximumRange?

readonly optional maximumRange?: number

Defined in: ships/modules.ts:698

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: ships/modules.ts:422

Maximum mass for the performance curve, in tonnes.

Inherited from

OutfittingModuleStats.maxMass


maxMultiplier?

readonly optional maxMultiplier?: number

Defined in: ships/modules.ts:428

Maximum performance multiplier, reached at minMass.

Inherited from

OutfittingModuleStats.maxMultiplier


minMass?

readonly optional minMass?: number

Defined in: ships/modules.ts:420

Minimum mass for the performance curve, in tonnes.

Inherited from

OutfittingModuleStats.minMass


minMultiplier?

readonly optional minMultiplier?: number

Defined in: ships/modules.ts:426

Minimum performance multiplier, reached at maxMass.

Inherited from

OutfittingModuleStats.minMultiplier


moduleProtection?

readonly optional moduleProtection?: number

Defined in: ships/modules.ts:559

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: ships/modules.ts:295

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: ships/modules.ts:279

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: ships/modules.ts:418

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

Inherited from

OutfittingModuleStats.optMass


optMultiplier?

readonly optional optMultiplier?: number

Defined in: ships/modules.ts:424

Performance multiplier at optMass — thruster speed or shield strength.

Inherited from

OutfittingModuleStats.optMultiplier


powerCapacity?

readonly optional powerCapacity?: number

Defined in: ships/modules.ts:462

Power plant: power generated, in megawatts.

Inherited from

OutfittingModuleStats.powerCapacity


powerDraw?

readonly optional powerDraw?: number

Defined in: ships/modules.ts:413

Power draw, in megawatts.

Inherited from

OutfittingModuleStats.powerDraw


probeRadius?

readonly optional probeRadius?: number

Defined in: ships/modules.ts:597

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: ships/modules.ts:702

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

Inherited from

OutfittingModuleStats.projectileRange


rateOfFire?

readonly optional rateOfFire?: number

Defined in: ships/modules.ts:652

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: ships/modules.ts:290

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

Inherited from

OutfittingModuleIdentity.rating


refuelRate?

readonly optional refuelRate?: number

Defined in: ships/modules.ts:480

Fuel scoop: scoop rate, in tonnes per second.

Inherited from

OutfittingModuleStats.refuelRate


reloadTime?

readonly optional reloadTime?: number

Defined in: ships/modules.ts:678

Seconds to reload a clip.

Inherited from

OutfittingModuleStats.reloadTime


restrictedToShips?

readonly optional restrictedToShips?: readonly string[]

Defined in: ships/modules.ts:323

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: ships/modules.ts:372

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.

The rule is read off the record, not off the symbol. A module you assemble yourself — from a journal Item string, say — is refused only if you give it this field, exactly as restrictedToShips behaves. Resolve records from a catalogue and the question does not arise.

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: ships/modules.ts:642

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: ships/modules.ts:584

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: ships/modules.ts:579

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: ships/modules.ts:586

Seconds a scan takes to complete. Utility scanners only.

Inherited from

OutfittingModuleStats.scanTime


shieldAddition?

readonly optional shieldAddition?: number

Defined in: ships/modules.ts:554

Guardian shield reinforcement package: shield megajoules added.

Inherited from

OutfittingModuleStats.shieldAddition


shieldBankDuration?

readonly optional shieldBankDuration?: number

Defined in: ships/modules.ts:504

Shield cell bank: seconds one cell keeps reinforcing for.

Inherited from

OutfittingModuleStats.shieldBankDuration


shieldBankHeat?

readonly optional shieldBankHeat?: number

Defined in: ships/modules.ts:500

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

Inherited from

OutfittingModuleStats.shieldBankHeat


shieldBankReinforcement?

readonly optional shieldBankReinforcement?: number

Defined in: ships/modules.ts:498

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

Inherited from

OutfittingModuleStats.shieldBankReinforcement


shieldBankSpinUp?

readonly optional shieldBankSpinUp?: number

Defined in: ships/modules.ts:502

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: ships/modules.ts:491

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

Inherited from

OutfittingModuleStats.shieldBoost


shieldBrokenRegenRate?

readonly optional shieldBrokenRegenRate?: number

Defined in: ships/modules.ts:489

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

Inherited from

OutfittingModuleStats.shieldBrokenRegenRate


shieldRegenRate?

readonly optional shieldRegenRate?: number

Defined in: ships/modules.ts:487

Shield generator: regeneration rate, MJ per second.

Inherited from

OutfittingModuleStats.shieldRegenRate


ship?

readonly optional ship?: string

Defined in: ships/modules.ts:306

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: ships/modules.ts:713

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: ships/modules.ts:266

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. Read it rather than inferring a mount from the symbol — Int_Engine_* being thrusters is a naming habit, not a guarantee, and the Python Mk II's Int_MkIIAgileBoost_* thrusters already break it.

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

The rule is read off the record, not off the symbol — the same way OutfittingModule.restrictedToShips behaves, and with the same consequence: a record you assemble yourself from a journal Item string, with no slot on it, will not go into a core mount. Resolve records from a catalogue (getModuleBySymbol) and the question does not arise.

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


symbol

readonly symbol: string

Defined in: ships/modules.ts:213

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

Inherited from

OutfittingModuleIdentity.symbol


systemsCapacity?

readonly optional systemsCapacity?: number

Defined in: ships/modules.ts:475

Power distributor: SYS capacitor capacity.

Inherited from

OutfittingModuleStats.systemsCapacity


systemsRecharge?

readonly optional systemsRecharge?: number

Defined in: ships/modules.ts:477

Power distributor: SYS recharge rate, per second.

Inherited from

OutfittingModuleStats.systemsRecharge


thermalLoad?

readonly optional thermalLoad?: number

Defined in: ships/modules.ts:688

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

Inherited from

OutfittingModuleStats.thermalLoad


thermalResistance?

readonly optional thermalResistance?: number

Defined in: ships/modules.ts:515

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

Inherited from

OutfittingModuleStats.thermalResistance


weaponsCapacity?

readonly optional weaponsCapacity?: number

Defined in: ships/modules.ts:467

Power distributor: WEP capacitor capacity.

Inherited from

OutfittingModuleStats.weaponsCapacity


weaponsRecharge?

readonly optional weaponsRecharge?: number

Defined in: ships/modules.ts:469

Power distributor: WEP recharge rate, 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