Pump
alaindustrial:pump
Summary
Status: a public block — present in the creative tab, has a crafting recipe, GUI, and is visible in JEI/REI. It's one of the most energy-hungry machines in the mod (1000 EU/FE per bucket).
The Pump is an EU/FE-powered LV machine that moves fluids. It finds any fluid source in the world (starting at the block in front of it and following the flow outward), or draws fluid from an adjacent tank, banks it in an internal 10-bucket tank, and pushes it on into any neighbouring receiver tank. The tank accepts any fluid (not just lava/water), so modded fluids can go in too — via a capsule or a foreign container.
The tank holds only one fluid at a time: while it's holding one kind, another is rejected until it empties. Mixing is ruled out on purpose — you can't accidentally dump two fluids into one pipe.
The main use case is feeding the Geothermal Generator with lava through a pipe instead of hauling buckets by hand; the pump also moves water for future fluid chains.
Energy
The pump is a pure energy consumer: it takes EU/FE in, emits none, and spends 1000 EU/FE per bucket it draws.
| Field | Value |
|---|---|
| Role | consumer with buffer |
| Buffer (EU/FE) | 4000 — above, to bank enough for ≥4 buckets at once |
| Max input (EU/FE/tick) | 32 (LV) |
| Max output (EU/FE/tick) | n/a (does not emit) |
| EU/FE per bucket | 1000 — one of the most energy-hungry machines |
The pump connects to the energy network like any consumer — the energy network finds it automatically. Energy is only spent on the tick when fluid was actually taken from the world or a neighbouring tank; filling by hand with buckets and pushing into a receiver cost no EU/FE.
As an LV machine the pump accepts up to 32 EU/FE per tick. At 1000 EU/FE/bucket and a 32 EU/FE/tick limit, filling the buffer for one bucket takes ~32 ticks; the 4000 EU/FE buffer holds the cost of 4 buckets, so even under bursty energy supply the pump rarely idles.
Per-face energy role. The pump draws EU/FE on its five working faces; the front face is energy-inert (no port there), like every other horizontal machine. A cable therefore draws an arm toward the five working faces only — not toward the front. Fluid intake is a separate subsystem and still reads the front face directly (see Intake), so the front being energy-inert does not change which way the pump draws fluid from.
Processing
The pump doesn't use the recipe system: it doesn't process items, it moves fluid. Each working tick runs three steps.
| Step | Action | Condition |
|---|---|---|
| 0. Buckets | empty a fluid bucket from the input slot into the tank | the input slot has a lava/water bucket, the tank can accept, the output slot is free for the empty bucket |
| 1. Intake | take 1 bucket of fluid into the tank | energy.amount ≥ AND the tank has room for a bucket AND scanCooldown ≤ 0 |
| 2. Push | push fluid from the tank into neighbouring receivers | the tank has fluid |
Intake. The pump looks for fluid starting at the block directly in front of it (the face it points at the player). If that block is lava/water itself, or a connected flowing puddle of it, the pump follows the flow to the nearest source. If there's no fluid in the world there, it tries to draw a bucket from a neighbouring tank. Limits on the world source search:
Radius: up to 32 blocks from the pump; Visited cap: up to 512 blocks per scan (lag protection on large spills); Cooldown: 1 second (20 ticks) between search attempts — both after a hit and after a miss.
A found source (lava or water) is pulled into the tank by the bucket, and the source block in the world is irrevocably removed (drained). Flowing, non-source fluid is not pumped — it only leads the search to the source, and once the source is gone it settles back by vanilla fluid rules. If the tank already holds a different fluid, the search doesn't even start — the pump won't waste a tick.
Push. The pump pushes fluid out in every direction except the one it just drew from (so it doesn't pump back into the source), and tries to empty the whole tank in one tick to any neighbouring receiver — for example the Geothermal Generator's tank.
While working the pump lights up (lit on any tick where something happened — intake, push, or a bucket fill).
Inventory
Four slots in a 2×2 grid — for manually filling and draining fluid. This isn't the pump's main way of working, just a handy convenience.
| Slot | Row | Accepts | Count |
|---|---|---|---|
| Fill input (0) | top | any full fluid container | up to a stack |
| Fill output (1) | top | the emptied container (extraction only) | up to a stack |
| Drain input (2) | bottom | any empty fluid container | up to a stack |
| Drain output (3) | bottom | the filled container (extraction only) | up to a stack |
Any container, not just a bucket. The slots accept anything that can carry fluid: vanilla lava and water buckets, this mod's Vacuum Capsule with any fluid, and other mods' containers (their cells, canisters, capsules). The pump does not keep a list of known items — it asks the item itself through the loader's standard fluid interface, so foreign containers work on their own, with no work needed on our side.
Exchange happens strictly one bucket at a time, all-or-nothing: if the tank can't accept a whole bucket (no room, or it holds a different fluid) or there's nowhere to put the container, nothing happens at all — the fluid and the container stay put. This costs no EU/FE (manual fill, not the pump).
The Vacuum Capsule is the only manual route for modded fluids — there's no vanilla bucket for them, and the capsule accepts any fluid.
Hoppers and pipes only insert into the input slots (0 and 2) and only extract from the output slots (1 and 3) — the machine itself fills the outputs.
Internal tank
| Field | Value |
|---|---|
| Implementation | neutral (in common, works on Fabric and NeoForge) |
| Capacity | 10 buckets (10 buckets = 10000 mB) |
| Accepts | any non-empty fluid, not just lava/water (→) |
| Mixing | forbidden — the tank is single-variant: while it holds one fluid, the other is rejected (guaranteed by the core's .insert) |
| Extraction | allowed from any side (→ true) |
| Access | per face; pipes and tanks of other mods connect to it on both loaders |
Single-variant guarantee. The tank holds at most one fluid at a time. If empty, it accepts any from the allowlist; if it already holds lava, water is rejected (and vice versa) until it empties. Mixing fluids by accident is impossible — it's built into the tank itself.
Unit of volume — the millibucket (mB). Inside the tank everything is counted in millibuckets: 1 bucket = 1000 mB, and the tank's capacity is 10 000 mB (those same 10 buckets). This value is identical on Fabric and NeoForge — the player sees exactly the same volumes regardless of loader.
Persistence and migration. After a reload the tank restores both its volume and its fluid type. Worlds saved under the older version of the pump (lava-only) are picked up correctly: if any fluid is present it's read back as lava — the only one the old tank knew.
Exchanging with capsules and foreign containers
The internal tank is not sealed off: it exchanges fluid with any container held in your hand.
Vacuum capsule. Right-click the pump with an empty capsule and it takes exactly one bucket out of the tank; right-click with a filled one and the bucket goes in. Partial transfers never happen — a whole bucket or nothing. Vanilla bucket works the same way, one bucket per click. Containers from other mods are accepted through the standard fluid-container interface, so another mod's tank, tube or backpack fills and empties the pump without any dedicated compatibility code.
The pump never accepts a fluid that differs from what is already in the tank — mixing is impossible. Empty the tank first if you need to switch fluids.
Interface
The pump has a graphical screen with two slots (for buckets) and two indicator bars.
Type: GUI with two slots (buckets) and two bars:
Left — fluid level in the tank (grows bottom-up). The sprite colour depends on the fluid type: red for lava, blue for water. Right — energy buffer.
A tooltip on hover shows the volume in mB / fluid type and the EU/FE / buffer capacity.
Block state: the pump turns to "face the player" when placed (that face is where it draws fluid from) and lights up while working.
Block Properties
An ordinary solid block: a pickaxe breaks it, and on break it does not keep its energy charge (the tank and its fluid are kept — see Internal tank).
| Field | Value |
|---|---|
| Shape | full 16³ cube (occluder) |
| Hardness | 3.0 |
| Blast resistance | 6.0 |
| Tool | pickaxe |
| Sound | metal |
| Drops with NBT energy | no |
Sound
While running, the pump emits a wet suction of liquid being drawn into a pipe — the loop (pattern A, default 0.35). It falls silent when idle
What sets the pump apart from the other pattern-A machines: a bucket transfer is atomic — it completes within a single tick rather than spanning processing ticks the way the macerator's grind does. So lit (and with it the loop) is held for a further ticks after the last transfer (60 ticks = 3s by default). Without that hold, both the indicator and the sound would flash for one tick and the pump could never be heard working. Under continuous pumping, new transfers restart the countdown before it expires, so the pump reads as continuously running rather than flickering.
Recipes
One workbench recipe: an iron casing, two buckets, and an Electronic Circuit.
{
"type": "minecraft:crafting_shaped",
"category": "redstone",
"key": { "I": "minecraft:iron_ingot", "B": "minecraft:bucket", "E": "" },
"pattern": ["IBI","IBI","IEI"],
"result": { "id": "" }
}
The two buckets in the pattern reflect what the block does — moving fluid; the Electronic Circuit sets the machine's LV tier.
Progression
An early LV machine — placed once a stable generator and an Electronic Circuit for crafting are available. It frees you from hauling lava buckets by hand.
Tier: LV Power: from an LV source, e.g. the Generator. Purpose: automatically feeding lava to the Geothermal Generator as a fluid instead of by hand; moving water for future fluid chains. Requires: an Electronic Circuit to craft.
Related
Geothermal Generator — the main consumer of the pump's lava. Generator — the typical LV power source for the pump. Components — the Electronic Circuit for crafting.
Crafting
Shaped Crafting
▶
Pump