The BungeeCord config.yml defines where the proxy listens, which backends it knows, and where new players are sent. Always generate it with the installed version. Old examples can contain fields or defaults that no longer match the current build.
Valid YAML does not prove a secure network. Once backends use
online-mode=false, their TCP ports must reject direct connections. Follow the complete BungeeCord setup guide.
Secure baseline
online_mode: true
ip_forward: true
player_limit: -1
server_connect_timeout: 5000
remote_ping_timeout: 5000
servers:
lobby:
address: <LOBBY-ADDRESS>:<PORT>
motd: '&aLobby'
restricted: false
survival:
address: <SURVIVAL-ADDRESS>:<PORT>
motd: '&aSurvival'
restricted: false
listeners:
- host: 0.0.0.0:<PROXY-PORT>
motd: '&aMy Network'
priorities:
- lobby
- survival
force_default_server: true
forced_hosts:
survival.example.net: survival
max_players: 100
tab_list: GLOBAL_PING
query_enabled: false
proxy_protocol: false
Replace placeholders with panel addresses. Showing a public backend address in a configuration does not mean its port should be public.
Global fields
| Field | Purpose | Safe interpretation |
|---|---|---|
online_mode |
authentication at the proxy | true for normal authenticated networks |
ip_forward |
IP, UUID, and profile forwarding | required, but not access control |
player_limit |
global hard player limit | zero or below means unlimited |
server_connect_timeout |
backend connection timeout | too low causes false failures; too high delays joins |
remote_ping_timeout |
backend ping timeout | a ping is not a real join |
remote_ping_cache |
cache for backend status | may briefly expose stale state |
connection_throttle |
connection-attempt window | not complete bot or DDoS protection |
forge_support |
Forge handshake support | check mod-loader compatibility separately |
servers: name each backend
Every key under servers is an internal name. address must be reachable from the proxy process. restricted: true requires bungeecord.server.<name>, but does not block direct network access to the backend port.
Do not use the public proxy domain as a backend address; that can create a loop. Use a concrete internal, private, or otherwise proxy-only address.
listeners: public entry points
host must match the assigned proxy allocation. priorities is the ordered entry and fallback list. A case mismatch such as Lobby versus lobby is enough to leave the proxy without a default target.
With force_default_server: true, new connections start through priorities or forced-host routing. With false, BungeeCord may try to restore a previously used target.
max_players is not player_limit
listeners.*.max_players changes the slot count displayed in the server list. player_limit is the global hard limit. Configure both intentionally; a display value is not a capacity benchmark.
forced_hosts and DNS
forced_hosts maps a requested hostname to an internal server name. DNS still points at BungeeCord. Use the domain and SRV guide for a custom hostname or non-default port.
Do not confuse these settings
proxy_protocolexpects a real HAProxy/PROXY Protocol sender; it is unrelated to ordinary BungeeCord forwarding.query_enabledadds a UDP service; do not open it without a use case.ping_passthroughexposes a target's MOTD and status, so backend failure can affect the list response.restrictedis a BungeeCord permission, not a firewall./greloaddoes not reliably reload every plugin and permission change; plan a restart.
Match the backend settings
Set online-mode=false in server.properties and settings.bungeecord: true in spigot.yml. For Paper, proxies.bungee-cord.online-mode must match the proxy's online_mode. Read the secure forwarding guide before changing identity settings and use the backup/clone/rollback workflow in the version-switch guide.
Validation checklist
- Use spaces, not tabs.
- Verify indentation and quote strings with special characters.
- Match every name in
prioritiesandforced_hoststo a key underservers. - Fully restart the backends and proxy.
- Test TCP, Minecraft ping, and a real lobby join separately.
- Test from an independent source that the backend port is blocked.
If BungeeCord cannot reach the lobby, follow the fallback error guide. Add proxy and backend plugins at the right layer only after this baseline passes.