Coding

structs-production

Try it

Runs the Alpha Matter production pipeline in Structs — mine ore, refine it to Alpha Matter, then put the Alpha to work. Use when mining or refining, starting or scheduling a mine→refine cycle, protecting stored ore, scaling output, deciding what to do with refined Alpha, or handling a planet running out of ore. Mining ~17h and refining ~34h are background expeditions; ore is stealable until refined.

What it does

Runs the Alpha Matter production pipeline in Structs — mine ore, refine it to Alpha Matter, then put the Alpha to work. Use when mining or refining, starting or scheduling a mine→refine cycle, protecting stored ore, scaling output, deciding what to do with refined Alpha, or handling a planet running out of ore. Mining ~17h and refining ~34h are background expeditions; ore is stealable until refined.

The skill document

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

  • You have an Ore Extractor + Ore Refinery and a planet with currentOre > 0.
  • A mine or refine job just landed (start the next stage immediately).
  • You're sitting on storedOre (a liability — refine it).
  • Your planet is depleting and you need to decide expand vs. squeeze the last ore.
  • You're planning throughput, or scaling across multiple accounts.

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:

  • Throughput is capped per player — 1 Ore Extractor, 1 Ore Refinery, fixed 1 ore/cycle. You don't scale by building more extractors (you can't). You scale by: tighter cycle cadence (always have something aging), refining during the owner's off-hours, and multi-account orchestration (separate keys mine in parallel — different accounts transact independently; see structs-permissions).
  • Harden the window with bunkers/OSGs (shield/PoW only — not ore vaults). Real protection: refine promptly + CMD online + fleet onStation. Mine and refine are rejected while a visitor heads the raid queue (under_raid); do not retry compute mid-raid. See under-attack.
  • Keep a reserve. Hold ~20-30% of Alpha Matter liquid for emergencies (power, rebuilds) rather than infusing everything.
  • Decisions live in playbooks/situations/resource-rich and resource-scarce.

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). Activation is the start of the mining cycle when you are the first online extractor on the planet — it stamps the shared planetBlockStartOreMine. There is no separate "begin mining" action. Deactivating decrements the planet's active-miner count; the clock stays until quantity returns to zero and a later activate re-anchors.

  3. Confirm the planet is not under raid — if locationListStart is set, mine/refine compute and complete reject with under_raid. Wait for the visitor to leave; the planet clock's pre-raid age is preserved, not decayed through the raid. See hashing.md — raid pause.

  4. Compute the mine completion (background expedition, ~17h to D=3, difficulty 14,000). This hashes against the clock activation already armed and submits the completion — it does not "start" anything.

    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
    
  5. Do other work while it ages — scout, build defense, plan. Always keep something aging (activate early, compute later). The mine clock lives on the planet and resets after each successful mine (any extractor), so every cycle re-enters the full ~17h decay. Cycles never expire: an aged clock is cheaper to complete, not wedged — never "reset" or "clean up" an old mine/refine. See hashing.md — cycle lifecycle.

  6. Refine in parallel — don't wait for the mine. A refinery can be activated with 0 ore; ore mined (or received) mid-cycle counts at completion time. Activate and compute the refinery alongside the extractor rather than serially, and the pipeline completes faster (~34h to D=3, difficulty 28,000). Refined Alpha is secure; unrefined ore is stealable, so keep the refine cycle always running.

    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
    
  7. Protect the window — Command Ship online (unraidable), Ore Bunker(s) up, defenders assigned. See structs-combat.

  8. 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:

  • Squeeze the last ore if you can refine it before depletion forces you off, or
  • Move first — relocate critical structs / evacuate, then explore.

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

ActionCLI 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 TX_FLAGS -- [id] [proof] [nonce] / ...refine-complete TX_FLAGS -- [id] [proof] [nonce]
Query planet orestructsd query structs planet [planet-id]
Query structstructsd 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

  • Planet currentOre decreases after a mine lands.
  • Player storedOre rises after mine, returns to 0 after refine.
  • Player Alpha Matter (ualpha, 1g = 1,000,000) rises after refine.
  • Broadcast ≠ success: query state to confirm before assuming a stage finished.

Errors

  • "under_raid" — a visiting fleet is in the planet's raid queue. Mine/refine compute and complete are rejected until it leaves. Do not retry; the clock's pre-raid age is preserved. See under-attack.
  • "struct offline" — activate the extractor/refinery first.
  • "insufficient ore" — planet depleted or nothing in storedOre; check currentOre / storedOre.
  • "proof invalid" — re-run compute at the right difficulty; ensure the process wasn't interrupted.
  • Ore stolen — you left it unrefined or your Command Ship went offline mid-window. Refine immediately and keep the CMD ship up. See the reconnect flow in awareness/async-operations.

See also

Related skills

Walk an AI agent from install to producing Alpha Matter in Structs, using the gentlest CPU setting.

38 installs

Manages planets and fleet in Structs — evaluating and exploring planets, claiming/relocating, fleet movement and composition, evacuation, and the onStation-vs-away state. Use when discovering or claiming a planet, your planet is depleting, relocating, moving the fleet, checking fleet status, or deciding fleet composition for offense/defense. Covers the raid-clock implications of fleet position.

Walk a new agent from key creation through first infrastructure builds in Structs.

39 installs

Intelligence gathering in Structs — scouting players, planets, guilds, and the galaxy before you act. Use when assessing a raid target, checking a planet's defenses and Command Ship status, profiling an opponent, surveying the galaxy, or refreshing competitive intel. Persists findings to memory/intel/ so they survive context resets.

Earning and trading in Structs — selling energy via providers, buying capacity via agreements, allocations, reactor staking economics, the guild Central Bank (mint/redeem/convert), and token transfers. Use when you want to monetize surplus energy, shop for an energy agreement, set provider pricing, stake Alpha into a reactor for capacity, mint/redeem/convert guild tokens, or send tokens. For just keeping your own structs powered, see structs-energy.

Handle struct construction end-to-end on a Structs node: initiate, compute the PoW, auto-activate, move, assign defenders, toggle stealth, and infuse a generat…

42 installs