How to set up a BungeeCord network with multiple servers
Link a lobby and game servers behind a BungeeCord proxy on Schokr: proxy config.yml, ip_forward, online-mode settings and securing backend servers.
Updated · 2 min read
A BungeeCord network puts one proxy in front of several Minecraft servers so players can move between them with /server without disconnecting. On Schokr you create one server from the BungeeCord template and one Paper server for each backend (lobby, survival, minigames), then point the proxy at them.
What you need
| Server | Template | Suggested memory |
|---|---|---|
| Proxy | BungeeCord | 512 MB to 1 GB |
| Lobby | Paper | 1 to 2 GB |
| Game server | Paper | 2 GB or more |
The free package gives each team up to 4 server slots and 6 GB of memory to split, so a proxy plus two or three backends fits. Players connect only to the proxy's address.
1. Find each backend's address
Open each Paper server's Network section and note its address and port, for example 203.0.113.10:25566. The proxy connects to the backends at these addresses.
2. Configure the proxy
Start the BungeeCord server once so it creates config.yml, stop it, then edit these parts:
ip_forward: true
online_mode: true
listeners:
- host: 0.0.0.0:25565
motd: '&bMy Network'
max_players: 50
priorities:
- lobby
force_default_server: true
servers:
lobby:
motd: 'Lobby'
address: 203.0.113.10:25566
restricted: false
survival:
motd: 'Survival'
address: 203.0.113.11:25567
restricted: false
- Set the listener's port to the proxy's own allocation from its Network section. The
hoststays0.0.0.0. - The names under
servers(herelobbyandsurvival) are what players type in/server survival. prioritiesis the server players join first.- Keep
online_mode: trueon the proxy. The proxy checks accounts with Mojang. ip_forward: truepasses each player's real IP and UUID to the backends.
3. Configure every backend Paper server
In each backend's server.properties:
online-mode=false
In each backend's spigot.yml:
settings:
bungeecord: true
Restart every backend, then the proxy.
online-mode=false is required because the proxy, not the backend, handles authentication. With bungeecord: true, Paper trusts the player info the proxy forwards, so skins and UUIDs stay correct.
4. Secure the backends
This step is important. Backend servers with online-mode=false have public ports, so anyone who learns a backend's address could connect to it directly and pretend to be any player, including an admin.
To prevent that, install a plugin that makes backends accept only connections from your proxy. BungeeGuard is the common choice: install it on the proxy and every backend, then put the same secret token in each config. Players connecting directly to a backend are then refused.
Also keep backend addresses private, and do not list them on server lists or websites.
5. Test
- Connect to the proxy's address.
- You should land in the lobby.
- Run
/server survivalto switch. Run/serveralone to list servers.
Plugins on a network
- Proxy plugins (BungeeCord plugins) go in the proxy's
pluginsfolder. Paper plugins do not work there. - Game plugins go on each backend.
- To share ranks across servers, LuckPerms needs a shared database. Schokr does not provide MySQL, so use an external database. See plugins that need MySQL.
Troubleshooting
- "If you wish to use IP forwarding, please enable it in your BungeeCord config as well!" See fix the BungeeCord IP forwarding error.
- Could not connect to a default or fallback server: the lobby is offline or its
addressis wrong. Check the backend is running and the port matches its Network section. - Everyone has Steve or Alex skins:
ip_forwardorbungeecordis off somewhere.