A map that builds the world, a settings screen you can read, roads that meet the water where the water is, signposts that only name real towns, and roads that keep up with a big load. 🗺️
- **The world map can now generate the ground around you, and tell you what that costs first.** Choose
how many chunks with a slider, press Load chunks, and a confirmation says how many will be generated
and roughly how long it takes before anything starts. The job runs in the background — the map fills
in as it goes, a counter tracks it, and the same button becomes Cancel until it finishes. On a
server, starting one is an operator's call; in your own world it is yours. (#67)
- **The Repaint map button is gone.** It re-drew the map by hand, and the one moment that is genuinely
needed — fresh ground having just appeared — now happens on its own the instant a chunk load
finishes. (#67)
- **The ROUTES tab at world creation is split into sections.** Every setting sat in one list under a
single heading, twenty-six deep, so finding the one you wanted meant reading all of them. They are
grouped now — Route Generation, Towns & Settlements, Road Shape, Surface & Lighting, World Spawn,
Map & Notifications — in the order you meet them, and the in-game settings screen follows the same
grouping. Nothing was renamed and nothing changed value: the worlds and the config file you already
have are untouched. (#69)
- **With Cobblemon Picnic installed, some rest stops are picnic tables.** About a third of the camps
along a road come up as one of its basic picnic tables instead, with a basket of bread standing
beside it — so a stop is somewhere you can actually sit down and picnic, not only somewhere to warm
your hands. The rest are the campfire camps they have always been. Without Cobblemon Picnic nothing
changes at all: every stop is a camp, and no imitation table is ever built out of ordinary blocks.
Stops on roads that have already generated stay as they are. (#143)
- **A road coming out of the water no longer climbs a mound to do it.** Where a swimmable crossing met
the shore, the ground either side of it was built up — sometimes a long way up — into a bank the road
then had to come back down. It was the crossing's own bed pulling the shoreline up to meet it. The
road follows the ground down to the waterline instead, and where the shore is already low it simply
stays low. Bridges are untouched: a bridge approach still climbs to its deck and still meets it in a
single step. (#169)
- **A road is numbered the moment it is built, not the moment you walk it.** Route numbers were handed
out on arrival, so a road you could see from a hilltop — or one you crossed halfway along, without
ever reaching either end — was nameless, and its fingerposts could only point at two towns. Roads are
numbered as the world draws them now, so every road that exists has a number and its signs read it
from the first one you meet. Numbers stay short and sequential; the order they run in is the order
the world built them. Worlds you already have keep every number they handed out. (#171)
- **A fingerpost no longer points at a town that does not exist.** Where a road forks, the sign has to
follow the road past the junction to find the settlement it really leads to — and where it could not
see that far, it named the junction instead. A junction is a piece of road with nothing on it, so
what went on the sign was an invented place. That line is simply left out now: a signpost gives you
the road you are standing on and whichever end of it can honestly be named. (#150)
- **A big chunk-loading job no longer leaves the roads inside it building from scratch.** While the
game was generating ground for you — the map's Load chunks button, or the ground laid down around a
new world's spawn — the mod stopped looking ahead at the roads in that ground **entirely**, so every
road chunk the job touched had to work its road out at the moment it was needed, which is the one
moment that makes you wait for it. It looks ahead throughout now. The job itself is unchanged and
costs the same; the road chunks inside it stop being the slow ones. (#150)
- **Waystones now work on NeoForge.** Activating a waystone names it after the town Routes knows for
that spot, registers it on the road network and moves the town's map marker onto the waystone
itself — all of which Fabric has always done and NeoForge silently did not, because the
integration was only ever wired up on one of the two loaders. Nothing changes for anyone without
Waystones installed. (#177)
- **An operator can author a zone over a whole region now, and manage it by name.** Deciding what a
patch of ground counts as — a town, a road, an area, or nothing at all — meant standing on every
chunk of it, one at a time. A zone can be drawn as a box between two corners, given a name, and
then grown, shrunk, renamed or removed as one thing. Ground that already belongs somewhere else
is still refused unless you say otherwise, and the refusal names what it would have taken:
moving a chunk from one zone to another changes which zone a catch already made in it belongs
to, so it is never done by accident. (#164)
- **The Laburo: draw a zone by clicking its two corners.** A red-bladed shovel for map makers, in
the Tools tab of the creative inventory. Right-click one corner, right-click the opposite one,
and the ground between them becomes a zone with a name you can rename afterwards; sneak and
right-click to choose what it becomes — a town, a road, or nothing at all. Right-click the air
if you change your mind about a corner. **It has no recipe**: it does nothing without operator
permission, so putting it on a crafting table would only teach a survival player that it is
broken. It never takes ground that already belongs somewhere else — it tells you what stood in
the way and leaves that decision to the command. (#164)
- **Close a ring of road and the land it encloses becomes an area, there and then.** An area is
never something you draw — it is the space left between the roads — so one only ever appeared
when somebody happened to walk into it. Now the moment an authoring edit closes a pocket, that
pocket is named and marked, and whoever drew it is told how many appeared. Areas that close
the ordinary way, as the world generates roads, are unchanged. (#164)
- **`/routes debug areas` agreed with nothing once you started authoring zones.** It was reading
the generator's own paint and ignoring the zones an operator had authored on top, so it
contradicted the map, the zone banner and the capture zones — precisely when you would run it
to find out why they disagreed. (#164)
- **A zone you author now gets a marker on the map.** It painted the ground and dropped no pin,
ever. A town's or a road's marker takes its name from the road network the world generated, and
a zone you drew by hand is not in it — so there was no name to give and nothing appeared. An
authored zone is announced under its own name instead, and comes back under it every time you
rejoin. (#164)
- **A ring drawn in country the generator has not touched yet closes an area properly.** The check
gave up early whenever no road had been generated anywhere, which is exactly the state a fresh
map-making world is in. (#164)
- **A world keeps the road-network rules it was made with.** Improvements to how the network is
planned — which towns connect, how a road is traced — cannot simply arrive in a world already
half-explored: the ground you have walked was built by the old rules and the ground ahead would
be built by the new ones, leaving roads that stop dead at the join. Every world now records
which generation of the rules it was born with and keeps it. Nothing generates differently yet
— this is the door the coming changes go through, and `/routes debug settlements` says which
generation your world is on. (#164)
- **A town no longer sends several roads off in almost the same direction.** Where six neighbours
sat in one quarter of the compass, six near-parallel roads left the town for them, and each one
costs the world real time to plan. A road that would set off within thirty degrees of one
already leaving is dropped, and the shorter of the two is the one that stays. **New worlds
only** — a world already under way keeps the network rules it was made with, so nothing you
have explored changes shape. (#175)
- **Roads are worked out in two passes instead of one, so exploring costs the machine less.** The
mod used to search the whole stretch of country between two towns at full detail to find one
road through it. It now sketches the route roughly first — cheaply, over the same ground at a
quarter of the detail — and then does the careful work only in the narrow band around that
sketch. If the sketch finds nothing, the old full search runs exactly as before, so a road that
exists today still exists. **New worlds only.** (#172)
- **Two villages close enough to touch are one town.** Where two settlements generated almost on top
of each other — which happens where a modded village lands on the same ground as a vanilla one —
the mod saw two towns and ran a road between them. That road began in a village and ended in the
same village: it had a number, a place on the map and signposts pointing along it, and walking it
took you nowhere. Settlements that close are read as one town with one name now, so the road
between them never exists, and that is one fewer road for the game to work out. **New worlds
only** — a world already under way keeps the network rules it was made with, so nothing you have
explored changes shape. (#170)
- **A step in the road is the same step from either side.** A one-block rise was dressed as a
staircase using the direction the road was travelling, so a climb and a descent were two different
sums — and for a long stretch only one of them was right, which is why the same slope came out a
proper staircase walked one way and a staircase sunk a block walked the other. A step is read off
the ground around it now: a block with one neighbour a block lower, and no drop on its other side,
carries the stair, and the stair faces uphill. The answer is the same whichever way you walk, and on
a road running diagonally the stairs land on the columns where the step actually is instead of
straight across the width. Roads already generated are unchanged. (#173, #106)
- **A tree no longer grows in the middle of the road.** A tree that landed on a road was built and
then torn out again — trunk, then crown, then whatever was left hanging — and every kind of growth
the clearing did not know about became its own report: a canopy floating over the road, bamboo
through the paving, a giant mushroom on the verge. Growth that would start on a road is simply not
planted now — trees, bamboo, giant mushrooms and ground cover ask the road first. The clearing stays
for everything else and for the roads you already have, so nothing already generated changes.
(#174, #113)
- **Wraith Waystones now works like Waystones does.** Discovering one of its waystones names it after
the town Routes knows for that spot and drops the town's marker on your map — the same single pin
that walking into the town would have given you, not a second one beside it. Fabric only, because
that is the only loader Wraith Waystones ships for; the original Waystones is unchanged and a pack
can run either, both or neither. (#81)
- **A road no longer has a step running along its own width.** Where a road ran diagonally, one half
of it could sit a block higher than the other for a stretch — a low kerb down the middle of the
carriageway, dressed in stairs that looked like they had been put there for no reason. The height of
the road is measured along its length now and is flat across it, so the whole width of the road is
one surface and a step only ever happens where the road is actually climbing. The stairs that were
covering those kerbs are gone with them. Roads already generated are unchanged. (#178)
Optional dependencies
Xaero's Minimap
Any compatible version
Wraith Waystones
Any compatible version
Waystones
Any compatible version
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }