Fluids & Gases
NeroTech's gas chain turns water and electricity into two working gases — hydrogen and oxygen — and then spends them on clean power and better ore yields. Alongside it sits the coolant loop, the active answer to the thermal system's heat.
Everything here is built on Neroland Core's shared fluid and gas contracts, so NeroTech's tanks interoperate with Core's own Fluid Tank and Gas Tank — and with any other mod on those surfaces — with no cross-mod dependency in either direction.
The chain at a glance
┌──────────────┐ hydrogen ──▶ Gas Turbine ──▶ NE
water bucket ──▶ ────┤ Electrolyzer ├──
(or fluid pipe) └──────────────┘ oxygen ──▶ Chemical Processor ──▶ 3x dust
▲
NE
Gas is measured in millibuckets (mB), exactly like fluids. One balance unit is 100 mB — the config numbers are written in units so they stay readable.
Electrolyzer
Splits stored water into hydrogen and oxygen at the electrolytic 2:1 ratio.
| Water in | Right-click with a water bucket (1000 mB), or pipe it in on any face — the tank sits on Core's fluid capability and on the loader's standard one, so any mod's fluid pipe works |
| Power | electrolyzerNePerTick (default 40) while running |
| Operation | electrolyzerOperationTicks (default 200), consuming electrolyzerWaterPerOp (default 500 mB) |
| Output | electrolyzerHydrogenPerOp (default 200 mB = 2 units) + electrolyzerOxygenPerOp (default 100 mB = 1 unit) |
| Tanks | machineFluidCapacity water, machineGasCapacity per gas (defaults 4000 mB each) |
| Pollution | None — the gas chain is NeroTech's clean branch |
It has no item slots: its entire I/O is fluid in, gas out. Once a second it hands both products to any adjacent gas-accepting block — a Core Gas Tank, a Gas Turbine, a Chemical Processor. On the capability itself the two products are split by face: the bottom face serves oxygen, every other face serves hydrogen.
Its side-config screen has three tabs — Power, Fluid and Gas. Water is accepted on every face and the two gases leave on every face by default, and the Fluid channel's auto-input is on, so an Electrolyzer sitting against a full tank fills itself. Close a face on the Fluid tab and pipes on that side are ignored; close it on the Gas tab and no product leaves that way.
The products are outputs only: a Gas face set to I/O hands gas out but never takes any back. A pipe that both pulls and pushes can therefore drain the Electrolyzer, instead of handing the gas straight back into it. The machine still stops (reads Blocked) when either product tank is full, so give both the hydrogen and the oxygen somewhere to go.
The GUI shows three extra gauges beside energy and heat: water (blue), hydrogen (pale), oxygen (teal).
Gas Turbine
Burns gas into NE and pushes it to its neighbours exactly the way the Nero Generator does — mild heat, zero pollution. That is the whole point of it: clean power, not free power.
| Fuel | Whatever turbineGasBurn lists — default nerotech:hydrogen=2 |
| Yield | gasTurbineNePerUnit (default 60) × the fuel's multiplier, per unit (100 mB) |
| Burn time | gasTurbineTicksPerUnit (default 20) per unit, with the yield spread evenly |
| Slots | None — its fuel is a gas, pushed in through Core's gas capability |
The tank refuses any gas that is not on the fuel list, so a stray gas can never jam it. Adding a
fuel is a config edit, not a code change: turbineGasBurn=nerotech:hydrogen=2,othermod:methane=5.
Balance note. Electrolysis is deliberately a net energy sink — you spend far more NE splitting water than the turbine gives back. The turbine's value is that it is clean, storable and buffered, not that it multiplies power. Retune
gasTurbineNePerUnitif your pack wants a different trade.
Chemical Processor
Washes raw ore with oxygen. Same one-in/one-out shape as the Ore Processor, but each completed
operation also consumes chemicalProcessorGasPerOp (default 250 mB) of oxygen — and pays you back
in yield:
| Input | Ore Processor | Chemical Processor |
|---|---|---|
| Raw Iron | 2 Iron Dust | 3 Iron Dust |
| Raw Gold | 2 Gold Dust | 3 Gold Dust |
| Raw Copper | 2 Copper Dust | 3 Copper Dust |
Recipes are datapack-driven (nerotech:chemical_processing) and appear on their own JEI/EMI page (Recipe Viewers), so a
pack can add washes for any item. With a dry oxygen tank the machine reports Starved and draws
no power at all.
Its Gas faces are I/O with auto-input on by default, so a pipe can push oxygen in on any face, and the processor also pulls from an adjacent tank or pipe by itself. Any oxygen works: the Electrolyzer's, a Core Gas Tank's, or a Nerospace Oxygen Generator's (see One oxygen).
The coolant loop
Two blocks, and a deliberate simplification: there are no coolant pipes to lay. A Coolant Pump cools every machine it touches, and Radiators near the pump make it stronger.
Radiator
A passive block with no GUI and no power draw. Two jobs:
- Placed against a machine, it counts as four natural coolant blocks for the thermal model's passive dissipation — and unlike ice, it never melts.
- Placed near a Coolant Pump, it scales that pump's pull rate.
Coolant Pump
On every thermal exchange interval it spends NE to pull heat out of each adjacent machine that is above ambient, and deletes it — that deletion is the loop.
| Power | coolantPumpNePerTick (default 20), billed in one batch per exchange interval |
| Pull | coolantPumpHeatPerOp (default 20) from each adjacent machine, × (1 + radiators) |
| Radiator reach | Up to 3 blocks in a straight line on each of the six axes, counting until the run breaks |
| GUI | None — it is slotless and has nothing to configure |
So a bare pump pulls 20 heat per exchange from each neighbour; a pump with a 3-block radiator run on two opposite sides (6 radiators) pulls 140. Cooling never drops a machine below its local ambient.
Both the radiator scan and the machine scan are event-driven: the pump rescans only after a neighbour change, and never sweeps per tick.
Crafting
| Block | Recipe |
|---|---|
| Electrolyzer | Machine Frame + 4 Circuit Boards + 4 Copper Ingots |
| Gas Turbine | Machine Frame + 2 Nero Coils + 4 Iron Ingots |
| Chemical Processor | Machine Frame + 2 Circuit Boards + 6 Glass |
| Radiator (×2) | 4 Iron Ingots + 4 Copper Ingots + a Water Bucket |
| Coolant Pump | Machine Frame + 2 Nero Coils + 4 Iron Ingots + 2 Buckets |
All vanilla and Tier-1 NeroTech materials — the whole gas chain and coolant loop are reachable on Earth with no other mod installed.
Interop
NeroTech uses two gases, nerotech:hydrogen and nerospace:oxygen. Neroland Core deliberately
ships none: Core's gas layer identifies a gas generically by id and leaves the actual gases to
content mods. Storage and transfer go through Core's NeroGasStorage / NeroFluidStorage
contracts and the shared fluid/gas capabilities, so:
- Core's Gas Tank and Fluid Tank work with these machines out of the box.
- Gas pipes on Core's gas capability carry NeroTech gases. Every gas machine sits on Core's
nerolandcore:gascapability, so a pipe that speaks it (Nerospace's Universal Pipe, for instance) pulls hydrogen and oxygen out of the Electrolyzer and pushes them into the Gas Turbine, the Chemical Processor or a Core Gas Tank. The machines also push into, and pull from, such a pipe by themselves. - Fluids cross the mod boundary. Every NeroTech fluid tank is exposed on the loader's standard
fluid capability too (NeoForge
Capabilities.Fluid, ForgeFLUID_HANDLER, FabricFluidStorage.SIDED), so another mod's fluid pipes — Oritech's Universal Pipes, for instance — fill the Electrolyzer directly. This needs Neroland Core 1.12.0 or newer. - Gases travel too, as fluids. A gas is an
Identifierto Core — a name no other mod speaks — so each of NeroTech's gases is also registered as a fluid (nerotech:hydrogen,nerotech:oxygen) purely to travel. Gas tanks appear on the standard fluid capability wearing that fluid, so an ordinary fluid pipe carries oxygen from the Electrolyzer to the Chemical Processor across any distance. Inside NeroTech nothing changes: tanks are still gas tanks, still filtered, still measured in mB, and adjacent machines still hand off directly. Each gas machine now also pulls from adjacent sources, so placement order no longer matters. - These gas fluids are not placeable — no bucket, no fluid block, no pool of oxygen on the ground. They exist only inside tanks and pipes.
- Another mod's gas can be fed to the turbine by adding it to
turbineGasBurn. - There is no NeroTech gas network — handoff is direct block-to-block adjacency, once a second. Long-distance routing is a job for pipes, not for this mod.
One oxygen
There is only one oxygen in the Neroland mods: nerospace:oxygen, the gas Nerospace's Oxygen
Generator and life support use. The Electrolyzer makes it, and the Chemical Processor accepts it
from any source. The gas id belongs to Nerospace, but NeroTech does not need Nerospace installed:
the id is just a name, and NeroTech works the same without it.
Builds before this change used a separate nerotech:oxygen gas. It is migrated automatically:
- Machine tanks saved with
nerotech:oxygenload asnerospace:oxygen. - NeroTech machines accept
nerotech:oxygenfrom any source, such as a Core Gas Tank filled by an older build, and store it asnerospace:oxygen. - A
turbineGasBurnentry fornerotech:oxygencounts asnerospace:oxygen. - The transport fluid keeps its id
nerotech:oxygen, so pipes and tanks from other mods keep their contents. It now stands fornerospace:oxygen.
A Core Gas Tank that still holds old oxygen hands it to NeroTech machines normally. It refuses new oxygen until it is empty, because a Core tank holds only one gas id at a time.
Known simplifications
- The coolant loop is two blocks, not a plumbed circuit. A pipe-and-fitting loop was designed and cut: the pump-plus-radiators model gives the same gameplay lever (spend power and space to cool hard) with none of the network bookkeeping.
- The turbine's fuel roster is a config map, not a tag. Core's gas layer has no gas registry to
tag, so a
nerotech:turbine_fuelstag surface has to wait for one. - The Chemical Processor's oxygen cost is a single config value, not a per-recipe field, so every wash costs the same reagent.
Config keys
machineGasCapacity, machineFluidCapacity, electrolyzerNePerTick, electrolyzerOperationTicks,
electrolyzerWaterPerOp, electrolyzerHydrogenPerOp, electrolyzerOxygenPerOp,
gasTurbineNePerUnit, gasTurbineTicksPerUnit, turbineGasBurn, chemicalProcessorGasPerOp,
coolantPumpNePerTick, coolantPumpHeatPerOp.
All live in config/nerotech.properties and hot-reload with /neroland config reload, except the
two tank capacities, which apply when a machine next loads.
See also: Thermal System · Tier-1 Machines · Overclock Presets · Side Config & the Configurator