VEXL SMP
The Proxy
What a proxy actually is, and how it lets one Minecraft network run multiple servers behind a single address.
What a proxy actually is
Normally, one Minecraft server means one address. If a network wants a survival world and a separate events map as genuinely different servers, players would need two different IPs and would have to fully disconnect and reconnect to move between them.
A proxy sits in front of the real game servers and acts as a single front door. Players only ever connect to one address, and the proxy quietly decides which actual server to hand them off to behind the scenes.
It's the same idea as a hotel switchboard: you dial one number, and an operator connects your call to whichever room you actually need. You never dial the room directly, and you'd have no way of knowing which extension it even is.
Why networks bother with one at all
Seamless server switching — moving between game modes feels like walking through a portal instead of quitting and rejoining an entirely different server.
One address to remember — players only ever need a single IP, no matter how many backend servers exist behind it or how that setup changes over time.
Shared state across servers — things like player permissions, chat formatting, and rank data can be synced network-wide instead of configured separately on every single backend.
Independent scaling and stability — each backend runs as its own separate process, often on its own hardware. One server crashing or lagging under load doesn't take the rest of the network down with it.
What the proxy software actually does
Common proxy software for Minecraft — Velocity, Waterfall, and BungeeCord are the main ones in use today — doesn't run any actual game logic. It has no idea what a claim, a shop, or a mob is.
All it does is accept the player's initial connection, run a few checks, then open a connection to the correct backend server and start relaying packets between the two. From that point on, all real gameplay happens entirely on the backend server, not the proxy.
Because it's doing so little compared to a full game server, a proxy is extremely lightweight — it can comfortably handle the connection layer for an entire network of servers using a fraction of the resources a single game server needs.
Keeping things secure: player info forwarding
One obvious risk with any proxy setup is a backend server not actually being able to trust who a player claims to be — technically, anyone could try to connect straight to a backend server directly and simply lie about their username or UUID.
Older setups relied on what's called legacy forwarding, which is fast to set up but easy to spoof if a backend is ever exposed directly to the internet.
Modern forwarding fixes this: the proxy and each backend server share a private secret key. When the proxy forwards a player through, it cryptographically signs that player's identity data with the key, and the backend verifies the signature before trusting who they say they are.
For this to actually be secure, backend servers also need to be locked down so they only accept connections coming through the proxy — otherwise someone could still bypass the proxy entirely and connect straight to the backend.
Shared services across the network
Since each backend server is technically a separate, independent instance, a network usually needs some way to keep certain things consistent everywhere rather than configuring them over and over on every server.
Permission plugins like LuckPerms commonly run in "network mode," syncing ranks and permissions from one central place so a player's rank applies identically no matter which backend they're currently on.
The same idea extends to things like cross-server chat, network-wide economy balances, and global player data — all handled by plugins designed specifically to work across a proxy rather than on a single standalone server.
The tradeoffs
A proxy isn't free complexity — it adds an extra hop between the player and the actual game server, which means slightly more moving parts to maintain and, in theory, a tiny amount of added latency.
It's also a single point of entry: if the proxy itself goes down, the entire network becomes unreachable even if every backend server behind it is running perfectly fine.
For any network running more than one server, though, the tradeoff is usually well worth it — the alternative is asking players to memorize multiple IPs and manually reconnect every time they want to do something different.