Structs Production

Production is the engine of everything: you mine ore from your planet, refine it into Alpha Matter, and Alpha Matter funds power, structs, trade, and guild collateral. The whole game’s PvP tension lives in one fact — ore is stealable, Alpha Matter is not — and mining/refining are multi-hour proof-of-work expeditions, so production is fundamentally a scheduling and risk problem, not a clicking problem.

Conventions (TX_FLAGS, the -- rule, the -D 3 PoW policy, the per-player charge bar, one-tx-at-a-time) are assumed from conventions.md. Read it once.

When to use it

Decisions

Beginner default: One Ore Extractor + one Ore Refinery (both 1-per-player). Mine, and the instant mining lands, start refining — never let ore sit. Refine at -D 3. Keep your Command Ship online the whole time so the planet is unraidable (see structs-combat). That alone wins the early resource game.

The core trade-off — ore exposure vs. CPU: mined ore is vulnerable for the entire refine window. At -D 3 that’s ~34 hours but zero wasted CPU; at -D 8 it’s ~15 hours but burns real compute. Default to -D 3 and protect the window rather than racing it.

Advanced considerations:

The pipeline

Ore Extractor ──mine (~17h)──▶ storedOre (STEALABLE) ──refine (~34h)──▶ Alpha Matter (SECURE) ──▶ power / build / trade / stake

Both stages are expeditions: the compute helper hashes for hours then auto-submits its completion transaction (this is why -y is required on compute commands — there’s no shell to confirm when the proof lands). Log every job to memory/jobs/ and never block on PoW.

Procedure

  1. Check the planetstructsd query structs planet [planet-id]. If currentOre == 0, the planet is spent → go to Depletion below. Otherwise continue.
  2. Confirm the extractor is onlinestructsd query structs struct [extractor-id] (status Online). Activate if needed (struct-activate, 2 charge).
  3. Launch the mine (background expedition, ~17h to D=3, difficulty 14,000).

    Approval Block — confirm before launch: extractor id is correct; planet currentOre > 0; --from is the owner key; you accept an auto-submitted completion ~17h out even if state shifts.

    nohup structsd tx structs struct-ore-mine-compute -D 3 --from [key] --gas auto --gas-adjustment 1.5 -y -- [extractor-id] \
      > memory/jobs/mine-[extractor-id].log 2>&1 & echo $! > memory/jobs/mine-[extractor-id].pid
    
  4. Do other work while it ages — scout, build defense, plan. Always keep something aging (initiate early, compute later).
  5. The instant mining lands, refine (~34h to D=3, difficulty 28,000). Ore is now stealable; this is the priority.

    Approval Block — same five checks, applied to the ~34h refine window.

    nohup structsd tx structs struct-ore-refine-compute -D 3 --from [key] --gas auto --gas-adjustment 1.5 -y -- [refinery-id] \
      > memory/jobs/refine-[refinery-id].log 2>&1 & echo $! > memory/jobs/refine-[refinery-id].pid
    
  6. Protect the window — Command Ship online (unraidable), Ore Bunker(s) up, defenders assigned. See structs-combat.
  7. Put the Alpha to work — once refined (secure), infuse for power (structs-energy), stake/sell (structs-commerce), or hold reserve.

Charge-bar scheduling

Activating the extractor/refinery costs 2 charge each from your shared per-player bar. If you activate several structs back-to-back, space them by ~2 blocks. The compute (mine/refine) itself isn’t charge-gated; the activation that precedes it is.

Depletion → explore handoff

When currentOre hits 0 the planet becomes complete: all its structs are destroyed and fleets are sent away. Before the last ore is mined, decide:

Then hand off to structs-planets-fleet to chart and claim a new planet. If an extractor/refinery is destroyed mid-job, progress pauses (mined/refined amounts aren’t lost) until you rebuild.

Commands reference

Action CLI Command
Mine (PoW + auto-complete) structsd tx structs struct-ore-mine-compute -D 3 TX_FLAGS_APPROVED -- [extractor-id]
Refine (PoW + auto-complete) structsd tx structs struct-ore-refine-compute -D 3 TX_FLAGS_APPROVED -- [refinery-id]
Mine/refine complete (manual, rare) structsd tx structs struct-ore-mine-complete -- [id] / ...refine-complete -- [id]
Query planet ore structsd query structs planet [planet-id]
Query struct structsd query structs struct [id]
Query player (Alpha + storedOre) structsd query structs player [player-id]

TX_FLAGS / TX_FLAGS_APPROVED and the -D policy are defined in conventions.md. Mine/refine compute are the documented -y exception (they auto-submit) — your Approval Block is the gate.

Requires: structsd on PATH and a configured signing key.

Verification

Errors

See also