Skip to content
Next — unreleased

Defined in: packages/sage/src/combat/index.ts:169

Immutable Game combat configuration and stimulant catalog.

declare const configuration: CombatConfigurationSnapshot;
console.log(configuration.globalCeasefire, configuration.maxFleetSize);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:174

readonly cargoRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:261

GameCombatConfigurationData.cargoRespawnTimeSeconds

readonly crewRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:260

GameCombatConfigurationData.crewRespawnTimeSeconds

readonly globalCeasefire: boolean;

Defined in: packages/sage/src/internal/c4/game.ts:255

GameCombatConfigurationData.globalCeasefire

readonly interactionRange: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:256

GameCombatConfigurationData.interactionRange

readonly kind: "combatConfiguration";

Defined in: packages/sage/src/combat/index.ts:173

readonly lootExclusivityTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:257

GameCombatConfigurationData.lootExclusivityTimeSeconds

readonly maxFleetSize: number;

Defined in: packages/sage/src/internal/c4/game.ts:263

GameCombatConfigurationData.maxFleetSize

readonly maxLootRate: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:258

GameCombatConfigurationData.maxLootRate

readonly rawShipsRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:262

GameCombatConfigurationData.rawShipsRespawnTimeSeconds

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:259

GameCombatConfigurationData.starbaseUpgradeProgressContinuation

readonly stimulantDefinitions: {
definitions: readonly CombatStimulantDefinition[];
sequenceId: number;
};

Defined in: packages/sage/src/combat/index.ts:175

readonly definitions: readonly CombatStimulantDefinition[];
readonly sequenceId: number;

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:179

unknown


Defined in: packages/sage/src/combat/index.ts:157

One cargo-backed combat stimulant definition.

declare const stimulant: CombatStimulantDefinition;
console.log(stimulant.cargo.name, stimulant.effects.length);

readonly cargo: CargoDefinitionSummary;

Defined in: packages/sage/src/combat/index.ts:158

readonly effects: readonly GameStimulantEffectData[];

Defined in: packages/sage/src/combat/index.ts:159


Defined in: packages/sage/src/internal/c4/fleet.ts:212

Translated Fleet combat statistics.

declare const stats: FleetCombatStatsData;
const hitPoints = stats.hp;

readonly aimAbility: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:264

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly ammoConsumptionRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:216

readonly ap: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:213

readonly apRegenRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:217

readonly counterDecoy: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:250

readonly counterEnergyCapacitor: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:251

readonly counterFaradayShielding: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:258

readonly counterFireSuppressor: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:252

readonly counterFlare: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:253

readonly counterHealingNanobots: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:254

readonly counterMine: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:255

readonly counterNegativeRemPlating: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:256

readonly counterWarmingPlates: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:257

readonly critChance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:266

U26F6 fixed-point critical-hit value; no probability or percentage interpretation is implied.

readonly critMultiplier: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:268

U26F6 fixed-point critical multiplier.

readonly damageBomb: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:247

readonly damageBombVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:249

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageEmp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:232

readonly damageEmpVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:234

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageEnergy: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:229

readonly damageEnergyVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:231

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageGraygoo: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:241

readonly damageGraygooVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:243

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageHeat: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:244

readonly damageHeatVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:246

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageKinetic: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:226

readonly damageKineticVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:228

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageShockwave: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:238

readonly damageShockwaveVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:240

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly damageSuperchill: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:235

readonly damageSuperchillVariance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:237

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly fuelConsumptionRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:270

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly hitChance: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:262

U26F6 fixed-point hit value; no probability or percentage interpretation is implied.

readonly hp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:214

readonly lootRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:223

readonly missileDamage: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:272

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly missileFireRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:274

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly repairAbility: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:220

readonly repairCost: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:222

readonly repairEfficiency: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:221

readonly repairRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:219

readonly shieldBreakDelaySeconds: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:224

readonly shieldRechargeRate: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:218

readonly sp: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:215

readonly stealthPower: FleetFixedValue;

Defined in: packages/sage/src/internal/c4/fleet.ts:260

U26F6 fixed-point client display value; exact encoded integer retained in raw.

readonly warpSpoolTimeSeconds: number;

Defined in: packages/sage/src/internal/c4/fleet.ts:225


Defined in: packages/sage/src/combat/index.ts:192

Immutable focused combat projection of one Fleet.

declare const status: FleetCombatStatusSnapshot;
console.log(
status.current.abilityPowerPoints,
status.timing.abilityPowerReloadAtUnixSeconds,
);

readonly current: {
abilityPowerPoints: number;
hullPoints: number;
pendingHullPoints: number;
shieldPoints: number;
};

Defined in: packages/sage/src/combat/index.ts:200

readonly abilityPowerPoints: number;
readonly hullPoints: number;
readonly pendingHullPoints: number;
readonly shieldPoints: number;

readonly faction: CombatFaction;

Defined in: packages/sage/src/combat/index.ts:196

readonly fleet: EntityRef<"fleet">;

Defined in: packages/sage/src/combat/index.ts:194

readonly kind: "fleetCombatStatus";

Defined in: packages/sage/src/combat/index.ts:193

readonly ownerProfile: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:195

readonly participant:
| {
kind: "player";
}
| {
factionId: number;
kind: "npc";
};

Defined in: packages/sage/src/combat/index.ts:197

readonly stance: {
ammoUsage: "none" | "light" | "heavy";
};

Defined in: packages/sage/src/combat/index.ts:206

readonly ammoUsage: "none" | "light" | "heavy";

readonly stats: FleetCombatStatsData;

Defined in: packages/sage/src/combat/index.ts:217

readonly stimulants: readonly {
chargesRemaining: number;
deltaBps: number;
stat: | "damageKinetic"
| "damageEnergy"
| "damageEmp"
| "damageSuperchill"
| "damageShockwave"
| "damageGraygoo"
| "damageHeat"
| "counterFlare"
| "counterEnergyCapacitor"
| "counterFaradayShielding"
| "counterWarmingPlates"
| "counterNegativeRemPlating"
| "counterHealingNanobots"
| "counterFireSuppressor"
| "hitChance"
| "aimAbility"
| "critChance"
| "critMultiplier"
| "stealthPower";
}[];

Defined in: packages/sage/src/combat/index.ts:212

readonly timing: {
abilityPowerReloadAtUnixSeconds: bigint;
lastCombatUpdateAtUnixSeconds: bigint;
shieldBreakDelayEndsAtUnixSeconds: bigint;
};

Defined in: packages/sage/src/combat/index.ts:207

readonly abilityPowerReloadAtUnixSeconds: bigint;
readonly lastCombatUpdateAtUnixSeconds: bigint;
readonly shieldBreakDelayEndsAtUnixSeconds: bigint;

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:218

unknown


Defined in: packages/sage/src/internal/c4/game.ts:254

Translated Game combat configuration before cargo resolution.

declare const configuration: GameCombatConfigurationData;
console.log(configuration.maxFleetSize);

readonly cargoRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:261

readonly crewRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:260

readonly globalCeasefire: boolean;

Defined in: packages/sage/src/internal/c4/game.ts:255

readonly interactionRange: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:256

readonly lootExclusivityTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:257

readonly maxFleetSize: number;

Defined in: packages/sage/src/internal/c4/game.ts:263

readonly maxLootRate: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:258

readonly rawShipsRespawnTimeSeconds: bigint;

Defined in: packages/sage/src/internal/c4/game.ts:262

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

Defined in: packages/sage/src/internal/c4/game.ts:259

readonly stimulantDefinitions: {
definitions: readonly GameStimulantDefinitionData[];
sequenceId: number;
};

Defined in: packages/sage/src/internal/c4/game.ts:264

readonly definitions: readonly GameStimulantDefinitionData[];
readonly sequenceId: number;

Defined in: packages/sage/src/internal/c4/game.ts:242

One translated combat stimulant effect.

const effect: GameStimulantEffectData = {
charges: 1,
deltaBps: 250,
stackRule: 'refresh',
stat: 'damageEmp',
};

readonly charges: number;

Defined in: packages/sage/src/internal/c4/game.ts:245

readonly deltaBps: number;

Defined in: packages/sage/src/internal/c4/game.ts:244

readonly stackRule: "refresh" | "stack-to-max" | "additive";

Defined in: packages/sage/src/internal/c4/game.ts:246

readonly stat:
| "damageKinetic"
| "damageEnergy"
| "damageEmp"
| "damageSuperchill"
| "damageShockwave"
| "damageGraygoo"
| "damageHeat"
| "counterFlare"
| "counterEnergyCapacitor"
| "counterFaradayShielding"
| "counterWarmingPlates"
| "counterNegativeRemPlating"
| "counterHealingNanobots"
| "counterFireSuppressor"
| "hitChance"
| "aimAbility"
| "critChance"
| "critMultiplier"
| "stealthPower";

Defined in: packages/sage/src/internal/c4/game.ts:243


Defined in: packages/sage/src/combat/index.ts:228

One resolved cargo quantity inside Loot.

declare const item: LootCargoItem;
console.log(item.cargo.name, item.quantityRaw);

readonly cargo: CargoDefinitionSummary;

Defined in: packages/sage/src/combat/index.ts:229

readonly quantityRaw: bigint;

Defined in: packages/sage/src/combat/index.ts:230


Defined in: packages/sage/src/combat/index.ts:240

Resolved inventory for one Loot leg.

declare const inventory: LootInventory;
console.log(inventory.items.length);

readonly items: readonly LootCargoItem[];

Defined in: packages/sage/src/combat/index.ts:243

readonly sequenceId: number;

Defined in: packages/sage/src/combat/index.ts:241

readonly usedStorageUnitsRaw: bigint;

Defined in: packages/sage/src/combat/index.ts:242


Defined in: packages/sage/src/combat/index.ts:258

One translated Loot item group.

destroyer is the controlling Profile of the Fleet that destroyed the source, which holds exclusive access until exclusivityUnlockAtUnixSeconds and is the only Profile that may take reward cargo. Loot left by a Starbase kill has no destroyer.

declare const item: LootItem;
console.log(item.destroyer?.address, item.exclusivityUnlockAtUnixSeconds);

readonly optional destroyer?: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:259

readonly exclusivityUnlockAtUnixSeconds: bigint;

Defined in: packages/sage/src/combat/index.ts:260

readonly inventory: LootInventory;

Defined in: packages/sage/src/combat/index.ts:262

readonly rewardReclaimAtUnixSeconds: bigint;

Defined in: packages/sage/src/combat/index.ts:261


Defined in: packages/sage/src/internal/c4/loot.ts:80

One reward leg as combat and rewards both expose it.

readonly medallionsRaw: bigint;

Defined in: packages/sage/src/internal/c4/loot.ts:82

readonly recipient: EntityRef<"profile">;

Defined in: packages/sage/src/internal/c4/loot.ts:81

readonly salvageTargetValueAtlasRaw: bigint;

Defined in: packages/sage/src/internal/c4/loot.ts:83


Defined in: packages/sage/src/combat/index.ts:272

Immutable Loot snapshot with resolved cargo inventory.

declare const loot: LootSnapshot;
console.log(loot.reward.kind, loot.items.length);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:274

readonly coordinates: {
x: number;
y: number;
};

Defined in: packages/sage/src/combat/index.ts:278

readonly x: number;
readonly y: number;

readonly game: EntityRef<"game">;

Defined in: packages/sage/src/combat/index.ts:276

readonly items: readonly LootItem[];

Defined in: packages/sage/src/combat/index.ts:280

readonly kind: "loot";

Defined in: packages/sage/src/combat/index.ts:273

readonly profile: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:277

readonly reward: LootRewardData;

Defined in: packages/sage/src/combat/index.ts:279

readonly version: number;

Defined in: packages/sage/src/combat/index.ts:275

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:281

unknown


Defined in: packages/sage/src/internal/c4/combat.ts:20

Fully translated OutlawFlag account data.

readonly bump: number;

Defined in: packages/sage/src/internal/c4/combat.ts:27

readonly declaredAtUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:25

readonly faction: CombatFaction;

Defined in: packages/sage/src/internal/c4/combat.ts:23

readonly isOutlaw: boolean;

Defined in: packages/sage/src/internal/c4/combat.ts:24

readonly profile: Address;

Defined in: packages/sage/src/internal/c4/combat.ts:22

readonly pvpUntilUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:26

readonly version: number;

Defined in: packages/sage/src/internal/c4/combat.ts:21


Defined in: packages/sage/src/combat/index.ts:291

Immutable optional outlaw declaration derived from Profile and faction.

declare const flag: OutlawFlagSnapshot;
console.log(flag.isOutlaw, flag.pvpUntilUnixSeconds);

readonly address: Address;

Defined in: packages/sage/src/combat/index.ts:296

readonly bump: number;

Defined in: packages/sage/src/internal/c4/combat.ts:27

OutlawFlagAccountData.bump

readonly declaredAtUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:25

OutlawFlagAccountData.declaredAtUnixSeconds

readonly faction: CombatFaction;

Defined in: packages/sage/src/internal/c4/combat.ts:23

OutlawFlagAccountData.faction

readonly isOutlaw: boolean;

Defined in: packages/sage/src/internal/c4/combat.ts:24

OutlawFlagAccountData.isOutlaw

readonly kind: "outlawFlag";

Defined in: packages/sage/src/combat/index.ts:295

readonly profile: EntityRef<"profile">;

Defined in: packages/sage/src/combat/index.ts:297

readonly pvpUntilUnixSeconds: bigint;

Defined in: packages/sage/src/internal/c4/combat.ts:26

OutlawFlagAccountData.pvpUntilUnixSeconds

readonly version: number;

Defined in: packages/sage/src/internal/c4/combat.ts:21

OutlawFlagAccountData.version

toJSON(): unknown;

Defined in: packages/sage/src/combat/index.ts:298

unknown

type CombatFaction = "unaligned" | "mud" | "oni" | "ustur";

Defined in: packages/sage/src/internal/c4/combat.ts:17

Faction identifier accepted by combat reads.

const faction: CombatFaction = 'mud';

type CombatStimulantStackRule = typeof STACK_RULES[number];

Defined in: packages/sage/src/internal/c4/stimulant.ts:41

How a stimulant effect combines with an active one on the same stat. The game currently applies only refresh; the others are refused.

const rule: CombatStimulantStackRule = 'refresh';

type CombatStimulantStat = typeof STIMULANT_STATS[number];

Defined in: packages/sage/src/internal/c4/stimulant.ts:30

The Fleet combat stat a stimulant effect modifies.

const stat: CombatStimulantStat = 'damageEmp';

type LootDiscoveryOptions = Omit<DiscoveryRequest, "filters" | "strategy">;

Defined in: packages/sage/src/combat/index.ts:145

Options supported by targeted Loot discovery.

const options: LootDiscoveryOptions = { commitment: 'confirmed' };

type LootRewardData =
| {
kind: "none";
}
| {
committedAtUnixSeconds: bigint;
configVersion: number;
kind: "committed" | "resolved";
legs: readonly LootRewardLeg[];
slot: bigint;
}
| {
committedAtUnixSeconds: bigint;
configVersion: number;
kind: "unknown";
legs: readonly LootRewardLeg[];
rawStatus: number;
slot: bigint;
};

Defined in: packages/sage/src/internal/c4/loot.ts:87

Public reward state; leg recipients are Profile references.

function getCombatConfiguration(context, options?): Promise<CombatConfigurationSnapshot>;

Defined in: packages/sage/src/combat/index.ts:352

Reads the configured Game’s combat settings and stimulant catalog.

ParameterType
contextSageContext
options?ReadOptions

Promise<CombatConfigurationSnapshot>

declare const ctx: SageContext;
const configuration = await getCombatConfiguration(ctx);

function getFleetCombatStatus(
context,
address,
options?): Promise<FleetCombatStatusSnapshot>;

Defined in: packages/sage/src/combat/index.ts:418

Reads one Fleet and returns only its translated combat state.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<FleetCombatStatusSnapshot>

declare const ctx: SageContext;
declare const fleet: Address;
const status = await getFleetCombatStatus(ctx, fleet);

function getLoot(
context,
address,
options?): Promise<LootSnapshot>;

Defined in: packages/sage/src/combat/index.ts:516

Reads required Loot by its signer-created account address.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<LootSnapshot>

declare const ctx: SageContext;
declare const address: Address;
const loot = await getLoot(ctx, address);

function getLootByProfile(
context,
profile,
options?): Promise<readonly LootSnapshot[]>;

Defined in: packages/sage/src/combat/index.ts:558

Discovers Loot created by one Profile using stable targeted filters.

ParameterType
contextSageContext
profileAddress
options?LootDiscoveryOptions

Promise<readonly LootSnapshot[]>

declare const ctx: SageContext;
declare const profile: Address;
const loot = await getLootByProfile(ctx, profile);

function getOutlawFlag(
context,
profile,
againstFaction,
options?): Promise<
| OutlawFlagSnapshot
| undefined>;

Defined in: packages/sage/src/combat/index.ts:600

Derives and reads an optional OutlawFlag for a Profile/faction pair.

ParameterType
contextSageContext
profileAddress
againstFactionCombatFaction
options?ReadOptions

Promise< | OutlawFlagSnapshot | undefined>

declare const ctx: SageContext;
declare const profile: Address;
const flag = await getOutlawFlag(ctx, profile, 'mud');

function maybeGetLoot(
context,
address,
options?): Promise<LootSnapshot | undefined>;

Defined in: packages/sage/src/combat/index.ts:536

Reads optional Loot by account address.

ParameterType
contextSageContext
addressAddress
options?ReadOptions

Promise<LootSnapshot | undefined>

declare const ctx: SageContext;
declare const address: Address;
const loot = await maybeGetLoot(ctx, address);