Skip to content

ships.TypeAlias.LoadoutImportOutcome

github-actions[bot] edited this page Aug 29, 2026 · 1 revision

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

Type Alias: LoadoutImportOutcome

LoadoutImportOutcome = { action: "emptied"; slot: string; sourceSymbol: string; } | { action: "defaulted"; replacementSymbol: string; slot: string; sourceSymbol: string | null; } | { action: "unresolvedEngineering"; blueprintSymbol: string; slot: string; sourceSymbol: string; } | { action: "ambiguousEngineering"; blueprintSymbol: string; preEngineeredVariant: PreEngineeredVariant; slot: string; sourceSymbol: string; } | { action: "rerolledEngineering"; blueprintSymbol: string; slot: string; sourceSymbol: string; }

Defined in: src/ships/loadout-import-outcome.ts:32

A change made while normalizing a journal or SLEF loadout against the catalogues.

Union Members

Type Literal

{ action: "emptied"; slot: string; sourceSymbol: string; }

action

readonly action: "emptied"

The unresolved module was removed because no stock replacement applies.

slot

readonly slot: string

Exact slot spelling used by the imported build.

sourceSymbol

readonly sourceSymbol: string

Unresolved module identity supplied by the source.


Type Literal

{ action: "defaulted"; replacementSymbol: string; slot: string; sourceSymbol: string | null; }

action

readonly action: "defaulted"

The hull's stock module was installed in a fixed mount.

replacementSymbol

readonly replacementSymbol: string

Stock module identity installed in the mount.

slot

readonly slot: string

Exact slot spelling used by the normalized build.

sourceSymbol

readonly sourceSymbol: string | null

Source identity the mount refused, or null when the mount was absent.


Type Literal

{ action: "unresolvedEngineering"; blueprintSymbol: string; slot: string; sourceSymbol: string; }

action

readonly action: "unresolvedEngineering"

The source stated engineering with no Modifiers, and what it named could not be rolled — an unknown or unoffered blueprint or experimental effect, a grade or quality outside the recipe, or a base stat the catalogues do not carry — so this module's figures are the unengineered ones.

blueprintSymbol

readonly blueprintSymbol: string

Recipe the source named, in its own spelling.

slot

readonly slot: string

Exact slot spelling used by the imported build.

sourceSymbol

readonly sourceSymbol: string

Module identity the recipe was stated for.


Type Literal

{ action: "ambiguousEngineering"; blueprintSymbol: string; preEngineeredVariant: PreEngineeredVariant; slot: string; sourceSymbol: string; }

action

readonly action: "ambiguousEngineering"

The source stated a recipe and no Modifiers, and both readings of that identity are legitimate: the module's own engineering menu offers the recipe, and a catalogued fixed article carries the same blueprint at the same grade and effect. The roll was fitted, because that is what nearly every such block is; preEngineeredVariant is the article passed over.

blueprintSymbol

readonly blueprintSymbol: string

Recipe the source named, in its own spelling.

preEngineeredVariant

readonly preEngineeredVariant: PreEngineeredVariant

The catalogued article the same block equally describes. Pass it to ShipLoadout.setPreEngineeredVariant to take that reading instead.

slot

readonly slot: string

Exact slot spelling used by the imported build.

sourceSymbol

readonly sourceSymbol: string

Module identity the recipe was stated for.


Type Literal

{ action: "rerolledEngineering"; blueprintSymbol: string; slot: string; sourceSymbol: string; }

action

readonly action: "rerolledEngineering"

The source stated Modifiers that move no stat this module has — an empty array, or labels the catalogues model nothing for — and identified no catalogued article, so the module would have published unengineered figures while reporting that it is engineered. The recipe stated beside them was rolled at the stated grade and quality in their place, and the source's own modifier block is gone from the build.

blueprintSymbol

readonly blueprintSymbol: string

Recipe the source named, in its own spelling.

slot

readonly slot: string

Exact slot spelling used by the imported build.

sourceSymbol

readonly sourceSymbol: string

Module identity the recipe was stated for.

Remarks

ShipLoadout.fromLoadout states the rules these outcomes report: a removable mount is emptied of an article the catalogue cannot resolve, and a fixed mount is defaulted to the hull's stock article whenever the source left none it can hold — with a null sourceSymbol when the source named nothing there at all. A module whose source stated a recipe and no Modifiers reports unresolvedEngineering when neither a craftable recipe nor a catalogued article answers to what it named, because that module alone keeps the figures of an unengineered one. Two further entries report a reading the import chose rather than a change it made: ambiguousEngineering where an identity-only block was rolled while a catalogued article answers to it just as well, and rerolledEngineering where a stated modifier block moved nothing the module has and the recipe beside it was rolled in its place.

Example

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

const build = ShipLoadout.fromLoadout({
  Ship: 'SideWinder',
  Modules: [{ Slot: 'SmallHardpoint1', Item: 'FutureWeapon' }],
});

build.importOutcomes.find((outcome) => outcome.slot === 'SmallHardpoint1')?.action;
// -> 'emptied'

API

Guides
astro
Classes (1)
ProceduralSystem

Properties

Accessors

Methods

Interfaces (28)
Type Aliases (6)
Variables (22)
Functions (57)
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