Sep 13, 2026 · From Ashes to Orbit
Power is just connectivity
No wires, no cable tool. Buildings that touch share a grid, a grid is live only with a running generator, and a lot of strategy falls out of that one rule.
Most colony games make you lay cables or conduits. I wanted power without a cable tool, so power in From Ashes to Orbit is simply connectivity: buildings that share an edge are on the same grid.
The rule
PowerGrid unions completed buildings that share a footprint edge. That includes touching modules and the corridor runs that auto-link them. A grid is live when it holds a running generator. Modules flagged as requiring power, such as the workshop, the armory and hydroponics, go dark without one and show a NO POWER tag in the HUD, with a status line in the building panel.
If a generator fails its upkeep, the whole grid goes dark with it.
What one rule gives you
- Layout becomes strategy. Where you put the power plant decides which buildings work.
- A wall ring only defends a compound if it touches the power plant, because sentry turrets are inert when dark. Wall tiles and doors conduct power the same way modules do.
- Mechs charge by parking beside a power plant, and they head back to one on their own when the battery runs low.
- There is nothing to explain. The player learns the rule by seeing a building go dark.
Variable output
The first power plant produced a flat ten kilowatts. Later I added solar arrays, whose output follows the sun, and battery banks, which soak up surplus and cover shortfalls. That needed the grid to ask a generator for its live output instead of reading a number off its definition, so I introduced a small interface for it.
Solar panels and batteries mark their grid dirty only when their output moves by more than half a kilowatt. Without that threshold, a smoothly changing sun would force the grid to recompute every frame for no visible change.
Adding a new kind of building
New module behaviours are installed from a string key on the building definition, such as research_lab, solar_array or battery_bank. A new type of module is one case in one switch plus its own component, with no schema change. I found that boundary worth keeping: data decides which behaviour a building has, and code decides what the behaviour does.