Skip to main content
Atlas cuts one Minecraft world into a fixed grid of square regions and gives each region to exactly one Paper server. A Velocity proxy in front moves players between those servers as they walk. Done well, nobody can tell: you see the players and mobs on the other side of a border before you reach it, blocks you break near the line appear on the neighbour’s copy, and stepping over costs no loading screen. The hard part is not the moving. It is making sure that at no instant do two servers both believe they own the same player, and that a slow server cannot overwrite what a faster one already did.

The four ideas

Grid and regions

A region is a square of the world. Exactly one server may write the blocks and entities inside it.

Fenced leases

A player’s ownership is a token in MongoDB, compared and advanced in one atomic update.

The ghost band

A strip either side of every border where each server shows the other’s players, mobs and blocks.

The crossing

A handoff committed in one database write, then a proxy switch the client never sees.

What you get

A world larger than one server can simulate, without sacrificing the thing that makes it a world. Players near a border see each other and can fight, build and talk across it. A region that dies takes its own square offline and nothing else. A region can be restarted, patched or moved while the rest of the network keeps running.

What it costs

Atlas is honest about this, because the trade-offs are what decide whether it fits.
Chunk decoration is not a pure function of the seed, so servers generating “the same” world disagree about where the trees are. The world is generated once and copied, which means the disk cost multiplies by the number of shards.
The plugin reaches into the server for the handful of things Bukkit does not expose: rewriting an entity id, neutralising the login teleport, reading outgoing block updates, the advancement file. That costs two constraints. It needs Paper or a fork of it — Purpur, Pufferfish and the rest are fine, Spigot and CraftBukkit are not — and it is compiled against one Minecraft version, because the internal classes it uses are renamed between versions. A different build of the same version is fine.
Breaking, placing and hitting are forwarded to the region’s owner and work. Containers, doors and anything with a screen stay refused, because a live inventory session against a block on another server is how you get duplicated items.
A lost lease, an unrevertable handoff or a stale fence kicks the player with a message asking them to reconnect. Reconnecting lands them on the right shard with the right state. It is ugly and it is always correct.

Where to go next

Quickstart

The smallest network that actually works, in about twenty minutes.

Requirements

What you need before you start, and how many servers it really is.