How to Make a Minecraft Server Network with Velocity (2026)

Link a lobby, survival and minigame servers into one Minecraft network with Velocity: velocity.toml, modern forwarding, Paper settings and the security step.

Updated Oct 8, 2026 · 7 min read

On this page

A Minecraft server network is several servers behind one address, so players join play.example.com once and move between a lobby, a survival world and minigames with /server. You build it with a proxy. Velocity, made by the PaperMC team, is the standard choice in 2026: it is fast, actively maintained and has a secure way to pass player identities to your servers. This guide sets up Velocity with Paper servers behind it, step by step.

How a Minecraft network works

Players  ->  Velocity proxy (public address)  ->  lobby (Paper)
                                              ->  survival (Paper)
                                              ->  minigames (Paper)

Players only ever connect to the proxy. The proxy logs them in with Mojang, then forwards them to a backend server. When they switch servers, the proxy moves the connection without them disconnecting.

Things to know before you start:

  • Each backend is a full Minecraft server and needs its own RAM. The proxy itself is light, around 512 MB to 1 GB for a small network.
  • Inventories, ranks and chat are separate per server unless you add plugins that sync them. LuckPerms can share ranks across a network with a database.
  • All servers should run the same Minecraft version, or use ViaVersion on the proxy to let other versions in.

If you only want two worlds for one group, a network is overkill. Multiverse on a single Paper server does that, see how to change the world on a Minecraft server.

Step 1: Get Velocity

Download the latest Velocity jar from papermc.io/downloads/velocity. It needs a recent Java, 21 or newer. Put the jar in its own folder and start it once:

java -Xms512M -Xmx512M -jar velocity.jar

It creates velocity.toml, a forwarding.secret file and a plugins folder. Stop it with end.

Step 2: Configure velocity.toml

Open velocity.toml. The parts that matter:

bind = "0.0.0.0:25565"
motd = "<green>My Network"
show-max-players = 100
online-mode = true
player-info-forwarding-mode = "modern"
forwarding-secret-file = "forwarding.secret"

[servers]
lobby = "127.0.0.1:30066"
survival = "127.0.0.1:30067"
try = ["lobby"]

[forced-hosts]

What each part does:

Setting What to set
bind The address and port players connect to. Velocity defaults to 25577. Use 25565 if you want players to type the address without a port
online-mode true. The proxy checks every account with Mojang
player-info-forwarding-mode modern. It passes real names, UUIDs and skins to the backends, signed with your secret
[servers] One line per backend: a name and its address and port
try The server players land on first, normally the lobby
[forced-hosts] Optional. Send survival.example.com straight to a server. Delete the example entries if you do not use them

Open forwarding.secret and copy the random string inside. Every backend needs it.

Step 3: Set up each Paper backend

On every backend server, make three changes, then restart it.

server.properties:

online-mode=false
server-port=30066

online-mode=false sounds dangerous, but on a backend it is correct: the proxy already authenticated the player, and the backend trusts the proxy through the secret. Each backend needs its own port.

config/paper-global.yml:

proxies:
  velocity:
    enabled: true
    online-mode: true
    secret: 'paste-the-forwarding-secret-here'

spigot.yml: make sure settings.bungeecord is false. That setting is for the older BungeeCord style forwarding, and modern Velocity forwarding replaces it.

Fabric backends need the FabricProxy-Lite mod configured with the same secret. NeoForge and Forge backends need a proxy compatibility mod for your version. Modded networks are harder, so start with Paper if you can.

Step 4: Lock the backends down

This is the step people skip and regret. If a backend's port is reachable from the internet, someone could try to connect to it directly and skip the proxy.

With modern forwarding and the secret in paper-global.yml, Paper refuses direct connections, because they arrive without the signed forwarding data. That is a big reason to use modern mode over the older legacy mode, which has no such check. Still, best practice is to make backends reachable only from the proxy:

  • Run them on the same machine and bind them to 127.0.0.1 with server-ip=127.0.0.1.
  • Or use a firewall that only allows the proxy's IP to reach the backend ports.

Never use a guessable secret, and never paste it into a screenshot or support chat.

Step 5: Start everything and test

  1. Start the backends first, then the proxy.
  2. Join the proxy's address in Minecraft. You should land in the lobby.
  3. Type /server survival to switch. /server on its own lists the servers.
  4. Check your skin and name look right on each backend. A Steve or Alex skin on everyone means forwarding is not working.

Useful proxy commands, typed in the Velocity console without a slash:

Command What it does
glist Players online on each server
velocity version The Velocity build
velocity reload Reloads velocity.toml without a restart
send <player> <server> Moves a player to another server
end Shuts the proxy down

Common Velocity errors

Message Cause Fix
"Unable to connect you to lobby. Please try again later" The backend is offline or the address in [servers] is wrong Start the backend, check the IP and port
"This server requires you to connect with Velocity" Velocity forwarding is on in Paper, but the player came in directly or the proxy is not in modern mode Join through the proxy, set player-info-forwarding-mode = "modern"
"Unable to verify player details" The secret on the backend does not match forwarding.secret Copy the secret again, watch for spaces
"If you wish to use IP forwarding, please enable it in your BungeeCord config as well!" bungeecord: true in spigot.yml with a Velocity proxy in modern mode Set it to false and use paper-global.yml instead
Everyone has default skins and new UUIDs Forwarding is off, so the backend makes offline mode accounts Turn on modern forwarding on both sides. Fix this before players build, since inventories are tied to UUIDs

If players see "Failed to verify username", read our failed to verify username fix, which covers proxy causes.

Plugins for a network

Velocity has its own plugins, which go in the proxy's plugins folder. They are not the same jars as Paper plugins. Popular ones are LuckPerms (Velocity version, with a shared MySQL or MariaDB database for network wide ranks), ViaVersion for mixed client versions, and Geyser with Floodgate on the proxy for Bedrock players across every server. See how to install ViaVersion and how to let Bedrock players join a Java server.

Running a network on GamezServers

A network is several servers, so on GamezServers you would run one Minecraft server per backend and one for the proxy, each sized for its job. Put each backend's address and port in [servers], and since they sit on their own addresses, keep modern forwarding on with a long random secret so Paper turns away anyone who skips the proxy. A small lobby can live on 2 GB, while a survival backend with plugins wants 4 GB or more. Size each one with how much RAM a Minecraft server needs, and see cheap Minecraft server hosting to keep the total down. If the bill gets big, credits earned by sharing your link come off it automatically, as explained on free Minecraft server hosting. For most friend groups, one Paper server with plugins is still the better starting point.

FAQ

Is Velocity better than BungeeCord?

For new networks, yes. Velocity is faster, actively developed by the PaperMC team and has modern forwarding, which secures backends with a shared secret. BungeeCord and its forks still work but rely on firewalls alone.

Why do backend servers use online-mode=false?

Because the proxy handles login. With modern forwarding, the backend gets the real UUID and skin from the proxy, signed with your secret, so players still keep their real identity.

Can Velocity run Paper plugins?

No. Velocity plugins are built for the proxy and go in its own plugins folder. Paper plugins stay on the backends.

What port does Velocity use?

25577 by default. Change bind in velocity.toml to 0.0.0.0:25565 so players can join without typing a port, as long as nothing else on that IP uses 25565.

Do players need to install anything to join a network?

No. A network looks like a normal server to the client. Players add one address and use /server or lobby menus to move around.

Skip the setup. Your own Minecraft server.

$2.49USD first month

Then $4.99/mo. Just trying it? $1.25 for 3 days

Keep reading