Skip to content

Energy Grid

denfry edited this page Oct 13, 2026 · 1 revision

Energy Grid

Note

Design stage. This page describes planned mechanics from the design document. Not implemented yet — see Roadmap (milestones M2, M3, M5, M8–M9; hydro and CHP are backlog).

Prompt Critical has its own AC power grid. It is not a Forge Energy (FE) pipe with a different name: buses have voltage, the grid has frequency and inertia, generators must be synchronized, faults are cleared by protection relays, and a frequency collapse can black out your whole site. FE from other mods connects at the edge through a converter block, but it cannot run or hold up the grid.

The same section of the design owns the combustion model (used by coal, oil, and chemistry), boilers, the I0 steam engine, gas turbines, emergency diesels, station batteries, cooling towers and other heat sinks.

Milestones: M2 — coal boiler and steam engine (I0); M3 — generator, grid, protection relays (I1); M5 — cooling towers, emergency diesels; M6 — CC: Tweaked peripherals pc_*; M8 — gas turbine; M9 — combined cycle; M15 — hydro, pumped storage, CHP (backlog).

Turbine and generator models

How the grid is simulated

Level What How Time domain
Electromechanics rotor swings, frequency of each electrical island per-machine swing equation, 3rd-order machine model (δ, ω, E'q) FAST, 2 substeps of 25 ms
Network bus voltages, branch currents, P and Q quasi-steady positive-sequence phasor (RMS) model, complex admittance matrix Y FAST, solved every substep
Unbalanced faults single- and two-phase faults negative/zero-sequence shunt at the fault bus FAST
Protection and automation overcurrent, differential, distance, Buchholz, frequency, reverse power, loss of excitation, pole slip, breaker failure, auto-reclose, UFLS hardware functions, settings in multiples of the 50 ms tick FAST, every tick, never degraded
Equipment heating transformer oil and windings, line conductors, insulation aging simplified IEC 60076-7 / IEEE 738 SLOW (transformers), FAST (conductors)
Combustion stoichiometry, excess air, efficiency, CO, NOx, SO₂, CO₂ Combustor: fuel elemental composition to products and heat FAST, emissions accumulate in SLOW
Cooling cooling towers, spray ponds, intakes Merkel / ε-NTU, weather from biome FAST (1 Hz), fouling SLOW
Demand and market daily load curve, NPC consumers, contracts load profile by Minecraft time of day FAST power, SLOW metering

Electricity is always real-time: a watt on the grid is a watt "now". The grid is never sped up. Machines that run in the SLOW domain draw P_real = E_spec × ṁ_real from it.

The chosen network model (machines behind transient reactance + linear YV = I, LU factorization only when a breaker changes state) costs about 15–25 µs per tick for the reference 60-bus, 12-machine grid. Full Newton–Raphson AC was rejected as too expensive; DC load flow was rejected because it has no voltages, reactive power or fault currents.

Base values

Quantity Value Config key
Base power 100 MVA grid.base_mva
Nominal frequency 50 Hz (60 allowed) grid.nominal_frequency_hz
Voltage classes 0.4; 6.3; 10.5; 35; 110; 220 kV grid.voltage_classes
Create coupling 1000 W/SU, 2.5 J/FE energy.w_per_su, energy.j_per_fe

Inside sim.grid everything is in per-unit; snapshots, tags and Lua only see SI units. Every loss (I²R, transformer no-load, station auxiliaries) is explicit, and the island balance ΣP_gen = ΣP_load + ΣP_loss must close to 10⁻⁶ pu per tick.

Grid elements

Element Model Built from
Bus node with complex voltage connected busbar blocks of one class, switchgear cells, 0.4 kV switchboards, generator terminals
Line π-equivalent, r + jx, b/2 at each end conductor per-km data × span lengths
Cable as a line, 30–50× more capacitance power_cable
Transformer ideal transformer with tap + short-circuit impedance + magnetizing shunt rating, uk, losses, on-load tap changer
Breaker ideal switch, open = branch removed from Y state, open/close time
Synchronous machine EMF behind jx'd see below
Load ZIP model with frequency dependence consumers
Induction motor equivalent circuit with Kloss torque electric_motor
Capacitor bank / reactor fixed admittance capacitor_bank
FE interface, rectifier constant-power source/sink, grid-following grid_fe_interface, rectifier_unit

Voltage classes: the progression ladder

Voltage class is the main tier of the electrical side (the idea comes from GregTech: New Horizons, but with physics instead of arbitrary limits). Each block has a rated voltage; a bus takes the class of the blocks it is built from. Recipes require insulation materials from other industries, so classes unlock through the production chain, not research points.

Class Rated / max, kV Era Equipment Insulation and recipe gates
LV 0.4 0.38–0.40 / 0.42 I0–I1 shaft_generator ≤ 0.5 MVA, lv_switchboard, electric_motor ≤ 250 kW, electric process_heater, process machines, small grid_fe_interface rubber, impregnated paper + bitumen, varnish; bakelite in apparatus; glazed ceramic pin insulators
MV 6–10 6.3–10.5 / 7.2–12 I1 electric_generator, large shaft_generator, motors > 250 kW, switchgear_cell, distribution_transformer (dry, ≤ 1 MVA), wooden_pole, concrete_pole porcelain insulator_pin; mica and glass cloth; paper + bitumen + lead cable
35 35 / 40.5 I1–I2 power_transformer_35, oil circuit breakers, inter-shop lines transformer_oil (from the refinery); insulator_disc ×3
110 110 / 126 I2 power_transformer, hv_circuit_breaker, transmission_tower, inter-site power lines, NPP generator step-up transformers transformer_oil, bushing_hv, insulator_disc ×7–8, insulator_post; cables only with xlpe
220+ 220 / 252 I3+ power_transformer_220, SF₆ breakers, interconnectors sulfur_hexafluoride, insulator_disc ×13–14, xlpe; 330–500 kV is backlog

Connecting a block to the wrong class is allowed, and the consequences follow from k = U / U_rated:

k Result
0.9–1.1 normal
1.1–1.3 accelerated insulation aging (rate ∝ k¹²), core over-excitation, heaters ∝ k²
above test voltage ratio (≈ 6 for 0.4 kV, ≈ 4 for 10 kV) insulation breakdown: internal fault, protection trips the feeder, block goes FAULTED and needs a winding replacement; an arc not cleared in 0.5 s starts a fire
0.7–0.9 motors draw more current and overheat; electronics below 0.85 reboot; lamps dim
< 0.7 motors stall, contactors drop out, Create shafts stop

Example: a 0.4 kV motor cabled to a 6 kV bus sees k = 15 and fails on the first tick. Engineer's goggles show the voltage class of cables and blocks and warn about a mismatch, but nothing prevents the mistake.

Generators

ID What Range
electric_generator turbine generator on the turbine shaft, multiblock 3×3×N 6–100 MVA, 6.3/10.5 kV, 3000 rpm
shaft_generator generator on a Create shaft (I0 steam engine, water wheel, windmill) 0.1–5 MVA, 0.4/6.3 kV, input 16–256 RPM via built-in gearbox
generator_exciter exciter: rotating (I1), static thyristor (A2+), brushless (A3+) —
diesel_generator emergency diesel generator 0.5–6 MVA

An electric_generator that is not cabled to a bus runs in "direct FE" mode (no protection, no synchronization, no reactive power). Connected to a bus, it becomes a synchronous machine of the grid.

Parameter (pu) Turbo-generator Hydro (backlog) Diesel set shaft_generator
x_d 1.8 1.0 2.2 2.0
x'_d 0.25 0.30 0.25 0.30
x''_d 0.18 0.22 0.15 0.20
T'_d0, s 7.0 6.0 3.0 2.5
H, s 4.0 (with turbine) 3.0 1.0 0.6 + Create flywheel
Efficiency 0.98 0.97 0.95 0.94

Synchronizing a generator

Synchronization is an operator mini-game. The generator is spun up to about 3000 rpm and excited, with its breaker open. The panel shows an instrument_synchroscope whose needle rotates at the slip frequency, plus two voltmeters and two frequency meters. You trim turbine speed (pc_turbine.setSpeedTarget or the governor lever) and voltage, get the needle turning slowly clockwise (one turn per 10–20 s), and close the breaker ahead of 12 o'clock to account for breaker closing time.

Advance angle: φ_adv = 360° × Δf × t_cb. With Δf = 0.1 Hz and t_cb = 0.08 s that is 2.9°; at Δf = 1 Hz it is 29°, which is why manual sync at large slip is nearly always off.

Synchronizing limit Tolerance Key
Phase difference at closing ±10° grid.sync_max_angle_deg
Voltage difference 0 to +5 % (generator not below grid) grid.sync_max_dv
Slip ≤ 0.067 Hz grid.sync_max_slip_hz

Closing out of phase produces a shaft torque spike (with X''Σ = 0.35: 10° → 0.5 pu, 30° → 1.48, 60° → 2.86, 120° → 4.95, 180° → 5.71):

Peak torque, pu Result
< 1.0 normal, audible thump
1.0–1.5 heavy jolt, 3× vibration for 10 s
1.5–3.0 cumulative shaft fatigue damage, loosened coupling
3.0–5.0 generator differential may trip, stator end-winding damage
≥ 5.0 coupling shears; turbine overspeeds, generator motors

On a shaft_generator the torque spike goes into the Create kinetic network as a one-tick stress jump and almost always overstresses it. A cheap fix is generator_coupling with a shear pin (consumable, breaks above 2 pu and saves the Create shaft).

The relay_sync_check module (ANSI 25) blocks closing outside the window; without it you can close at any moment. An auto-synchronizer is not a mod device — build it as a PLC function block or a Lua program.

Frequency control

  • Primary control (droop). Turbine governors have 4 % droop. Example: a 200 MVA island losing 20 MW settles at −0.19 Hz if machines have headroom. If every machine is at its limit (no spinning reserve), only load damping remains and frequency drops 4.4 Hz — straight into load shedding. Governor deadband is ±0.075 Hz; drum boilers limit steam turbines to 2–4 %/min.
  • Secondary control (AGC) is your job. The mod gives you pc_grid.getIsland(id) (frequency, imbalance, tie-line flows), pc_turbine.setLoadTarget / pc_gas_turbine.setLoadTarget and a PI function block, and you build the classic area control error loop: ACE = ΔP_tie + B·Δf.
  • Isochronous mode for a single machine feeding an isolated bus (diesel during station blackout, black start). Only one isochronous machine per island: two of them fight, and one ends up motoring.

Protection relays

Protection is hardware. relay_* modules go into a relay_cabinet or a switchgear cell. Settings are changed only physically (GUI with an engineer's key); Lua gets E_HARDWARE_ONLY.

ANSI Function Default setting
50 Instantaneous overcurrent 1.3 × max fault current at end of zone, 1 tick
51 Inverse-time overcurrent (IEC SI/VI/EI or definite) 1.2–1.5 × max load, TMS 0.05–1
87T/87G/87B Differential (transformer, generator, bus) Id,min 0.3 pu, slope 0.3 / 0.6, 2nd-harmonic blocking
21 Distance (mho) Z1 0.85 ZL 0 s, Z2 1.25 ZL 0.4 s, Z3 2 ZL 1.2 s
63 Buchholz (gas) alarm / trip
49 Thermal overload hot spot > 140 °C
27 / 59 Under/overvoltage 0.7 pu 3 s / 1.15 pu 2 s
81U / 81O Under/overfrequency generators: 47.5 Hz 10 s, 47.0 Hz 0.5 s; 51.5 Hz 1 s
32R Reverse power −2 % P_rated, 3 s
40 Loss of excitation Mason characteristic
78 Pole slip 2 slips → trip
25 Synchronism check sync window
50BF Breaker failure 0.25 s, trips all adjacent breakers
79 Auto-reclose 1 shot, 1.0 s

Relay generations follow the instrumentation tree: A1 electromechanical (50, 51, 87 without harmonic blocking, 27/59, 81 ±0.1 Hz, needs DC to trip), A2 static (+21, +40, +78, harmonic blocking, ±0.02 Hz), A3 microprocessor (all functions, sequence-of-events log, 2 s disturbance record via pc_breaker.getDisturbanceRecord()). An A1 differential relay without harmonic blocking trips on transformer inrush with probability 0.3.

electric_generator cannot join the grid without 87G, 51/27, 40, 32R, 81U/O, 59 and 78. A shaft_generator ≤ 1 MVA only needs 51 + 27 + 81U.

You build the time-grading map yourself (0.3–0.5 s steps). Fast protection clears faults in 0.1–0.15 s; critical clearing time for a typical generator is 0.27 s, so 0.5 s backup overcurrent loses synchronism. On 6–35 kV (isolated neutral) a single-phase earth fault is not a short circuit: the grid keeps running with a pc_ground_fault alarm until it escalates.

Under-frequency load shedding (UFLS)

UFLS disconnects consumers in stages as frequency falls. It is a hardware module, relay_ufls, installed in lv_switchboard, switchgear_cell or grid_consumer. You assign each load to a stage.

Stage Setting, Hz Delay, s Recommended share of island load
UFLS-1/1 48.8 0.2 8 %
UFLS-1/2 48.6 0.2 8 %
UFLS-1/3 48.4 0.2 8 %
UFLS-1/4 48.2 0.2 8 %
UFLS-1/5 48.0 0.2 8 %
UFLS-2/1 49.0 10 5 %
UFLS-2/2 49.0 20 5 %
Frequency auto-reclose ≥ 49.7 10–60 reconnection

Generators trip on 81U at 47.5 Hz, so shedding must act first. Worked example: three 100 MVA machines carry 210 MW; one trips; frequency falls at −2.19 Hz/s and reaches 48.8 Hz in 0.55 s, before steam governors can respond. Stages 1–4 shed ≈ 67 MW, the minimum stays at 47.8–48.3 Hz, and frequency recovers to 49.5 Hz within 30 s. Shed NPC consumers penalize the supplier.

Blackout and black start

Blackout is not scripted. It emerges when protection cascades: overloaded line sags into a tree → line trips → neighbours overload or zone 3 trips → grid splits into deficit islands → not enough UFLS → 81U trips generators → island below 47 Hz goes dark. Motors coast down, Create shafts stop, FE interfaces stop exporting, and power station auxiliaries lose supply. For a reactor this is loss of offsite power (LOOP); if the diesels also fail, it is a station blackout (see Accidents). The event pc_grid_blackout{island, cause, t} is logged.

Black start is a tutorial scenario:

Step Player action What gets in the way
1 Start a self-starting source: diesel (air start), gas turbine with diesel/battery starter, hydro (backlog), I0 steam engine on stored steam needs starting air or battery charge
2 Energize the dead auxiliary bus dead-bus closing needs no sync
3 Start auxiliaries one at a time: feed pump, fans, mills motor inrush 5–7× rated sags a small diesel
4 Light the boiler, raise pressure, roll the turbine boiler takes 1–3 h of physical time; furnace purge is mandatory
5 Synchronize the turbo-generator with the diesel island small inertia, frequency wanders
6 Pick up lines and loads in blocks ≤ 5–10 % of island capacity per step; cold load pickup ×2.0 decaying over 30 min
7 Join islands synchronize via a tie breaker

Success: all load restored, 50 ± 0.2 Hz, no out-of-phase closing above 1.5 pu.

Consumers, load curve and dispatcher

grid_consumer is an external consumer substation (town, village, NPC factory) placed at the end of your line. Its contracted power is confirmed by a contract (see Environment and Economy). Demand follows a daily curve with ±2 % noise and a heating correction in cold biomes:

Hour 0 3.5 6 9 12 14 17 19.5 22
Relative load 0.78 0.60 0.74 0.92 0.82 0.81 0.86 1.00 0.86

One Minecraft day is 20 real minutes, so the morning ramp from 0.60 to 0.92 takes about 275 real seconds. That gives each plant type a role:

Source Ramp rate Role
Nuclear fast mechanically, but power reduction triggers xenon poisoning base load
Coal plant, drum boiler 2–4 %/min base and mid-merit
Gas turbine 10–25 %/min, start 5–15 min peak
Pumped storage (backlog) seconds peak, frequency control
FE import instant only with an existing grid

Consumers pay by energy_meter with time-of-day pricing. Unserved energy (UFLS, blackout) costs 10–50 × tariff (market.voll_multiplier); frequency outside ±0.2 Hz for over a minute is a quality penalty. Arc furnaces and rolling mills cause flicker on shared buses.

grid_dispatch_center is the dispatcher console (peripheral pc_grid). It sees all islands, buses, branches, generators and meters of your station and contracted stations. The mod does not plan the schedule for you: you build the daily generation plan, AGC, reserve allocation, maintenance outage schedule and power trading.

Forge Energy boundary and DC

grid_fe_interface connects a 0.4–10 kV bus with an FE network of another mod.

Parameter Value
Ratings 100 kW, 1 MW, 10 MW
Efficiency 0.97
Buffer 1 s of rated power
Operating window 49–51 Hz, 0.9–1.1 pu voltage

Modes: IMPORT (grid → FE; 1 MW = 19,400 FE/t), EXPORT (FE → grid, grid-following like an inverter: no inertia, cannot form a grid, disconnects in 0.2 s on loss of voltage), AUTO (keep buffer charged). FE generators therefore cannot black-start the grid or hold frequency. Above 50 % FE share of an island, the dispatcher gets a stability warning.

rectifier_unit (thyristor, I3; mercury-arc I1–I2 backlog) feeds DC busbars (busbar_dc) for electrolysis: aluminium and copper (Coal and Metallurgy), chlor-alkali (Petrochemistry), hydrogen, fluorine and magnesium cells (Nuclear Fuel Cycle). Losing the rectifier stops the entire potline; aluminium pots freeze within minutes.

Combustion model

sim.combustion.Combustor is a shared library used by boilers, furnaces, heaters, flares and engines across coal, oil and chemistry. It takes fuel elemental composition and computes stoichiometric air, excess air, efficiency, CO from incomplete combustion, adiabatic flame temperature, NOx, SO₂ and CO₂. Emissions go to the emissions ledger (see Environment and Economy).

Boilers

Boiler Era Design Steam Gross efficiency Fuel
fire_tube_boiler I0 horizontal shell 3×3×6, furnace tube, smoke tubes, large water volume saturated, 0.8–1.6 MPa, 1–10 t/h 0.65–0.75 coal on a grate, wood
water_tube_boiler I1 multiblock: water-wall furnace, steam_drum, superheater, economizer, air heater 4–14 MPa, 440–560 °C, 20–500 t/h 0.88–0.93 pulverized coal, gas, fuel oil, coke oven / blast furnace gas, mine methane
hrsg I3 heat recovery steam generator 4–10 MPa per gas gas turbine exhaust, dry coke quenching gas

Water and steam are nodes in the common thermal-hydraulic network (Reactor Physics); the boiler block only handles the gas side.

I0 fire-tube boiler. 5 MW(th), 1.2 MPa saturated, 10 m³ water. Fed by hand or by a grate_stoker chain grate on a Create shaft; natural draft from a chimney (20 m stack at 250 °C ≈ 110 Pa). Coal at 0.3 kg/s gives ≈ 6.7 t/h of steam — one 100 kg coal item every 333 s. Safety fittings are all hardware:

Device Function Without it
valve_relief relieves at 1.1 × working pressure pressure rises until the shell ruptures
Gauge glass (instrument_level, I0 type) visible water level operator is blind
fusible_plug melts at 232 °C if the furnace crown is exposed; steam jet quenches the fire with a whistle crown overheats and fails
Feed injector / pump makeup low water

A boiler explosion (10 t of water at 1.2 MPa) releases ≈ 0.64 GJ, about 46 kg TNT equivalent with a 0.3 blast fraction. It is the main accident of era I0, and the cheap plug prevents it.

I1 water-tube drum boiler. Multiblock: furnace walls boiler_wall (min 5×8×5), 1–8 boiler_burner, steam_drum, boiler_superheater, boiler_economizer, air_preheater, forced_draft_fan and induced_draft_fan (Create shaft or electric_motor), coal_mill for pulverized coal, chimney. Example: 100 MW of gas → 133 t/h at 9.8 MPa / 540 °C → ≈ 35 MW(e). Control loops (three-element drum level, pressure → fuel, cross-limited fuel/air ratio, O₂ trim, furnace draft −20…−50 Pa, attemperation) are built by you on a PLC. Auxiliaries take 6–9 % of a coal plant's output.

Burner management system (BMS) is hardware, following NFPA 85: OFF → PURGE (≥ 25 % air, ≥ 5 volume changes, ≥ 300 s) → PURGE_COMPLETE → IGNITER_TRIAL (flame within 10 s) → IGNITER_ON → MAIN_TRIAL (5 s gas / 10 s oil or coal) → RUNNING → MFT (fuel valves closed ≤ 1 s) → POST_PURGE (300 s). Fuel admitted without a flame accumulates; inside the flammable range (methane 5–15 %) with an ignition source it explodes. A failed flame detector or a key bypass makes this possible.

I0 steam engine

steam_engine_cylinder is a double-acting reciprocating engine multiblock (cylinder with slide valve, crosshead, connecting rod, crankshaft with flywheel, Watt governor) that drives a Create shaft at 16/32/64 RPM. Example: 0.4 m bore, 0.6 m stroke, 1.1 MPa, 25 % cut-off, 120 rpm → 119 kW shaft power, 16 kg/(kW·h) steam. One I0 boiler feeds about three cylinders (≈ 360 kW = 360 SU at 1000 W/SU). Without a flywheel speed pulsates ±10 %. The Watt governor without a dashpot hunts (ζ = 0.1); the governor_dashpot module brings ζ to 0.7 — the first control theory lesson in the game. Create's own Blaze Burner steam engines stay as they are.

Gas turbines and combined cycle

gas_turbine is a multiblock (compressor, combustor, turbine), either single-shaft with a generator or with a free power turbine for mechanical drive of pipeline and gas plant compressors (Oil and Gas). Example: pressure ratio 12, turbine inlet 1373 K → exhaust 538 °C, ≈ 33 % efficiency; a 25 MW unit moves ≈ 80 kg/s of air. Hot biomes reduce output (−0.69 %/K; −14 % in a summer desert).

  • Fuel control is min-select of speed/load, exhaust temperature ≤ 560 °C, and acceleration. Fueling too fast causes compressor surge.
  • Start: starter (2–3 % of rating — ≈ 600 kW for 25 MW, from a Create shaft, electric_motor or diesel) to 20–25 % speed, purge, ignition, idle, synchronize, load at 10–25 %/min. 5–10 min (aeroderivative) to 15–30 min (heavy-duty).
  • Fuel: sales_gas (main), diesel_fuel (backup). Untreated natural_gas is forbidden. Na+K above ≈ 0.5–1 ppm causes hot corrosion of blades. NOx 150–250 ppm diffusion, 40–60 with water injection (demineralized_water), 25 ppm DLN.

Combined cycle. hrsg with superheater, evaporator and economizer sections, pinch ≥ 10 K. Example: 80 kg/s exhaust at 538 °C → 36.8 MW heat → 11 MW steam turbine → 36 MW plant at ≈ 47 %. Supplementary firing is backlog.

Emergency diesel generators and batteries

Diesels are the independent AC source for reactor safety systems and for black start. Without them, loss of offsite power at a reactor becomes a station blackout immediately.

Parameter Value
Rating 0.5–6.3 MW (NPP default 5.6 MW)
Speed 750 or 1000 rpm
Ready to load ≤ 15 s (typically 10–12 s)
Start compressed air, 3 MPa bottles, ≥ 5 starts
Specific fuel consumption 0.205 kg/(kW·h) minimum, higher at part load
Fuel storage fuel_day_tank for 8 h + storage
Inertia H 1.0 s

A 5.6 MW unit burns 1.15 t/h of diesel_fuel — one of the biggest diesel consumers in the complex, so the refinery feeds the plant's safety.

Start sequence: air starter to 120 rpm (2–3 s) → firing, turbocharger lag → 90 % speed → field flash from battery → ready → close onto dead bus → stepped loading. Fail-to-start probability is 0.005 base, rising with overdue maintenance (30-day interval), cetane number below 45, and cold below 5 °C without a jacket_heater (×4). Failure while running is 10⁻³ per hour. Monthly test runs are an operations task (Operations and Safety).

The load_sequencer hardware module adds load steps every 5 s; acceptance per IEEE 387: frequency ≥ 47.5 Hz, voltage ≥ 75 %, recovery within 2 s.

station_battery (lead-acid, 220 V, 104–108 cells) and battery_charger supply DC for breaker trip coils, relays, emergency lighting, BMS and safety controllers, and diesel starting. Without DC, breakers cannot trip and fail-safe logic shuts boilers down. Charging releases hydrogen and requires room ventilation. Grid events for the reactor: LOOP, EMERGENCY_AC_RESTORED, SBO (no diesel ready within 60 s), DC_DEPLETED, OFFSITE_RESTORED.

Reciprocating engines on a Create shaft

Block Type Power Fuel Efficiency
gasoline_engine spark, 4-stroke 10–300 kW gasoline (octane, sulfur) 0.25–0.30
diesel_engine compression ignition, turbo 20 kW – 6 MW diesel_fuel (cetane, sulfur, density) 0.35–0.42
gas_engine gas spark 100 kW – 4 MW sales_gas, mine_methane, coke_oven_gas, associated_gas (methane number) 0.35–0.42

Fuel quality matters: low octane causes knock (with an A3 knock sensor, −1.5 % power per octane point short; without it, piston wear and eventually a holed piston), low cetane means rough running, black smoke and hard cold starts, low methane number (coke oven gas) cuts output 30–50 %, and sulfur becomes SO₂ emissions.

Process heaters

process_heater comes in two kinds: electric (50 kW – 5 MW, 0.98 efficiency; burns out in seconds if run dry) and fired (multiblock with fired_heater_casing and chimney, 5–100 MW, 0.80–0.90; used by refinery and chemical furnaces). Low coil flow leads to film overheating, coking, tube burn-through and a furnace fire.

Heat sinks and cooling towers

Every thermal plant rejects more heat than it produces electricity. Weather comes from the biome.

Block Draft Size Capacity
cooling_tower_cell fan on a Create shaft or electric_motor 3×3×3 module, placed in rows ≈ 25 kg/s water, ≈ 10 MW at 10 K range
Natural-draft tower (cooling_tower_shell + cooling_tower_fill + cooling_tower_basin) natural diameter 15–60, height 40–150 blocks 30 m fill ≈ 80 MW
spray_pond_nozzle none over a pond of water blocks 40–65 % approach per pass, wind-dependent

Towers are modelled with the Merkel equation. For 100 MW rejected, evaporation is ≈ 33 kg/s and makeup ≈ 45 kg/s at 4 cycles of concentration (limited by scaling — makeup comes from water treatment). Fans take ≈ 0.4 % of rejected heat. On a hot humid jungle day outlet water reaches ≈ 31 °C, condenser pressure rises and turbine output drops. The spray pond is the safety-grade heat sink for a reactor: no fans, works during station blackout if pumps run from diesels. River and pond intakes and condenser biofouling (controlled with chlorine) are also modelled. The steam plume above a tower is a visible sign that the plant is running.

Hydro, pumped storage and CHP (backlog, M15)

  • Hydro / pumped storage: hydro_turbine, penstock, dam_gate. P = η·ρ·g·Q·H with η 0.88–0.93; head from water levels, reservoir volume snapshotted at build time. Pumped storage cycle efficiency 0.70–0.80. Fastest regulating power (zero to full in 1–2 min) and black-start capable. Create water wheels stay as they are.
  • CHP and district heating: back-pressure or extraction turbine, district_heat_exchanger, hot water network (supply 70–150 °C, return 40–70 °C). Heating demand is estimated from settlement building volume; heating failure in winter is penalized. Fuel utilization up to 0.80–0.85.

Weather: lightning on power lines

During a thunderstorm each loaded line span receives a Poisson stream of strikes (attractive width W = b + 28·h^0.6 m). Vanilla lightning hitting a tower also counts. A strike on a phase conductor without shield wire flashes over almost always; a strike on a tower causes back-flashover depending on tower ground resistance. Example: 110 kV line with 7 discs flashes over with P = 0.15 at 10 Ω grounding and P = 0.92 at 50 Ω. Grounding uses ground_electrode rods (3 m rod in 100 Ω·m soil = 33.5 Ω). Substations need a surge_arrester to protect transformers. A vanilla minecraft:lightning_rod on a tower works as the tower's air terminal but does not replace the shield wire. Icing of conductors is backlog.

Cross-industry links

Input From Used for
raw_coal, washed_coal coal mine I0–I1 boiler fuel
coke_oven_gas, blast_furnace_gas, mine_methane coke plant, blast furnace, mine boiler and engine fuel instead of flaring
sales_gas, fuel_oil, diesel_fuel, gasoline oil and gas boilers, gas turbines, diesels, engines
transformer_oil, lube_oil refinery transformers 35 kV+, bearings
copper_wire, aluminium_ingot, steel products metallurgy conductors, windings, towers, tanks
seamless_pipe pipe mill boiler water walls and superheaters
boiler_feedwater, demineralized_water, cooling_water water treatment boilers, gas turbine injection, tower makeup
polyethylene, epoxy_resin, bakelite, sulfur_hexafluoride, chlorine chemistry cable insulation, relays, SF₆ breakers, condenser chlorination
xlpe irradiated polyethylene (Isotopes and RTG) 110 kV+ cables
vacuum_tube, transistor, integrated_circuit instrumentation tree A1–A3 relays, exciters

Outputs: electricity for all industries, DC for electrolysis, Create rotation through electric_motor, process steam, process_heater heat, mechanical drive of compressors, flue gas and emissions, fly_ash and boiler_slag for cement and concrete, and LOOP/SBO events for the reactor. The chain "coal → steam → power → graphite → reactor": coal fires the boiler, the generator powers the Acheson furnace, and coke-oven pitch becomes reactor graphite.

CC: Tweaked peripherals

pc_generator, pc_breaker, pc_transformer, pc_grid, pc_boiler, pc_gas_turbine. Events include pc_sync_closed, pc_breaker_trip, pc_ground_fault and pc_grid_blackout. Protection settings and BMS logic are never writable from Lua. See CC: Tweaked API.

See also

Clone this wiki locally