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.
Coding
structs-building
Try itHandle struct construction end-to-end on a Structs node: initiate, compute the PoW, auto-activate, move, assign defenders, toggle stealth, and infuse a generat…
What it does
Handles the full struct lifecycle on a Structs node: check requirements, initiate a build, run the background PoW that auto-activates the struct, then manage move, defense, stealth, and infusion. Safety tiers are explicit per command — short builds (Command Ship, Starfighter, Ore Extractor, Refinery) are routine, while long-PoW orders (World Engine, Ore Bunker, PDC) and generator infusions require escalation. Uses `-D 3` so the hash is trivially instant at zero CPU cost, enforces one compute job per signing key to avoid sequence-number clashes, and ships a build-time table at D=3 (Command Ship ~17 min up to World Engine ~6.4 hr) plus an error table covering charge, power, slot, ambit, and n…
When to use it
- Building a Command Ship, Starfighter, Ore Extractor, or Refinery
- Batch-initiating planned builds before launching compute jobs
- Setting or clearing defense assignments between structs
- Infusing a generator with Alpha Matter (irreversible)
The skill document
Structs Building
Important: Entity IDs containing dashes (like 1-42, 5-10) are misinterpreted as flags by the CLI parser. All transaction commands in this skill use -- before positional arguments to prevent this.
Safety
See SAFETY.md for the trust contract. In this skill:
struct-build-initiate(Tier 0 for cheap structs; Tier 1 for long PoW like World Engine, Ore Bunker, PDC) — short builds (Command Ship, Starfighter, Ore Extractor, Refinery) are routine; anything > 1 hour to D=3 is a battle order.struct-build-compute(Tier 1 + expedition) — "The build hashes for up to ~6.4 hours and auto-activates on completion." Log the PID tomemory/jobs/; recall withkillif needed. On reconnect, walk the four-state flow inawareness/async-operationsbefore launching anything new.struct-generator-infuse(Tier 2 — irreversible) — "Alpha Matter is annihilated in the conversion. The energy is yours; the matter is gone. There is no defusion. And the generator is raidable — if it falls, the infused matter falls with it." Always escalate, regardless of autonomy. Confirm the generator's defense posture before infusing.struct-deactivateof revenue-bearing structs (Tier 1) — taking an Extractor or Refinery offline halts your resource pipeline.
Procedure
-
Check requirements — Player online, sufficient Alpha Matter, valid slot (0-3 per ambit), Command Ship online, fleet on station (for planet builds). Query player, planet, fleet.
-
Initiate build (CLI prompts for confirmation — review struct type, slot, ambit, and Alpha cost):
structsd tx structs struct-build-initiate --from [key-name] --gas auto --gas-adjustment 1.5 -- [player-id] [struct-type-id] [operating-ambit] [slot]The
[operating-ambit]argument must be a lowercase string:"space","air","land", or"water"(not a bitmask number). -
Proof-of-work — Build compute is an expedition that auto-activates the struct when the proof lands (this is why
-yis present below).Approval Block — confirm before launching, especially for long-PoW structs (Ore Bunker, PDC, World Engine):
struct-idmatches the build you just initiated- You have power headroom for the struct to auto-activate (load + struct's power-draw < capacity)
- You will tolerate the auto-activation landing 17 min – 6.4 hrs from now even if game state shifts
Launch in a background terminal:
structsd tx structs struct-build-compute -D 3 --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [struct-id]This calculates the hash, auto-submits complete, and the struct auto-activates. No separate activation step needed.
-
Optional — Move, set defense, or activate stealth as needed.
Auto-activation: Structs automatically activate after build-complete. Use struct-activate only to re-activate a struct that was previously deactivated with struct-deactivate.
Compute vs Complete
struct-build-compute is a helper that performs proof-of-work and automatically submits struct-build-complete with the hash results. The struct then auto-activates. You only need struct-build-complete if you computed the hash through external tools and want to submit it manually.
The -D Flag
The -D flag (range 1-64) tells compute to wait until difficulty drops to the specified level before starting the hash. Difficulty decreases logarithmically as the struct ages. Use -D 3 — at D=3, the hash is trivially instant and zero CPU is wasted. Lower values wait longer but burn no compute on hard hashes.
Charge Costs
Every action consumes charge. Charge accumulates passively at 1 per block (~6 sec/block).
| Action | Charge Cost | Wait Time |
|---|---|---|
| Build complete | 8 | ~48 seconds |
| Move | 8 | ~48 seconds |
| Activate (re-activation only) | 1 | ~6 seconds |
| Defend change | 1 | ~6 seconds |
| Primary weapon | 1-20 | Varies by struct |
If you get a "required charge X but player had Y" error, wait for charge to accumulate. See knowledge/mechanics/building for the complete charge table.
Expected Build Times
Time from initiation until compute completes (assuming 6 sec/block, D=3):
| Struct | Type ID | Build Difficulty | Wait to D=3 |
|---|---|---|---|
| Command Ship | 1 | 200 | ~17 min |
| Starfighter | 3 | 250 | ~20 min |
| Ore Extractor | 14 | 700 | ~57 min |
| Ore Refinery | 15 | 700 | ~57 min |
| PDC | 19 | 2,880 | ~3.7 hr |
| Ore Bunker | 18 | 3,600 | ~4.6 hr |
| World Engine | 22 | 5,000 | ~6.4 hr |
Initiate early, compute later. The age clock starts at initiation. Batch-initiate all planned builds, then launch compute in background terminals. Do other things while waiting. See awareness/async-operations.
One key, one compute at a time. Never run two concurrent *-compute jobs with the same signing key. Both jobs may reach the target difficulty simultaneously and submit transactions with conflicting sequence numbers — one fails silently, leaving the struct stuck in build status. Use separate signing keys for separate players, and sequence compute jobs for the same player.
Commands Reference
| Action | CLI Command |
|---|---|
| Initiate build | structsd tx structs struct-build-initiate --from [key-name] --gas auto --gas-adjustment 1.5 -- [player-id] [struct-type-id] [operating-ambit] [slot] (operating-ambit = space/air/land/water, lowercase string) |
| Build compute (PoW + auto-complete + auto-activate) | structsd tx structs struct-build-compute -D 3 --from [key-name] --gas auto --gas-adjustment 1.5 -y -- [struct-id] (documented -y exception — auto-submits later) |
| Build complete (manual, rarely needed) | structsd tx structs struct-build-complete --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Build cancel | structsd tx structs struct-build-cancel --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Re-activate (only after deactivation) | structsd tx structs struct-activate --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Deactivate | structsd tx structs struct-deactivate --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Move | structsd tx structs struct-move --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] [new-ambit] [new-slot] [new-location] |
| Set defense | structsd tx structs struct-defense-set --from [key-name] --gas auto --gas-adjustment 1.5 -- [defender-struct-id] [protected-struct-id] |
| Clear defense | structsd tx structs struct-defense-clear --from [key-name] --gas auto --gas-adjustment 1.5 -- [defender-struct-id] |
| Stealth on | structsd tx structs struct-stealth-activate --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Stealth off | structsd tx structs struct-stealth-deactivate --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] |
| Generator infuse (Tier 2, irreversible) | structsd tx structs struct-generator-infuse --from [key-name] --gas auto --gas-adjustment 1.5 -- [struct-id] [amount] |
Limits: 1 PDC per player, 1 Command Ship per player. Command Ship must be in fleet. Generator infusion is IRREVERSIBLE.
TX_FLAGS (interactive — the CLI prompts you to confirm): --from [key-name] --gas auto --gas-adjustment 1.5
TX_FLAGS_APPROVED (only after commander approval; suppresses the prompt): TX_FLAGS plus -y. See SAFETY.md "The -y Rule." struct-build-compute is the documented -y exception — it auto-activates the struct when the proof lands, with no shell attached.
Requires: structsd on PATH and a configured signing key.
Verification
structsd query structs struct [id]— status = Online (or Built/Offline if not activated)- Struct appears in planet/fleet struct list
Error Handling
| Error | Cause | Fix |
|---|---|---|
| "required charge X but player had Y" | Not enough charge accumulated | Wait ~48s (8 blocks) between build actions |
| "insufficient resources" | Not enough Alpha Matter | Mine and refine ore first; check balance with structsd query structs player [id] |
| "power overload" | Capacity too low for struct to go online | Deactivate non-essential structs or increase capacity (see structs-energy skill) |
| "fleet not on station" | Fleet is away from planet | Wait for fleet return or fleet-move back |
| "Command Ship required" | Command Ship offline or not built | Build or re-activate Command Ship first |
| "invalid slot" | Slot already occupied | Check existing structs on planet; slots are 0-3 per ambit |
| "invalid ambit" | Struct type doesn't support chosen ambit | Check possibleAmbit bit-flags for the struct type |
| Connection refused on port 26657 | No local node; remote node not configured | Set node in ~/.structs/config/client.toml or use --node flag (see TOOLS.md) |
See Also
- knowledge/mechanics/building — Build times, difficulty, charge costs
- knowledge/mechanics/power — Capacity, load, online status
- knowledge/entities/struct-types — All struct type IDs and properties
- knowledge/entities/entity-relationships — How entities connect
- awareness/async-operations — Background PoW, pipeline strategy
Related skills
Walk a new agent from key creation through first infrastructure builds in Structs.
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.
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.
Get more energy capacity in Structs: reactor and generator infusion, plus agreement-based buying and selling.
Plan and execute Structs raids, struct attacks, and fleet defense from the command line.