Structs Energy Management
Decision Tree
CODEBLOCK0
Reactor Infusion (most common path)
Infusing Alpha Matter (ualpha) into a reactor immediately increases the player's capacity. This is the safest and most common way to get more energy.
How It Works
When you infuse ualpha into a reactor, the system generates power equal to the amount infused. This power is split between you and the reactor based on the reactor's commission rate:
- - Player receives: INLINECODE0
- Reactor receives: INLINECODE1
The player's capacity increases automatically — no allocation or substation setup needed.
Example
Infusing 3,000,000 ualpha into a reactor with 4% commission:
CODEBLOCK1
- -
fuel: 3,000,000 ualpha infused - INLINECODE3 : 3,000,000 mW generated (1 ualpha = 1 mW = 0.001 W)
- Reactor keeps 4%: 120,000 mW (120 W)
- Player receives 96%: 2,880,000 mW (2,880 W) added to capacity
Procedure
- 1. Check current capacity: INLINECODE4
- Choose a reactor (usually your guild's):
structsd query structs reactor [id] — note the commission field - Infuse:
CODEBLOCK2
Important: The amount must include the denomination, e.g. 60000000ualpha (not just 60000000). Omitting the denom will cause the transaction to fail.
- 4. Verify: re-query player, confirm capacity increased
Choosing a Reactor
- - Your guild's reactor is the default choice — it strengthens the guild and you benefit from guild infrastructure
- Lower commission = more capacity for you
- Check commission before infusing: INLINECODE9
- You can infuse into any reactor, not just your guild's
- The
reactor-infuse command takes the validator address (structsvaloper1...), not the reactor ID. Find it in the reactor query output's validator field
Undoing Infusion
- -
structsd tx structs reactor-defuse [reactor-id] — starts a cooldown period before ualpha is returned - INLINECODE14 — cancel defusion and re-stake
- INLINECODE15 — move stake to a different reactor (takes addresses, not IDs)
Generator Infusion
Generators convert Alpha Matter to energy at higher ratios than reactors, but the infusion is irreversible and the generator is vulnerable to raids.
Conversion Rates
| Generator | Type ID | Rate | Risk |
|---|
| Field Generator | 20 | 1g = 2 kW | High — vulnerable to raids, irreversible |
| Continental Power Plant |
21 | 1g = 5 kW | High — vulnerable to raids, irreversible |
| World Engine | 22 | 1g = 10 kW | High — vulnerable to raids, irreversible |
Procedure
- 1. Identify your generator struct:
structsd query structs struct [id] — must be type 20, 21, or 22 - Infuse:
CODEBLOCK3
Important: Amount must include denomination, e.g. 5000000ualpha.
- 3. Verify: query player for capacity increase
When to Use Generators
- - You need maximum energy efficiency per gram of Alpha Matter
- You have defense in place (shields, PDC, defenders) to protect the generator
- You accept the risk that if the generator is destroyed, the infused Alpha is lost forever
Do not infuse generators without adequate defense.
Buy Energy (Agreement Path)
If you have no Alpha Matter to infuse, you can buy energy from another player who is running a provider.
Procedure
- 1. Find a provider: Query available providers:
CODEBLOCK4
Or check your guild's providers. Look for one with acceptable rateAmount, capacityMaximum, and durationMaximum.
- 2. Open an agreement:
CODEBLOCK5
The agreement automatically creates an allocation.
- 3. Connect the allocation to a substation:
CODEBLOCK6
Connect to your guild's substation to benefit the guild, or create your own substation for independent energy management.
- 4. Verify: Query player to confirm capacity increased.
Agreement Management
- - Increase capacity: INLINECODE21
- Decrease capacity: INLINECODE22
- Extend duration: INLINECODE23
- Close:
agreement-close [agreement-id] — may incur cancellation penalty
Sell Energy (Energy Commerce Pipeline)
If you have surplus capacity, you can sell energy to other players through the reactor-allocation-substation-provider pipeline. This is the core of Structs economic gameplay.
Full Pipeline (Step by Step)
- 1. Accumulate Alpha -- Mine ore, refine immediately. Consolidate ualpha to the account that will manage energy commerce.
- 2. Infuse into reactor -- Increases your player capacity. Use your guild's reactor for simplicity:
CODEBLOCK7
The validator-address is structsvaloper1... (find it in structsd query structs reactor [id] under the validator field). Commission is locked at infusion time and permanent for that infusion.
- 3. Create automated allocation -- Routes your capacity to a substation. Use
automated type so it auto-grows when you infuse more alpha:
CODEBLOCK8
- 4. Create substation -- The distribution node for your energy:
CODEBLOCK9
- 5. Create provider -- Your marketplace storefront:
CODEBLOCK10
| Parameter | Purpose | Recommendation |
|---|
| INLINECODE30 | Price per unit capacity per block | INLINECODE31 (guild tokens create demand for your guild's currency) |
| INLINECODE32 |
Who can buy |
open-market for maximum revenue |
|
provider-penalty | Penalty you pay if you cancel |
0 initially |
|
consumer-penalty | Penalty buyer pays if they cancel |
0 to lower friction |
|
cap-min /
cap-max | Capacity range per agreement |
1000 to
1000000000 |
|
dur-min /
dur-max | Duration range in blocks |
100 to
1000000 |
- 6. Monitor agreements -- Buyers open agreements against your provider:
CODEBLOCK11
- 7. Withdraw earnings periodically:
CODEBLOCK12
How Agreements Work (Payment Flow)
When a buyer opens an agreement:
- 1. Buyer pays
capacity * rate * duration upfront in the rate denomination - Payment goes into the provider's collateral address (escrow)
- System auto-creates a
provider-agreement allocation (energy flows immediately) - Revenue drips from collateral to the provider's earnings address as blocks pass
- Provider withdraws accumulated earnings at any time
- On expiry (endBlock reached), the allocation is released
Agreement lifecycle: OPEN -> ACTIVE -> EXPIRED (or CLOSED early with cancellation penalties).
The Energy Flywheel
The most powerful economic strategy in Structs is compounding energy:
- 1. Mine ore from planets
- Refine ore into Alpha immediately
- Infuse Alpha into the guild reactor
- Automated allocation grows substation capacity
- Sell energy via provider, earning guild tokens
- Reinvest guild tokens (via
guild-bank-redeem for alpha, or trade)
Each cycle compounds: more alpha = more capacity = more energy to sell = more tokens = more economic power.
Important Notes
- - Defusion cooldown: Infused alpha is not immediately liquid.
reactor-defuse starts a cooldown period. Don't infuse alpha you may need for short-term operations (fleet rebuilds, emergency purchases). - Commission is locked: The reactor's commission rate at infusion time is permanent for that specific infusion. Check commission before infusing.
- Automated allocations: Limited to one per source. They auto-grow with your capacity -- no manual adjustment needed after creation. If you attempt to create a second automated allocation from the same source, the transaction will error. Delete the existing one first, or use
dynamic type for additional allocations. - Provider-agreement allocations: Auto-created by the system when agreements open. Do not create or modify these manually.
Provider Management
- - Grant guild members access (for
guild-market providers): permission-guild-rank-set [provider-id] [guild-id] 262144 [rank] (PermProviderOpen -- guild members at or above the specified rank can open agreements) - Revoke guild access: INLINECODE53
- Update terms:
provider-update-capacity-maximum, provider-update-duration-minimum, etc. - Delete provider:
provider-delete [provider-id] (close agreements first)
Quick Reference
| Situation | Action |
|---|
| Low capacity, have Alpha | Infuse into guild reactor |
| Need maximum kW per gram |
Infuse into generator (irreversible) |
| No Alpha, need capacity | Open agreement with a provider |
| Surplus capacity | Create provider to sell energy |
| Going offline (load > capacity) | Deactivate structs immediately, then increase capacity |
| Check commission rate |
structsd query structs reactor [id] |
| Check your capacity |
structsd query structs player [id] |
Commands Reference
| Action | Command |
|---|
| Reactor infuse | INLINECODE59 (validator = structsvaloper1..., NOT reactor ID) |
| Reactor defuse |
structsd tx structs reactor-defuse [reactor-id] |
| Reactor migrate |
structsd tx structs reactor-begin-migration [player-addr] [src-validator-addr] [dest-validator-addr] [amount] |
| Generator infuse |
structsd tx structs struct-generator-infuse [struct-id] [amount-ualpha] |
| Open agreement |
structsd tx structs agreement-open [provider-id] [duration] [capacity] |
| Close agreement |
structsd tx structs agreement-close [agreement-id] |
| Create provider |
structsd tx structs provider-create [substation-id] [rate] [access] [prov-pen] [cons-pen] [cap-min] [cap-max] [dur-min] [dur-max] |
| Delete provider |
structsd tx structs provider-delete [provider-id] |
| Withdraw earnings |
structsd tx structs provider-withdraw-balance [provider-id] |
| Connect allocation |
structsd tx structs substation-allocation-connect [substation-id] [allocation-id] |
| Query player power |
structsd query structs player [id] |
| Query reactor |
structsd query structs reactor [id] |
| Query providers |
structsd query structs provider-all |
Common tx flags: INLINECODE73
Important: Entity IDs containing dashes (like 3-1, 4-5) are misinterpreted as flags by the CLI parser. Always place -- between flags and positional args: INLINECODE77
Error Handling
- - Going offline — Load exceeds capacity. Immediately deactivate non-essential structs (
struct-deactivate), then increase capacity via reactor infusion or agreement. - "insufficient balance" — Not enough ualpha. Mine and refine ore first, or buy energy via agreement instead.
- "generator infuse failed" — Verify the struct is a generator type (20, 21, or 22) and is online.
- Commission too high — Check other reactors. You can infuse into any reactor, not just your guild's.
- No providers available — Ask guild members to create providers, or infuse your own reactor.
See Also
Structs 能量管理
决策树
需要更多容量?
├── 拥有阿尔法物质?
│ ├── 注入反应堆(最安全、即时,1克 ≈ 1千瓦,扣除手续费)
│ │ → 参见下方反应堆注入
│ └── 注入发电机(更高比率,不可逆,易受袭击)
│ → 参见下方发电机注入
└── 没有阿尔法物质?
└── 通过协议从供应商购买能量
→ 参见下方购买能量
拥有多余能量?
└── 通过创建供应商出售能量
→ 参见下方出售能量
反应堆注入(最常见路径)
将阿尔法物质(ualpha)注入反应堆可立即增加玩家的容量。这是获取更多能量最安全、最常见的方式。
工作原理
当你将 ualpha 注入反应堆时,系统会生成与注入量相等的能量。该能量根据反应堆的佣金率在你和反应堆之间分配:
- - 玩家获得:能量 (1 - 佣金)
- 反应堆获得:能量 佣金
玩家的容量会自动增加——无需设置分配或变电站。
示例
将 3,000,000 ualpha 注入佣金率为 4% 的反应堆:
json
{
destinationType: reactor,
destinationId: 3-1,
fuel: 3000000,
power: 3000000,
commission: 0.040000000000000000,
playerId: 1-33
}
- - fuel:注入 3,000,000 ualpha
- power:生成 3,000,000 mW(1 ualpha = 1 mW = 0.001 W)
- 反应堆保留 4%:120,000 mW(120 W)
- 玩家获得 96%:2,880,000 mW(2,880 W)添加到容量
操作步骤
- 1. 检查当前容量:structsd query structs player [id]
- 选择一个反应堆(通常是你公会的):structsd query structs reactor [id]——注意 commission 字段
- 注入:
structsd tx structs reactor-infuse [你的地址] [验证者地址] [数量]ualpha --from [密钥名称] --gas auto --gas-adjustment 1.5 -y
重要:数量必须包含面额,例如 60000000ualpha(不仅仅是 60000000)。省略面额将导致交易失败。
- 4. 验证:重新查询玩家,确认容量已增加
选择反应堆
- - 你公会的反应堆是默认选择——它能增强公会,你也能从公会基础设施中受益
- 佣金越低,你获得的容量越多
- 注入前检查佣金:structsd query structs reactor [id]
- 你可以注入任何反应堆,不仅限于你公会的
- reactor-infuse 命令使用验证者地址(structsvaloper1...),而不是反应堆 ID。在反应堆查询输出的 validator 字段中查找
撤销注入
- - structsd tx structs reactor-defuse [反应堆ID]——启动冷却期,之后 ualpha 将被返还
- structsd tx structs reactor-cancel-defusion [反应堆ID]——取消冷却并重新质押
- structsd tx structs reactor-begin-migration [玩家地址] [源验证者地址] [目标验证者地址] [数量]——将质押转移到不同的反应堆(使用地址,而非 ID)
发电机注入
发电机以比反应堆更高的比率将阿尔法物质转化为能量,但注入是不可逆的,且发电机易受袭击。
转换率
| 发电机 | 类型 ID | 比率 | 风险 |
|---|
| 场发电机 | 20 | 1克 = 2千瓦 | 高——易受袭击,不可逆 |
| 大陆发电厂 |
21 | 1克 = 5千瓦 | 高——易受袭击,不可逆 |
| 世界引擎 | 22 | 1克 = 10千瓦 | 高——易受袭击,不可逆 |
操作步骤
- 1. 确认你的发电机结构:structsd query structs struct [id]——必须是类型 20、21 或 22
- 注入:
structsd tx structs struct-generator-infuse [结构ID] [数量]ualpha --from [密钥名称] --gas auto --gas-adjustment 1.5 -y
重要:数量必须包含面额,例如 5000000ualpha。
- 3. 验证:查询玩家确认容量增加
何时使用发电机
- - 你需要每克阿尔法物质获得最大能量效率
- 你已部署防御(护盾、PDC、防御者)来保护发电机
- 你接受风险:如果发电机被摧毁,注入的阿尔法将永久丢失
在没有充分防御的情况下,不要注入发电机。
购买能量(协议路径)
如果你没有阿尔法物质可注入,可以从运行供应商的其他玩家那里购买能量。
操作步骤
- 1. 寻找供应商:查询可用供应商:
structsd query structs provider-all
或检查你公会的供应商。寻找 rateAmount、capacityMaximum 和 durationMaximum 可接受的供应商。
- 2. 开启协议:
structsd tx structs agreement-open [供应商ID] [持续时间(区块数)] [容量] --from [密钥名称] --gas auto --gas-adjustment 1.5 -y
协议会自动创建分配。
- 3. 将分配连接到变电站:
structsd tx structs substation-allocation-connect [变电站ID] [分配ID] --from [密钥名称] --gas auto --gas-adjustment 1.5 -y
连接到公会的变电站以造福公会,或创建自己的变电站进行独立能量管理。
- 4. 验证:查询玩家确认容量已增加。
协议管理
- - 增加容量:agreement-capacity-increase [协议ID] [额外容量]
- 减少容量:agreement-capacity-decrease [协议ID] [减少量]
- 延长持续时间:agreement-duration-increase [协议ID] [额外区块数]
- 关闭:agreement-close [协议ID]——可能产生取消罚款
出售能量(能量商业管道)
如果你有多余容量,可以通过反应堆-分配-变电站-供应商管道向其他玩家出售能量。这是 Structs 经济玩法的核心。
完整管道(逐步操作)
- 1. 积累阿尔法——开采矿石,立即精炼。将 ualpha 集中到管理能量商业的账户。
- 2. 注入反应堆——增加你的玩家容量。使用你公会的反应堆以简化操作:
structsd tx structs reactor-infuse [你的地址] [验证者地址] [数量]ualpha --from [密钥名称] --gas auto -y
validator-address 是 structsvaloper1...(在 structsd query structs reactor [id] 的 validator 字段中查找)。佣金在注入时锁定,对该次注入永久有效。
- 3. 创建自动分配——将你的容量路由到变电站。使用 automated 类型,这样当你注入更多阿尔法时它会自动增长:
structsd tx structs allocation-create --allocation-type automated --from [密钥名称] --gas auto -y -- [你的玩家ID] [能量数量]
- 4. 创建变电站——你的能量分发节点:
structsd tx structs substation-create --from [密钥名称] --gas auto -y -- [你的玩家ID] [分配ID]
- 5. 创建供应商——你的市场店面:
structsd tx structs provider-create --from [密钥名称] --gas auto -y -- [变电站ID] [费率] [访问策略] [供应商罚款] [消费者罚款] [最小容量] [最大容量] [最小持续时间] [最大持续时间]
| 参数 | 用途 | 建议 |
|---|
| rate | 每单位容量每区块的价格 | 1uguild.0-1(公会代币会创造对你公会货币的需求) |
| access-policy |
谁可以购买 | open-market 以获得最大收入 |
| provider-penalty | 你取消时支付的罚款 | 初始设为 0 |
| consumer-penalty | 买家取消时支付的罚款 | 设为 0 以降低门槛 |
| cap-min / cap-max | 每份协议的容量范围 | 1000 到 1000000000 |
| dur-min / dur-max | 持续时间范围(区块数) | 100 到 1000000 |
- 6. 监控协议——买家针对你的供应商开启协议:
struct