Skip to content

Water

Need a recipe? Use JEI in game. Need a starting route? Start here

Not out yet

Not out yet. In the development build; not in the 0.6.0 download.

Module: Hard Hoof: Portals (hardhoof_portals) for the simulation and the sea; Hard Hoof: Tech for the control machines.

Water is no longer endless. Every water block holds an exact amount, measured in millibuckets (mB), and a full block is one bucket: 1,000 mB. Water falls, spreads and settles by gravity. It is never made from nothing, and it only goes away when something takes it, or the sun does. Lava keeps vanilla's rules.

It works in every dimension, on Tall and Classic worlds alike. Old saves keep their land and get the new water.

What you will notice

  • No infinite sources. Two sources beside an empty hole no longer fill it forever. A pond is as big as the water in it.
  • Buckets move real water. An empty bucket scoops exactly one bucket from the body of water it touches, highest water first, so the surface drops and the bed stays wet. If less than a bucket is connected, you get nothing. A full bucket pours exactly one bucket, up through full water to the surface and then sideways. Dispensers do the same.
  • A pour falls. Water poured into the air drops one block a tick, lands, spreads and settles flat.
  • Blocks push water aside. Place a block into a pond and the water level rises. A waterlogged block keeps one bucket.
  • Rain fills basins and the sun dries them. See below.

A water block shows its amount to the nearest eighth of a block. A bucket on flat ground makes a small puddle, not a lake.

How it moves

Rule What you see
Falling One block per tick. A stream is a column of falling water.
Spreading Neighbours share by level. Water beside a ledge spills over as a falling stream.
Momentum Fast water keeps going. A released reservoir runs down a channel at about ten blocks a second, and a one-wide stream on a gentle slope carries nearly four buckets a second.
Settling A calm lake ends up flat, and then costs nothing: it sleeps until something changes (a bucket, a pump, rain, a broken block).
Pressure Water under a higher surface pushes through full water to any lower open space of the same body.

Pressure is what makes these work:

  • A well dug beside a lake fills to the lake's level through a flooded tunnel.
  • The two arms of a U-tube level out.
  • A glass room under a lake floods to its ceiling if you break one block low in its wall.
  • Water climbs a pipe of full blocks to the height of the water feeding it, never higher.

A fully open sluice gate passes pressure, a part-open one passes some, a closed one blocks it. Pressure is felt only through water within about 24 blocks, so a very long flooded passage will not carry it.

Only loaded chunks run water. Water beside you is stepped before water far away, so the lake you stand at settles first. An operator can see the cost with /water stats; the water tick has a hard budget so a big flood cannot stall the server.

Rain, drought and rivers

  • Rain adds water to exposed basins and inland water, an eighth of a block at a time. Snow does not.
  • Dry weather evaporates exposed water, thin films faster than deep water.
  • Groundwater feeds natural riverbeds between rains. It is a saved, finite reserve: a long drought can use it up, and rain on the catchment refills it. It never refills a pool you dug or raised yourself.
  • Overflow: water that finds a low bank runs out onto the ground beside it.
  • The sea absorbs rivers: a film of water that reaches the calm sea surface joins it.
  • Roofs keep rain out. A roofed basin only gets what you put in.

On a new Tall World, rivers are planned from the headwaters to the sea: graded channels, tributaries that widen and deepen downstream, and low flat floodplain terraces beside them. A river drops in short cascades between sloping reaches. Flowing water never digs terrain or breaks solid builds. Existing worlds keep the land they generated.

Where a river leaves the loaded area, water above the river's natural level runs on into the unloaded land's groundwater instead of flooding its valley. A dam you build within a chunk of that edge will not fill above the river's natural level.

Currents

Rivers carry you downstream along the drainage. The open ocean has slow circulation: gyres, wind drift, weaker current with depth, and deflection along coasts. Swimmers get the server's currents. Calm open water does not push blocks around.

Waves

Open water shows a swell that follows the wind: gentle when calm, bigger in a gale, never more than 0.8 of a block. The server, every client and the shader work it out the same way, so boats ride the waves you see. The swell fades near banks and over shallows, lakes and rivers get only small chop, and water under a roof stays still. The water top is one smooth, shaded surface with foam on rough crests and on shallow beaches, and the sky reflected in it.

Settings are in Mods > Hard Hoof: Portals > Config: Water surface and Swell. Turning them off changes only the drawing; boats still ride the sea.

Known limits: boats rise, fall and drift but do not tilt, and the far terrain beyond loaded chunks draws flat water.

Tsunamis

A tsunami is made of real water. A push starts a drawdown and a crest that travel through neighbouring water. Crests take water from the columns beside them and leave troughs, and every millibucket is conserved. You can swim, boat and pump in a crest like any other water.

  • A crest floods a beach only if the water really reaches the bank. A tall wall stops it. Solid builds are kept.
  • Strength sets the push, not a promised height. Depth, space and barriers decide the result.
  • On a planet with plates, the sea floor over a subduction boundary can produce a rare event about every 7 to 14 world days at most.
  • Waves are simulated for water within 48 blocks of players and active sources, and within 16 blocks of sea level.

Control machines

You hold water back, lift it, move it and measure it with these. Every ingredient is ordinary Overworld material.

Block What it does Controls
Sluice Gate A gate in a dam or channel. How far it is open sets how much passes, in eighths. Shut is a wall. Use cranks it up an eighth, sneak-use down. A redstone signal (1 to 15) sets it instead. Device sluice_gate.
Pitcher Pump Lifts water by hand from up to 7 blocks straight down, through air or Fluid Pipe, and pours it from its spout. 125 mB a stroke. Hold use. It costs a little food.
Siphon End and Siphon Hose Carries water over a wall and downhill with no power. It cannot lift water uphill. Hose on each end, then use an end with an empty hand to prime it. Sneak-use takes the hose off.
Water Outlet Pours water from pipes back into the world: moats, fields, a pit pumped dry into a river. Redstone shuts it. Device water_outlet.
Water Level Gauge Reads the water in front of it: mB, surface height, depth. Comparator output (0 dry, 1 any water, 15 full). Use it to read. Device water_gauge.

Recipes (crafting table; JEI shows the shapes):

Item Ingredients
Sluice Gate (makes 2) 4 Logs, 1 Planks, 1 Iron Ingot
Pitcher Pump Stick, 3 Iron Ingots, Leather
Siphon End (makes 2) Iron Nugget over Rubber, or over Leather
Siphon Hose 3 Rubber in a row makes 8; 3 Leather makes 4
Water Outlet 3 Iron Ingots, Bucket
Water Level Gauge 4 Planks, Redstone, Bowl

Closing a gate never deletes water: the water under the leaf is pushed to the sides, and if it has nowhere to go the leaf rests on it and tries again each second. A siphon runs from the higher water level to the lower end, faster the further it falls and slower through a longer hose, and stops when the levels meet. The hose may rise at most 8 m above the water. If its high end runs dry it loses its prime.

First example: a controlled pond.

  1. Dig a pond and build a low dam of any blocks at one end, with a Sluice Gate in its bottom row.
  2. Crank the gate open an eighth at a time and watch the flow grow.
  3. Put a Water Level Gauge in the pond and read it. Add a comparator to feed a redstone line.
  4. Or leave it to a program: on a Terminal, water hold <gate> <gauge> <eighths> keeps the pond at a level by opening the drain a little while the gauge reads high and closing it while low.

The Water Pump and steam

The Water Pump now draws real water through the 3 by 3 beneath it, averaging up to 40 mB a tick. One wet block is enough, and it draws from the body that block touches, top first. A small pool runs dry: rain or a river must refill what a factory uses. A pump whose intake is in an unloaded chunk stops drawing; water already in your pipes and machines keeps flowing. A Boiler only needs a little water: 1 mB makes about 1,670 mB of steam.

The map

Open the world map (M) and press 9 for the Water layer: rivers, basins, oceans and potential floodplains, plus a live survey of currents, wave height, floods and tsunami hazards. Its legend shows the survey spacing and the age of the oldest sample. A narrow river can fall between samples. A banner on every layer says when a tsunami is active.

Operator commands

These need game master permission. Developers also have a water bench in the Gradle game tests that measures dam breaks, rain, rivers and pours.

Command Does
/water inspect Surface height, current, wave height and flood depth where you stand.
/water volume The exact mB in your cell, what it shows, and how many cells are awake.
/water stats Awake cells, cells stepped last tick, and the time water took.
/tsunami [strength] Starts an event at your position, strength 0.1 to 12 (default 4). Stand above deep loaded water. Also /water tsunami.
/water calm Clears events and wave momentum. Displaced water settles.

Try it

  1. Pour a bucket from high above a pond. It falls, lands and settles flat, and /water volume reports no awake cells soon after.
  2. Scoop a bucket from a settled lake and pour it back into partial water.
  3. Dig a shaft beside a lake deeper than the lake, then a one-block tunnel to its bed. The shaft fills to the lake's level.
  4. Drain a small pool with a Water Pump. It empties completely.
  5. In a new Tall World follow a river to its mouth, then look at it on the map with 9.
↑↓ move↵ openesc close