Skip to content

DotNet.Ships.Record.OutfittingModule

github-actions[bot] edited this page Sep 20, 2026 · 11 revisions

EliteDangerousAlmanac / Ships / OutfittingModule

Record: OutfittingModule

Defined in: dotnet/src/EliteDangerousAlmanac/Ships/OutfittingModule.cs:117

One fittable outfitting module: its identity and its sparse stats.

Remarks

The identity fields say what the module is and where it goes. The stats say what it does, and only the ones the module's family uses are present — read them through Stats.

Identity comes primarily from EDCD FDevIDs and the stats from EDCD coriolis-data and EDSY, joined on the symbol. See data/ships/SOURCES.md for provenance and ATTRIBUTIONS.md for credit.

Constructors

new OutfittingModule()

new OutfittingModule(Symbol, Category, EngineeringGroup, FamilyId, Slot, Name, Class, Rating, Mount, Guidance, Ship, Entitlement, GrantOnly, RestrictedToShips, RestrictedToSlot, ExclusionGroup, LimitGroup, LimitIncrease, Cost, Stats, DamageDistribution?, DamageComponents?, ProjectileRange?, SupercruiseOvercharge?, GuardianZoneResistance?, AlwaysPowered?, EngineeringLocked?)

Parameters

Symbol

string

The internal identifier, such as Hpt_PulseLaser_Fixed_Small. It is unique across every category, and it is the module's key.

Category

ModuleCategory

Which kind of slot the module fits. It comes from the catalogue the record was read from, so it always agrees with where you found the module.

EngineeringGroup

EngineeringGroupId?

The stable engineering menu this stock module offers, or null when it has no ordinary engineering menu.

FamilyId

OutfittingFamilyId

The stable outfitting family an outfitting list groups by. Every record carries one, core modules included, and closely related variants share it.

Slot

ModuleSlot?

The one fixed mount this module fills, when it fills one. Present on every core module and on the Guardian hybrid power plants and distributors, which Frontier files under the internal category but which go in a core mount. Absent on everything else, because a weapon, a utility fitting or an ordinary optional internal fits any mount of its kind that is large enough. A fuel tank is the one module that fits somewhere else as well: its own core mount and any optional slot large enough.

Name

string

The stable, descriptive English name, such as Pulse Laser. This is a canonical library label rather than a byte-exact copy of the game's localized text: abbreviations are expanded for readability. It is not unique — the game shows most modules at several sizes and ratings, and every hull's armour shares the same five names.

Class

int

The module size, 0 to 8 — the number in the "5A" an outfitting screen shows. Frontier calls it the module class, and it is the slot-size number rather than the grade letter.

Rating

ModuleRating

The grade letter — the letter in the "5A" an outfitting screen shows.

Mount

ModuleMount?

How the weapon is aimed, on a hardpoint weapon that has a mount variant.

Guidance

ModuleGuidance?

A missile or torpedo launcher's guidance.

Ship

string?

The hull an armour variant belongs to. Present only on the armour modules, which are the one ship-specific module.

Entitlement

string?

Frontier's purchase-grant token, on a gated module.

GrantOnly

bool

true on an article that arrives granted, with a hull or with a bundle, and that no outfitting screen sells. Each is a second identity for an article the game already sells, which is why a module picker leaves them out — but they are real fitted articles, so every lookup still resolves one. It is not a price: the cost is missing on these and also on articles that are sold and unpriced by every registry.

RestrictedToShips

IReadOnlyList<string>?

The hulls a ship-specific module is limited to. Present only on the handful of non-armour modules with such a limit; armour states its hull separately.

RestrictedToSlot

SlotRestriction?

The slot restriction this module requires: it fits only mounts carrying that restriction, and no unrestricted mount at all. It is the mirror image of a mount's own restriction, and the other half of the same rule. 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 records the game sells for one kind of mount and nowhere else.

ExclusionGroup

ModuleExclusionGroup?

The one-per-ship family, when the module has an exclusive fitting rule. Two fitted modules sharing this are structurally invalid.

LimitGroup

ModuleLimitGroup?

The per-ship count limit this fitted module consumes, when it consumes one.

LimitIncrease

ModuleLimitIncrease?

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

Cost

long?

The standard purchase price, in credits, before any station discount or markup. Absent on the handful of records no registry prices. Treat an absent price as unknown, never as free.

Stats

ModuleStats

The sparse performance and capability stats this module carries.

DamageDistribution

DamageDistribution? = null

How the weapon's damage splits across the damage types.

DamageComponents

DamageComponents? = null

Exact damage amounts, where in-game verification exposes distinct components.

ProjectileRange

ProjectileRangeBoundaries? = null

Projectile boundary parameters, which are not effective distances.

SupercruiseOvercharge

bool = false

true on a Supercruise Overcharge drive, the line an outfitting screen labels SCO. The two lines share every jump constant this library models, so the flag changes no jump calculation; it is what an outfitting list filters and labels on, and it is what makes a drive unfittable below its own size — an SCO drive takes the mount of its own class and no larger one, where an ordinary drive may be underfitted.

GuardianZoneResistance

bool = false

true when Anti-Guardian Zone Resistance protects this Guardian module from a Thargoid anti-Guardian field, either inherently or because the grade-1 blueprint grants it.

AlwaysPowered

bool = false

true when a hardpoint-mounted module draws its power continuously. 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.

EngineeringLocked

bool = false

true when this particular resolved article accepts no further engineering. A stock catalogue record never carries it; a final pre-engineered Guardian weapon does, so a fitted article exposes an empty engineering menu and refuses both blueprints and experimental effects.

Properties

AlwaysPowered

AlwaysPowered: bool

true when a hardpoint-mounted module draws its power continuously. 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.

Category

Category: ModuleCategory

Which kind of slot the module fits. It comes from the catalogue the record was read from, so it always agrees with where you found the module.

Class

Class: int

The module size, 0 to 8 — the number in the "5A" an outfitting screen shows. Frontier calls it the module class, and it is the slot-size number rather than the grade letter.

Cost

Cost: long?

The standard purchase price, in credits, before any station discount or markup. Absent on the handful of records no registry prices. Treat an absent price as unknown, never as free.

DamageComponents

DamageComponents: DamageComponents?

Exact damage amounts, where in-game verification exposes distinct components.

DamageDistribution

DamageDistribution: DamageDistribution?

How the weapon's damage splits across the damage types.

EngineeringGroup

EngineeringGroup: EngineeringGroupId?

The stable engineering menu this stock module offers, or null when it has no ordinary engineering menu.

EngineeringLocked

EngineeringLocked: bool

true when this particular resolved article accepts no further engineering. A stock catalogue record never carries it; a final pre-engineered Guardian weapon does, so a fitted article exposes an empty engineering menu and refuses both blueprints and experimental effects.

Entitlement

Entitlement: string?

Frontier's purchase-grant token, on a gated module.

ExclusionGroup

ExclusionGroup: ModuleExclusionGroup?

The one-per-ship family, when the module has an exclusive fitting rule. Two fitted modules sharing this are structurally invalid.

FamilyId

FamilyId: OutfittingFamilyId

The stable outfitting family an outfitting list groups by. Every record carries one, core modules included, and closely related variants share it.

GrantOnly

GrantOnly: bool

true on an article that arrives granted, with a hull or with a bundle, and that no outfitting screen sells. Each is a second identity for an article the game already sells, which is why a module picker leaves them out — but they are real fitted articles, so every lookup still resolves one. It is not a price: the cost is missing on these and also on articles that are sold and unpriced by every registry.

GuardianZoneResistance

GuardianZoneResistance: bool

true when Anti-Guardian Zone Resistance protects this Guardian module from a Thargoid anti-Guardian field, either inherently or because the grade-1 blueprint grants it.

Guidance

Guidance: ModuleGuidance?

A missile or torpedo launcher's guidance.

LimitGroup

LimitGroup: ModuleLimitGroup?

The per-ship count limit this fitted module consumes, when it consumes one.

LimitIncrease

LimitIncrease: ModuleLimitIncrease?

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

Mount

Mount: ModuleMount?

How the weapon is aimed, on a hardpoint weapon that has a mount variant.

Name

Name: string

The stable, descriptive English name, such as Pulse Laser. This is a canonical library label rather than a byte-exact copy of the game's localized text: abbreviations are expanded for readability. It is not unique — the game shows most modules at several sizes and ratings, and every hull's armour shares the same five names.

ProjectileRange

ProjectileRange: ProjectileRangeBoundaries?

Projectile boundary parameters, which are not effective distances.

Rating

Rating: ModuleRating

The grade letter — the letter in the "5A" an outfitting screen shows.

RestrictedToShips

RestrictedToShips: IReadOnlyList<string>?

The hulls a ship-specific module is limited to. Present only on the handful of non-armour modules with such a limit; armour states its hull separately.

RestrictedToSlot

RestrictedToSlot: SlotRestriction?

The slot restriction this module requires: it fits only mounts carrying that restriction, and no unrestricted mount at all. It is the mirror image of a mount's own restriction, and the other half of the same rule. 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 records the game sells for one kind of mount and nowhere else.

Ship

Ship: string?

The hull an armour variant belongs to. Present only on the armour modules, which are the one ship-specific module.

Slot

Slot: ModuleSlot?

The one fixed mount this module fills, when it fills one. Present on every core module and on the Guardian hybrid power plants and distributors, which Frontier files under the internal category but which go in a core mount. Absent on everything else, because a weapon, a utility fitting or an ordinary optional internal fits any mount of its kind that is large enough. A fuel tank is the one module that fits somewhere else as well: its own core mount and any optional slot large enough.

Stats

Stats: ModuleStats

The sparse performance and capability stats this module carries.

SupercruiseOvercharge

SupercruiseOvercharge: bool

true on a Supercruise Overcharge drive, the line an outfitting screen labels SCO. The two lines share every jump constant this library models, so the flag changes no jump calculation; it is what an outfitting list filters and labels on, and it is what makes a drive unfittable below its own size — an SCO drive takes the mount of its own class and no larger one, where an ordinary drive may be underfitted.

Symbol

Symbol: string

The internal identifier, such as Hpt_PulseLaser_Fixed_Small. It is unique across every category, and it is the module's key.

.NET

Guides
Astronomy
Classes (16)
Records (29)
Enumerations (6)
Commodities
Classes (2)
Records (1)
Enumerations (1)
Equipment
Classes (8)
Records (19)
Enumerations (8)
GalaxyMap
Classes (1)
Records (1)
Localization
Classes (2)
Enumerations (1)
Materials
Classes (5)
Records (2)
Enumerations (4)
Ships
Classes (42)
Records (115)
Interfaces (1)
Enumerations (35)

Clone this wiki locally