Install
openclaw skills install structs-reconnaissanceGathers intelligence on players, guilds, planets, and the galaxy in Structs. Use when scouting enemy players, checking planet defenses, monitoring fleet movements, assessing guild strength, surveying the galaxy map, gathering intel before combat or raids, or updating competitive intelligence. Persists findings to memory/intel/.
openclaw skills install structs-reconnaissancestructsd query structs [subcommand] [args]:
address [your-address] — resolves your address to a player ID. A result of 1-0 means no player exists for that address.player [id], player-allplanet [id], planet-all, planet-all-by-player [player-id], planet-attribute [planet-id] [type], planet-attribute-allstruct [id], struct-all, struct-attribute [id] [type], struct-type [id], struct-type-allfleet [id], fleet-all, fleet-by-index [index]guild [id], guild-all, guild-membership-application [id], guild-membership-application-allreactor [id], reactor-all, infusion [id], infusion-all, infusion-all-by-destination [dest-id], provider [id], provider-all, agreement [id], agreement-all, agreement-all-by-provider [provider-id]allocation [id], allocation-all, allocation-all-by-source [source-id], allocation-all-by-destination [dest-id], substation [id], substation-allgrid [id], grid-allblock-height| Entity | Query Command |
|---|---|
| Address → Player | structsd query structs address [address] (returns player ID; 1-0 = nonexistent) |
| Player | structsd query structs player [id], player-all |
| Planet | structsd query structs planet [id], planet-all, planet-all-by-player [player-id] |
| Planet attribute | structsd query structs planet-attribute [planet-id] [type], planet-attribute-all |
| Struct | structsd query structs struct [id], struct-all, struct-attribute [id] [type] |
| Struct type | structsd query structs struct-type [id], struct-type-all |
| Fleet | structsd query structs fleet [id], fleet-all, fleet-by-index [index] |
| Guild | structsd query structs guild [id], guild-all |
| Membership app | structsd query structs guild-membership-application [id], guild-membership-application-all |
| Reactor | structsd query structs reactor [id], reactor-all |
| Infusion | structsd query structs infusion [id], infusion-all, infusion-all-by-destination [dest-id] |
| Provider | structsd query structs provider [id], provider-all |
| Agreement | structsd query structs agreement [id], agreement-all, agreement-all-by-provider [provider-id] |
| Allocation | structsd query structs allocation [id], allocation-all, allocation-all-by-source, allocation-all-by-destination |
| Substation | structsd query structs substation [id], substation-all |
| Grid | structsd query structs grid [id], grid-all |
| Block height | structsd query structs block-height |
-all variants to discover current IDs.block-height; re-run queries if chain has progressed.memory/intel/players/, memory/intel/guilds/ if absent. Follow formats in memory/intel/README.If the Guild Stack is running locally, all reconnaissance queries can be done in < 1 second via PostgreSQL instead of CLI. This is essential for combat automation, real-time threat monitoring, and galaxy-wide scouting.
Example -- find all players with stealable ore, ranked by amount:
SELECT p.id, p.guild_id, COALESCE(g_ore.val, 0) as ore
FROM structs.player p
JOIN structs.grid g_ore ON g_ore.object_id = p.id AND g_ore.attribute_type = 'ore'
WHERE g_ore.val > 0
ORDER BY g_ore.val DESC;
Example -- enemy fleet composition at a planet:
SELECT s.id, st.class_abbreviation, s.operating_ambit, st.unit_defenses
FROM structs.struct s
JOIN structs.struct_type st ON st.id = s.type
JOIN structs.fleet f ON f.id = s.location_id
WHERE f.location_id = '2-105' AND s.is_destroyed = false AND s.location_type = 'fleet';
Important: The structs.grid table is key-value, not columnar. See knowledge/infrastructure/database-schema for the grid pattern and more query examples.
For setup: structs-guild-stack skill