How it works
Place a tower, supply fuel and let it warm up. Its heated area gradually expands as the temperature rises, reaching maximum coverage at 1000 °C.
The heated area depends only on the tower's temperature. At maximum fuel consumption, the tower takes approximately 8 minutes to reach its maximum temperature.
Area heating consumes a fixed 120 MW of heat per tower, regardless of coverage size or the number of buildings inside it. Adding more machines within an already heated area does not increase this cost.

The tower is tall and can obscure nearby buildings. Use the Toggle tall entity visibility shortcut to make it translucent and work more comfortably around its base (Factorio 2.1+ only)
Default stats
| Property | Value |
|---|---|
| Footprint | 5×5 tiles |
| Maximum heated area | 97×97 tiles |
| Maximum temperature | 1000 °C |
| Max. consumption | 180 MW |
| Area heating consumption | 120 MW (constant) |
| Total heat capacity | 30 MJ/°C |
Research and construction
Research becomes available after Planet discovery Aquilo.
- 240 research units, taking 15 seconds each.
- Uses the same nine science pack types as Planet discovery Aquilo.
- No military or cryogenic science packs required.

Each tower costs:
- 3000 heat pipes
- 200 tungsten plates
- 200 refined concrete

Mod settings
Adjust these values in startup settings:
- Max. consumption: maximum power from burning fuel.
- Area heating consumption: fixed heat consumption per tower.
- Total heat capacity: heat required to raise the tower's temperature.
Max. consumption must exceed area heating consumption; otherwise, the tower cannot warm up.
Performance
I've optimized the heating logic as much as possible and left most of the work to Factorio's engine, aiming for reasonable performance with 10–20 towers. A 120 SPM base typically needs only one or two towers, depending on its layout.
Heating coverage uses Factorio's native heating system, with buried heat pipes arranged in horizontal and vertical strips. These strips are added and removed over multiple ticks to avoid performance spikes from processing too many strips at once.

Heating update latency can be changed during play from 1 to 10 seconds, with a default of 2 seconds. Higher values can improve performance, but coverage responds more slowly to temperature changes.
Feedback welcome
Suggestions, ideas, and bug reports are always welcome! Feel free to share them in the discussion tab.