Our servers fully support BungeeCord. This guide will tell you how to install BungeeCord and give you some tips and tricks for running a BungeeCord server. If you would like to have our technicians set up a BungeeCord server for you, please check out our BungeeCord Installation Addon on our Adding Addons page.


❓ What is BungeeCord ❓

BungeeCord is a software that acts as a proxy between the player's client and the connected Minecraft servers. The players see no difference between BungeeCord and a normal Minecraft server.

When the player connects to BungeeCord, it bridges the connection seamlessly to the Minecraft server and allows the player to connect. From there, the player can use commands integrated into BungeeCord and/or plugin-operated portals to move between different servers. This allows a single server to become a network of servers seamlessly working together.


💠 Servers

It is recommended that you have at least 3 servers for your BungeeCord network. It is possible to run a BungeeCord network with only 2 servers, but that defeats the purpose. You need at least 3 servers. One of these servers will be used as the BungeeCord server, the other two servers are the Bukkit or Spigot servers BungeeCord will connect to.


💠 RAM

It is generally recommended to have 512MB of RAM on the proxy/ bungee server for every 500 players that will be connecting to your network. Please keep in mind that plugins may have a significant impact on the amount of RAM needed. If in doubt, feel free to open a ticket with our Sales department and we’ll advise you on the amount of RAM you need for your BungeeCord server.


💠 Plugins

BungeeCord has its API that is different from Bukkit’s or Spigot’s. Therefore, plugins that work with Bukkit/Spigot do not work with BungeeCord and vice versa. However, how they are working is similar. If you want to add a plugin to your BungeeCord server, simply add the plugin to the plugins directory on your BungeeCord server. After restarting your BungeeCord server, you’ll see a new folder in the plugins directory with the plugin’s configuration inside.


🔌 How to Set Up Your Proxy/ Bungee Server 🔌

To set up the main server, the proxy/ bungee one you will need to make a clean install of the BungeeChord Template.

NOTE: This process will delete all your server files. Please backup first what you need to your PC using Filezilla. Here is our guide for using Filezilla.

To do a clean install of BungeeChord you need to:

Log in to your Multicraft, stop your server, then click on Files and then on Setup.



Select at the Template section BungeeChord, tick just the box for Delete All Server Files, put your Multicraft password, and click on Apply.



Start your server and give it some minutes so it can set up BungeeChord.

NOTE: Here is our guide for doing a clean install.

Now you just set up your proxy server.


📝 Bungee Config File 📝

The bungee config file is title 'config.yml' and you can find it in the root directory of your server.

# GGServers Sample Configuration
# Disclaimer: GGServers provides these samples "as-is" and "as-available". GGServers and its staff are not
# responsible for any problems that may arise from your use of these samples and will not be held liable for any #
# actions that derive from such use.

groups:
md_5:
- admin
disabled_commands:
- disabledcommandhere
player_limit: -1
stats: bdd33aff-949a-479a-83e3-63a4bb26797f
permissions:
default:
- bungeecord.command.server
- bungeecord.command.list
admin:
- bungeecord.command.alert
- bungeecord.command.end
- bungeecord.command.ip
- bungeecord.command.reload
listeners:
- query_port: 25577
motd: '&1Another Bungee server'
tab_list: GLOBAL_PING
query_enabled: false
forced_hosts:
pvp.md-5.net: pvp
ping_passthrough: false
default_server: lobby
bind_local_address: true
fallback_server: lobby
host: 0.0.0.0:25577
max_players: 1
tab_size: 60
force_default_server: false
timeout: 30000
connection_throttle: 4000
servers:
lobby:
motd: '&1Just another BungeeCord - Forced Host'
address: localhost:25565
restricted: false
ip_forward: false
online_mode: true


groups

Here, you can assign players to a permission group. The permission groups will be created later in the configuration. The format is “groups”, followed by each player, followed by each group he/she is in. Every player gets the permissions of the default group only. Add players who need more than the default permissions to this setting.


disabled_commands

Use this to disable commands on your BungeeCord instance. You can disable BungeeCord or Bukkit commands.


player_limit

This is the global player limit for your BungeeCord instance. If this is set to -1 (default), this will allow an unlimited amount of users to join your network.


stats

This is used for stats purposes, please do not remove or alter the code. This is a randomly generated number to provide stats. Stats are anonymous packets of usage collected on MCStats. This is something you should never edit, so leave it be.


permissions

These are the permissions of what commands or actions each group can use within the proxy. Please note, that these are different from Bukkit/Spigot permissions. The permissions are group-based. All players will have the ability to use the commands under "default". Players assigned to a group in the "groups" section are allowed to use the extra commands for BungeeCord as stated below that group. Note each group only inherits "default" so you may need to put the same node in different groups if you choose for those groups to have additional permissions.


listeners

These items are configurable options that can be found under the listeners section of the BungeeCord configuration. Multiple listeners can be added to listen to several IP's and ports.


max_players

The max player limit shown in the Minecraft client's multiplayer menu. Note that this limit is fake, so even if you set it to 0, players will still be able to join. Look at ‘player_limit’ above for a "real" player limit.


fallback_server

This setting sets the server to connect to if the default server is unavailable.


host

This the IP and port in which the BungeeCord instance will be hosted on. You’ll want to use your server IP and port that is assigned to your BungeeCord server here.


bind_local_address

Whether the address Bungee uses to connect to your servers will be explicitly set to the address Bungee is listening on. This serves no purpose unless your system has multiple IP addresses.


ping_passthrough

Whether to pass the ping through when we can reliably get the target server (force default server).


tab_list

The tab list has a choice of 3 options:

- GLOBAL_PING: This shows all players connected to the proxy, complete with ping.
- GLOBAL: As above, but without updating their ping.
- SERVER: This shows the local players on the server you are connected to.

Note - BungeeCord 1.8 versions currently do not have working GLOBAL or GLOBAL_PING options due to 1.8 having a new tab list.


default_server

The server that first-time players will connect to, or if forcing default server, will always join upon connecting.


forced_hosts

Allows for redirection. If the pvp.md-5.net sub-domain of the domain md-5.net is joined, it will bypass the default server and go to the server that is stated in the config, in this case directly to the PVP server.
Note: this requires you to make sub-domains forwarded to your BungeeCord address via the main Dynamic DNS as for your main domain.


tab_size

The number of players that will show up in the tab list (pressing TAB on keyboard). NOTE: This does not currently do anything for 1.8.x servers.


force_default_server

If this is set to true, the player will always connect to the default server when they join. If this is set to false, the player will join the server they were last connected to. Note: "forced_hosts" does NOT override this. To make the "forced_hosts" setting work, set this setting to false.


motd

This is the message that will be displayed in the multiplayer menu when players ping the server.


query_enabled

This setting sets whether or not to enable the UDP query.


query_port

This setting sets the port to run the UDP query on.


timeout

This setting sets how long the proxy should go unresponsive before shutting off all connections.


connection_throttle

This setting sets the time delay before a client is allowed to connect again after a recent connection attempt to prevent attacks (in milliseconds).


servers

Within this section, you will list all the servers that will be connected to via the BungeeCord instance. It is recommended to use lowercase for the names of the servers.


ip_forward

Whether to enable IP forwarding which allows you to see the true IP of the player, rather than the proxy IP address.


online_mode

Whether the BungeeCord instance will authenticate with the Mojang servers. If set to false, cracked players will be able to join your server.


🔩 How to Configure Your Bungee Server 🔩

To configure a minimum of 3 servers on a Bungee network you need to assure the minimum following steps:

The examples above are showing the changes you will do to the Bungee config.yml file.

Set Up The Admins Network: Add the wished admins in their group.




Set Up The IP Address The Players Will Use to Connect: Set the host: to the IP and Port of your proxy/ bungee server.


Set Up The Other Servers: Just add them under servers: with the desired name, MOTD, and IP address.




Set Up The Default/ Fallback server: Set the priorities: to the name of the server you want to be the default one.


Set Up The MOTD of the server: Set the motd: to the desired MOTD.


Set Up The Max Player Limit: Set max_players: to the desired number.


Set Up The Tablist to Show Globally, Per Server, or Globally With Ping: Set tab_list: to the desired option: SERVER, GLOBAL, GLOBAL_PING.


💠 Final Steps

Set in the bungee config file the ip_forward: to true.

Set the online-mode to false in all Spigot sub servers from your network.

Set bungeecord to true in all Spigot sub-servers from your network.

Now you just configured properly Bungee in your server.


📜 BungeeChord Commands 📜

After you set up and configured your BungeeChord server you will use the following commands to use the BungeeChord network:

/alert <message>

Issues an alert to all users connected to BungeeCord. This is useful for announcements that need to be shown across every server. Colour codes may be used with &. The special code &h will hide all default formatting, allowing for completely custom messages.


/alertraw <json>

Issues an alert to all users connected to BungeeCord, but allows the use of Minecraft JSON formatting.


/bungee

Shows what version of BungeeCord is currently being run.


/end <message>

Shuts down the BungeeCord instance, and disconnects any users connected. Equivalent to /stop on your Spigot servers, except stops bungee


/find <player>

Confirms whether a player with the username provided is online and determines which server the player is connected to.


/glist

Shows a list of all players connected to BungeeCord. This list is separated by each server on the BungeeCord proxy and provides a total player count on the proxy.


/greload

Reloads the BungeeCord configuration. Similar to the Bukkit reload command, this is not intended to be used regularly and can lead to unexpected behavior. The command will reload all servers, listeners, and a few options from the configuration. It will not reload permissions or plugins. Note: This is highly unreliable, and it is strongly recommended that you restart your BungeeCord instance instead of reloading it.


/ip <player>

Shows the real IP address of a player connected to BungeeCord. This command exists since using an IP command with a Bukkit plugin, such as Essentials, could return as localhost due to the way BungeeCord works.


/perms

Shows all permissions you have, and all groups which you are in.


/send <player/current/all> <target>

Sends the specified player(s) to the specified server. Passing "all" will send all players who are on the proxy but not on the target server. Passing a player name will send the specified player, and "current" will send all players on your server.


/server [server]

When used with an argument, transfers you to the specified server. When used with no arguments, lists all servers you can connect to.


🛡️ How to Protect Your Bungee Server 🛡️

We recommend you to add the following plugins to your Bungee server to properly protect it:

BungeeGuard

This is a plugin that adds a security token to the BungeeCord handshaking protocol. In the case that the backend servers are not properly firewalled, it prevents players from bypassing the proxy and spoofing their UUID.

How to set up BungeeGuard on your bungee/ proxy server:

Set the ip_forward to true in your bungee configuration file config.yml.

Use Filezilla to upload the plugin to your 'plugins' folder from your proxy/ bungee server.

NOTE: Here is our guide for using Filezilla.

Open your proxy/ bungee server files, then go to /plugins/BungeeGuard/token.yml and make a note of the value of the token.


How to set BungeeGuard on Sub Servers:

Be sure that the Spigot sub server is running the ProtocolLib plugin.

Use Filezilla to upload the plugin to your 'plugins' folder from your Spigot/ Paper sub server.

Open your Spigot/ Paper server files, then go to /plugins/BungeeGuard/config.yml. Add the token(s) generated by the proxy(ies) to the allowed-tokens list.

Go to your Spigot/ Paper sub server Multicraft console and type the '/bungeeguard reload' command.


IPWhitelist

The servers from your Bungee network has to have the online-mode disabled. This plugin only allows people, coming through the proxy server to join the server, being kicked if they connect directly to the server sub servers.

To use this plugin you will need to do the following:

Use Filezilla to upload the plugin to your 'plugins' folder from each sub server. Please be sure you do not also upload it to your proxy/ bungee server.

Add your bungeecord IP on the plugin config file ( /plugins/IPWhitelist/config.yml ).

Set the ip_forward to true in your bungee configuration file config.yml.

Connect to the Spigot/ Paper sub server through bungeecord.


🔒 How to Set Up Permission on Your Network 🔒

if you want to manage more carefully the permission on your network, you can set up permission either on each sub server using a permission plugin like LuckPerms, either globally for all sub servers using still LuckPerms, but the Bungee version.

NOTE: Here is our guide for using LuckPerms.

If you want to set up your permission globally you will have to upload the Bungee LuckPerms version to your proxy/ bungee server.


If you find any issues setting up or configuring BungeeCord into your server please contact us on live chat or via the ticket system.


❕ Useful Links ❕

- LuckPerms Installation
- How To: Install Plugins on Your Server
- How to: Upload a World to Your Server
Was this article helpful?
Cancel
Thank you!