How to make a Minecraft server network with Velocity

By Kosy · · 3 min read

A network is several Minecraft servers behind one address. Players join a hub, then step through a portal or type /server survival to land in another world, without reconnecting and without a new address to remember. Big servers have always worked this way. You can too, with two servers and ten minutes.

Why bother

  • Separate worlds, separate rules. A survival server, a creative plot world and a minigames server each get the memory, plugins and settings that suit them, so one crashing does not take the rest down.
  • One address. Friends remember a single name.
  • Smaller pieces. Restarting or updating one server does not kick everyone from the others.

How it works

A proxy sits in front of your servers. Players connect to the proxy, and the proxy connects them to one of your servers behind it. The proxy most people use today is Velocity: fast, small and actively maintained.

Velocity needs two things to be safe:

  1. The proxy has to forward who the player is, so every server knows their name and skin without asking Mojang again.
  2. The servers behind it must only accept players from the proxy. Otherwise anyone who learns a server's address could skip the proxy and log in as any name. Velocity solves this with a shared secret that every server checks.

Doing this by hand means editing velocity.toml, Paper's paper-global.yml and server.properties on every server, and keeping them in step. It is where most first networks go wrong.

Building one on Saryno

  1. Make at least two Paper servers. They can be different sizes and run different plugins.
  2. Open Infrastructure in the dashboard and press New network. The same button is on each server's Network tab as Create a network with this server.
  3. In the builder, give the network a name, then drag each server's dot onto the proxy, or press Link. A proxy is made for you (512 MB), or you can pick a Velocity server you already have.
  4. Press the star on the server players should start on. That is your hub.
  5. Press Create network.

Saryno wakes the servers once, writes the settings into each one, and restarts the game once while nobody is on. When the network shows Linked, players join the proxy's address, which is shown at the top of the page.

Later, an easy way to grow it is the Add this server button on any server's Network tab.

Moving around

Players switch servers with /server name, where the name is the one you gave the server in the builder. A hub plugin or a portal plugin can run that command for them. Servers that are asleep are woken the moment someone is sent there, so a network of five servers does not need five servers running all day.

What to know

  • Direct addresses stop working for linked servers. That is the point: they accept only players that came through the proxy. Unlink a server (or delete the network) and it accepts players directly again.
  • Bans, whitelists and ranks live on each server, or in a permissions plugin that shares a database. LuckPerms can share its data between servers if you point them at the same storage.
  • Chat is per server unless you add a plugin that bridges it.
  • The proxy needs very little memory, 512 MB is plenty for dozens of players.

The Infrastructure page in your dashboard draws how players reach every server, so you can see the whole network at a glance. To keep each piece fresh, see how to restart a server on a schedule. If you are not sure you need a network yet, read when one Minecraft server is not enough.

More to read