NewSchokr 13 is here. A whole new UI, seven locations, snapshots and more. Read more →

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

ServerTemplateSuggested memory
ProxyBungeeCord512 MB to 1 GB
LobbyPaper1 to 2 GB
Game serverPaper2 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 host stays 0.0.0.0.
  • The names under servers (here lobby and survival) are what players type in /server survival.
  • priorities is the server players join first.
  • Keep online_mode: true on the proxy. The proxy checks accounts with Mojang.
  • ip_forward: true passes 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

  1. Connect to the proxy's address.
  2. You should land in the lobby.
  3. Run /server survival to switch. Run /server alone to list servers.

Plugins on a network

  • Proxy plugins (BungeeCord plugins) go in the proxy's plugins folder. 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 address is wrong. Check the backend is running and the port matches its Network section.
  • Everyone has Steve or Alex skins: ip_forward or bungeecord is off somewhere.