Power Mechanics

Purpose: AI-readable reference for Structs power system. Capacity, load, online status, struct requirements.


Critical Concepts

Energy is per-block and ephemeral. Energy produced in a block that is not consumed in that same block is permanently lost. There is no “energy balance” — only total capacity (personal generation + substation-provided) and total load (energy allocated out + struct consumption). Idle capacity is waste, not safety margin. Guild substations should aim for full utilization.

Transaction fees come from energy, not Alpha. Players never need a separate token balance to submit transactions. TX fees pull from the player’s connected power source. This means any player connected to a substation with capacity can transact. Validators earn from all transactions through energy connected to their reactor.


Core Formulas

Capacity

totalCapacity = capacity + capacitySecondary
Term Source
capacity Personal generation — energy the player produces via their own infusions (reactor or generator). Only this capacity can be used to create allocations.
capacitySecondary Substation-provided — energy received from the player’s connected substation. Matches the substation’s connectionCapacity.

Load

totalLoad = load + structsLoad
Term Source
load Energy allocated out — total power the player has routed to others via allocations they created.
structsLoad Sum of all online struct PassiveDraw — energy consumed by the player’s active structs.

Available Power

availablePower = (capacity + capacitySecondary) - (load + structsLoad)

Online Status

playerOnline = (load + structsLoad) <= (capacity + capacitySecondary)

If offline: player halted, cannot perform actions.


Player Passive Draw

playerPassiveDraw = 25,000 milliwatts (25 watts)

Base consumption when player is online.


Struct Power Requirements

Each struct has:

Requirement When Applied
BuildDraw During building
PassiveDraw When struct is online

Total for new struct: buildPower + passivePower must be available.

Example Struct Requirements

Struct Build Passive Total
Ore Extractor 500,000 W 500,000 W 1,000,000 W
Planetary Defense Cannon 600,000 W 600,000 W 1,200,000 W
Ore Bunker 200,000 W 200,000 W 400,000 W

Allocatable Capacity

allocatableCapacity = capacity - load

Only the player’s personal capacity (from infusions) counts here — capacitySecondary (substation-provided) cannot be allocated out. load is the amount already allocated, so the remainder is what’s available to create new allocations from.


Power States

Entity Online When
Player availablePower > 0
Struct availablePower >= struct.passiveDraw

False positive: A player connected to a substation pool may show capacity=0 while structs are still online and drawing power. This happens because the substation handles capacity distribution. Check structsLoad > 0 as the real indicator that structs are functional — not capacity > 0.


New Player Power Budget

New players typically start with zero personal capacity (no infusions yet) and rely entirely on capacitySecondary from their guild’s substation connection. The available capacity depends on what the guild allocates. Here is the load budget for the standard onboarding build order:

Item Build Draw Passive Draw Cumulative Load
Player (base) 25 kW 25 kW
Command Ship (build) 50 kW 75 kW
Command Ship (online) 50 kW 75 kW
Ore Extractor (build) 500 kW 575 kW
Ore Extractor (online) 500 kW 575 kW
Ore Refinery (build) 500 kW 1,075 kW
Ore Refinery (online) 500 kW 1,075 kW

Build draw is temporary (only during construction) and releases when the build completes. The worst-case load during onboarding is ~1,075 kW with all three structs online plus a build in progress.

Minimum viable capacity: ~575 kW to have player + Command Ship + Ore Extractor online. If the guild substation provides less, prioritize activating Command Ship first, then build one struct at a time.

If total load ever exceeds total capacity, the player goes offline and cannot perform any actions until load is reduced (deactivate structs) or capacity is increased.


Increasing Capacity

Three methods to increase a player’s available capacity:

Method How Rate Risk Reversible
Reactor infusion reactor-infuse [your-addr] [reactor-addr] [amount-ualpha] 1g ≈ 1 kW (minus commission) Low Yes (defuse with cooldown)
Generator infusion struct-generator-infuse [struct-id] [amount-ualpha] 1g = 2-10 kW depending on type High (raidable) No
Buy via agreement agreement-open [provider-id] [duration] [capacity] Varies by provider Medium (ongoing cost) Yes (close agreement)

Reactor Commission

When infusing Alpha Matter into a reactor, the generated power is split between the player and the reactor based on the reactor’s commission rate:

playerCapacityGain = power * (1 - commission)
reactorCapacityGain = power * commission

The player’s capacity increases automatically — no allocation or substation setup needed. This makes reactor infusion the simplest path to more capacity.

Example: 3,000,000 ualpha infused into a reactor with 4% commission generates 3,000,000 mW. The reactor keeps 120,000 mW (4%), the player receives 2,880,000 mW (96%) added directly to their capacity.

Allocation Sources

Allocations can be created from Reactors, Players, and Substations. Allocations can only be connected to Substations.

For full energy management workflows, see the structs-energy skill.


Automation (Defence Contractor Pattern)

The shared energy system and flexible permission model were designed for AI automation. A secondary agent can be granted scoped permissions to manage power on behalf of a player — monitoring substations, adjusting allocations, and reacting to power events via GRASS streaming. See the structs-streaming skill “Automation Patterns” section for implementation details.


See Also