Every village hides a sewer.

Village Canals digs a network of brick canals beneath villages. Under the streets you will find winding tunnels with barrel-vaulted ceilings, a water channel running along the floor, narrow side rooms full of spawners, a witch's lair, a treasure vault, a library, a kitchen, a prison and a shrine — plus a few ladder shafts that connect the surface to the dark below. Villagers keep their feet dry; the canals are strictly for adventurers.
Everything is generated from the village itself, so every village gets its own network: the same seed and the same village always produce the same canals, but two villages will never look alike.
What you get
- Sewers under villages — generated together with the village, right below its streets.
- Winding tunnels with barrel-vaulted ceilings — brick walls, a stepped arch, chamfered steps and brick ribs every few blocks, so it reads as a built sewer instead of a smooth tube.
- A water channel in the middle of the floor — it follows the tunnel, and sea lanterns under the water light the way.
- Side rooms with a purpose — a narrow neck leads off the main tunnel into a separate 7×7 chamber:
- monster spawners (skeletons, zombies, spiders),
- a witch's lair with cauldrons and a brewing stand,
- a treasure vault with a loot chest and gold blocks,
- a library with shelves and a chest,
- a kitchen with a smoker, barrels and a crafting table,
- a prison with iron bars, zombies and a chest,
- a shrine with an altar, a candle and soul lanterns.
- One-block ladder shafts — look for the brick-lined wells and hatches in the village; a single ladder cell is the only safe way back up.
- Deterministic world generation — the layout is derived from the village and the world seed, so it is consistent and reproducible.
- No new blocks, items or mobs — vanilla materials only (stone bricks, mossy/cracked bricks, deepslate bricks, sea lanterns, iron bars), so it fits any resource pack.
Universal compatibility

The canals do not replace anyone's village definition. The mod simply hooks structure placement and carves the canal underneath whatever village was just generated, so it works with vanilla villages and with village overhaul mods, without requiring any of them:
| Mod | Canals under its villages |
|---|---|
| Vanilla | ✅ |
| CTOV (ChoiceTheorem's Overhauled Village) | ✅ |
| Towns and Towers | ✅ |
| Luki's Grand Capitals | ✅ |
| Repurposed Structures | ✅ |
| Improved Village Placement | ✅ |
The buildings from those mods stay exactly as they are — Village Canals only digs below them. There is no dependency in either direction: install Village Canals alone and vanilla villages get canals; add a village mod later and its villages get canals too.
Which structures receive canals is controlled by id patterns (structure_ids, default *village*), so a new village mod is usually covered out of the box, and unusual structure ids can be added manually.
How to explore
- Find a village and look for a brick well, hatch or ladder sticking out of the ground — usually near the edge of the village or between houses.
- Climb down. The main tunnel is wide enough to walk; the water channel in the middle is shallow.
- Follow the tunnel. Side passages end in small rooms — that is where the spawners and the treasure are.
- Watch your step: the canals reach well below the village, and the spawners do not care about villagers.
Tip: bring torches, a bucket of water and a weapon. The canals are dark, the tunnels branch, and the treasure room is guarded by more than one spawner.
Opening a canal treasure chest grants the Underground Village advancement and increases the Canal treasures opened statistic.
Configuration
config/villagecanals-common.toml:
| Key | Default | Meaning |
|---|---|---|
enabled |
true |
turn canal generation on/off |
depth |
12 |
how many blocks below the lowest village piece the canal floor is placed |
tunnel_radius |
3.3 |
half width of the tunnel (3.3 ≈ 7 blocks wide) |
wall_height |
2.0 |
height of the vertical walls before the vault starts |
vault_height |
2.6 |
additional height of the vault at the tunnel axis |
rooms |
5 |
number of side rooms per village (0–9, 9 = every room type once) |
entrances |
4 |
number of surface entrances per village (1–6) |
water |
true |
water channel in the middle of the tunnel floor |
decorations |
true |
moss on the walkways, seagrass in the water |
structure_ids |
["*village*"] |
glob patterns of structure ids that receive canals |
Changes apply to villages generated after the change; already generated chunks keep their canals.
Installation
- Install Fabric OR NeoForge 21.1.x for Minecraft 1.21.1 (Java 21).
- Drop the mod jar into the
modsfolder (client and server). - Start the game and find a village — the canals generate with it.
FAQ
Do I need a new world? New villages in newly generated chunks get canals. Villages generated before installing the mod keep their vanilla layout.
Will it conflict with other worldgen or village mods? No. The mod never replaces village definitions — it only adds blocks below an already generated village. Village overhaul mods (CTOV, Towns and Towers, Luki's Grand Capitals, Repurposed Structures, Improved Village Placement) keep their own villages and buildings.
Is it server-side only? It only touches world generation, but install it on both client and server like any other NeoForge mod.
Can I use it in a modpack? Yes, as long as the pack is for Minecraft 1.21.1.
Why are there no canals under a village in my old world? Canals are carved while the village is generated. Chunks that already exist are never modified.
Does it hurt world generation performance? No: carving costs roughly 0.2–0.4 ms per generated chunk (measured on a dedicated server).