Skip to content
Next — unreleased

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

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:150

readonly cargoRespawnTimeSeconds: bigint;

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

GameCombatConfigurationData.cargoRespawnTimeSeconds

readonly crewRespawnTimeSeconds: bigint;

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

GameCombatConfigurationData.crewRespawnTimeSeconds

readonly globalCeasefire: boolean;

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

GameCombatConfigurationData.globalCeasefire

readonly interactionRange: GameCombatFixedValueData;

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

GameCombatConfigurationData.interactionRange

readonly kind: "combatConfiguration";

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

readonly lootExclusivityTimeSeconds: bigint;

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

GameCombatConfigurationData.lootExclusivityTimeSeconds

readonly maxFleetSize: number;

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

GameCombatConfigurationData.maxFleetSize

readonly maxLootRate: GameCombatFixedValueData;

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

GameCombatConfigurationData.maxLootRate

readonly rawShipsRespawnTimeSeconds: bigint;

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

GameCombatConfigurationData.rawShipsRespawnTimeSeconds

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

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

GameCombatConfigurationData.starbaseUpgradeProgressContinuation

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

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

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

toJSON(): unknown;

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

unknown


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

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:134

readonly effects: readonly GameStimulantEffectData[];

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


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

Translated Fleet combat statistics.

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

readonly aimAbility: FleetFixedValue;

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

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

readonly ammoConsumptionRate: FleetFixedValue;

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

readonly ap: number;

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

readonly apRegenRate: FleetFixedValue;

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

readonly counterDecoy: number;

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

readonly counterEnergyCapacitor: number;

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

readonly counterFaradayShielding: number;

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

readonly counterFireSuppressor: number;

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

readonly counterFlare: number;

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

readonly counterHealingNanobots: number;

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

readonly counterMine: number;

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

readonly counterNegativeRemPlating: number;

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

readonly counterWarmingPlates: number;

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

readonly critChance: FleetFixedValue;

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

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:273

U26F6 fixed-point critical multiplier.

readonly damageBomb: number;

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

readonly damageBombVariance: FleetFixedValue;

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

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

readonly damageEmp: number;

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

readonly damageEmpVariance: FleetFixedValue;

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

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

readonly damageEnergy: number;

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

readonly damageEnergyVariance: FleetFixedValue;

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

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

readonly damageGraygoo: number;

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

readonly damageGraygooVariance: FleetFixedValue;

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

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

readonly damageHeat: number;

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

readonly damageHeatVariance: FleetFixedValue;

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

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

readonly damageKinetic: number;

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

readonly damageKineticVariance: FleetFixedValue;

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

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

readonly damageShockwave: number;

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

readonly damageShockwaveVariance: FleetFixedValue;

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

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

readonly damageSuperchill: number;

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

readonly damageSuperchillVariance: FleetFixedValue;

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

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

readonly fuelConsumptionRate: FleetFixedValue;

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

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

readonly hitChance: FleetFixedValue;

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

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

readonly hp: number;

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

readonly lootRate: FleetFixedValue;

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

readonly missileDamage: FleetFixedValue;

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

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

readonly missileFireRate: FleetFixedValue;

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

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

readonly repairAbility: FleetFixedValue;

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

readonly repairCost: FleetFixedValue;

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

readonly repairEfficiency: FleetFixedValue;

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

readonly repairRate: FleetFixedValue;

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

readonly shieldBreakDelaySeconds: number;

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

readonly shieldRechargeRate: FleetFixedValue;

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

readonly sp: number;

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

readonly stealthPower: FleetFixedValue;

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

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

readonly warpSpoolTimeSeconds: number;

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


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

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:176

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

readonly faction: CombatFaction;

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

readonly fleet: EntityRef<"fleet">;

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

readonly kind: "fleetCombatStatus";

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

readonly ownerProfile: EntityRef<"profile">;

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

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

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

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

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

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

readonly stats: FleetCombatStatsData;

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

readonly stimulants: readonly {
chargesRemaining: number;
deltaBps: number;
statId: number;
}[];

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

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

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

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

toJSON(): unknown;

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

unknown


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

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:255

readonly crewRespawnTimeSeconds: bigint;

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

readonly globalCeasefire: boolean;

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

readonly interactionRange: GameCombatFixedValueData;

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

readonly lootExclusivityTimeSeconds: bigint;

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

readonly maxFleetSize: number;

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

readonly maxLootRate: GameCombatFixedValueData;

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

readonly rawShipsRespawnTimeSeconds: bigint;

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

readonly starbaseUpgradeProgressContinuation: GameCombatFixedValueData;

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

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

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

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

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

One translated combat stimulant effect.

const effect: GameStimulantEffectData = {
charges: 1,
deltaBps: 250,
stackRuleId: 0,
statId: 2,
};

readonly charges: number;

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

readonly deltaBps: number;

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

readonly stackRuleId: number;

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

readonly statId: number;

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


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

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:205

readonly quantityRaw: bigint;

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


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

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:219

readonly sequenceId: number;

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

readonly usedStorageUnitsRaw: bigint;

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


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

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:235

readonly exclusivityUnlockAtUnixSeconds: bigint;

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

readonly inventory: LootInventory;

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

readonly rewardReclaimAtUnixSeconds: bigint;

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


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:248

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:250

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

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

readonly x: number;
readonly y: number;

readonly game: EntityRef<"game">;

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

readonly items: readonly LootItem[];

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

readonly kind: "loot";

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

readonly profile: EntityRef<"profile">;

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

readonly reward: LootRewardData;

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

readonly version: number;

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

toJSON(): unknown;

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

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:267

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:272

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:271

readonly profile: EntityRef<"profile">;

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

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:274

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 LootDiscoveryOptions = Omit<DiscoveryRequest, "filters" | "strategy">;

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

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:328

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:394

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:492

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:534

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:576

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:512

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);