← Guides · updated 2026-08-19

How to set up a Minecraft server network (Velocity proxy)

A server network is several Minecraft servers behind one entry point — a proxy. Players connect to a single address, land on a hub, and hop between your servers (survival, creative, minigames) in one session without disconnecting. On truetick the proxy is Velocity, and the servers behind it are called backends.

The proxy stays up 24/7 so the network is always reachable. Backends can be metered and scale to zero — sleeping when empty — which is where the cost savings live. For your first setup we recommend keeping backends on Flat too, so a join always lands on a server that's already up; once your network is running you can switch backends to Metered to let them sleep between sessions.

This guide is the exact flow, in order. It takes a few minutes the first time. Wiring the proxy to its backends — the Velocity config, the shared secret, matching the auth mode on both sides — is written for you. You don't open a config file for any of it; the panel's Network tab is where you act, and it tells you what it knows about whether that wiring has actually reached a running proxy yet.

Before you start — two things that will save you a retry:

  • Match your Minecraft version to the backend. Velocity does not translate versions. A 1.21.11 backend needs a 1.21.11 client (or ViaVersion installed on the proxy).
  • A backend and its own proxy must be on the same node. Attach won't let you mix them. A network itself can span multiple regions — see Multi-region networks below — but each backend is only ever reachable through the one proxy on its own node.

Step 1: create the proxy

New server → in Server type, pick the Proxy card (Velocity — link servers into a network). Give it a name (this becomes your network's public address, e.g. mynet.truetick.gg), and choose the Flat plan — a proxy should stay up so the network is always reachable; on Metered it would sleep when empty and drop the whole network.

Create it. It provisions Velocity and reaches running. Its dashboard shows RAM/CPU and a note that a proxy has no world tick — that's expected, proxies route players, they don't run a world.

Step 2: create your backend server(s)

New server → Plugins, core Paper or Purpur → same region/node as the proxy. Paper/Purpur specifically: that's the only core family that reads the Velocity forwarding config the platform writes for you (Vanilla has no forwarding mechanism at all; Fabric/Forge/NeoForge keep it in a separate mod we don't manage). Create as many backends as you want; each is a normal server you configure however you like.

Step 3: attach the backends

Open the proxyNetwork tab → Create network. Then under Attach a backend, pick one of your servers, tick private (so it can only be joined through the proxy, never directly), and Attach.

Each attached backend also shows a proxy address like 172.17.0.1:32300 on this tab — that's the address the proxy dials internally to reach it. It's shown for your own reference, not something you need to copy anywhere: the platform wires it into the proxy's config itself.

Attaching records the wiring on our side immediately: the platform now knows the backend belongs to this network, at that address, under this auth mode. Nothing is written into a server's files at that moment — each server renders its own config when it next starts, which is why what you do next depends on whether the backend is running:

The proxy itself works the same way: attaching a backend updates what the proxy should have, and the Network tab tells you whether that's reached the proxy's own running process yet — see Applying changes to a running proxy below.

Step 4: choose the network's authentication mode

Still on the Network tab: Authentication mode is Premium by default (real, Mojang-verified accounts) or Offline (cracked/self-issued identities) — one switch for the whole network, since PaperMC requires the proxy and every backend to agree on this exact value. You don't set it per-server; the platform keeps both sides in sync.

Leave it on Premium unless you specifically want to allow non-premium clients. Don't change it on a network that's already been played on: Premium and Offline derive a different player UUID from the same username, so switching later doesn't delete anyone's inventory or homes — it makes the game look for them under a UUID that no longer matches, so they appear empty. The panel's confirmation for this spells out that consequence and asks you to type the proxy's hostname before it lets you switch.

A mode change is a restart on both sides. The proxy and every backend have to carry the same value — that's PaperMC's rule, not ours — and each one only picks up the new mode when it next starts. The confirmation counts the backends running at that moment and says so; restart those as well as the proxies, or a player landing on a backend that still has the old mode is kicked at login.

Offline mode also doesn't add authentication on its own — if you allow non-premium clients, whatever keeps impostors from joining as someone else's username (an auth plugin, typically) is on you to install and configure; we don't ship or manage one.

Step 5: restart what's stale

Two restarts may be needed before the network actually routes players, and this flow makes both of them the normal case the first time through — not a rare edge you'll usually skip:

Skip a restart the tab isn't asking for, but expect to need both the first time you follow this guide in order.

Step 6: join

Connect a client — matching a backend's version — to the proxy's address (mynet.truetick.gg). With a backend on Flat and up, you land on it. (If a backend is Metered and asleep, joining wakes it, then asks you to reconnect once it's ready.)

Applying changes to a running proxy

The proxy re-reads its wiring the next time its own process starts — same as a backend. Because a proxy is meant to stay up on Flat, that might not be for a while, so the Network tab tells you, per region, what it actually knows:

There's no "applied" checkmark beyond that, because there's nothing on our side that confirms a running proxy actually picked up a given config — we show you what we know (when it last started, whether the desired config has moved since), not a guess dressed up as a fact. If a region says it couldn't be loaded, that's exactly what it means: we couldn't read that proxy just then, and nothing on that card is a statement about it.

Troubleshooting

Multi-region networks

A network isn't limited to one region. It can have one proxy per node — add a proxy in a second region and it becomes a new part of the same network, with its own backends attached to it the same way you attached backends to the first proxy above.

Good to know

Skip the setup: spin up a server with guaranteed CPU and live TPS — see pricing.