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.
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.
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.
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 change your server type to the BungeeCord option.
NOTE: Please backup first what you need to your PC using Filezilla. Here is our guide for using Filezilla.
To change your server type to BungeeCord you need to:
Log in to your Multicraft account here
Click Stop to stop your server.
Scroll down and click on Server Type then select BungeeCord.
Generate a new world.
If you want to keep your current world, we recommend clicking Yes here. This will create a completely new world and save your current world in case you want to go back to that version of Minecraft and play on it.
Click Ok when you see this popup.
Start your server by clicking Start.
Now you just changed your server to BungeeCord.
📝 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
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.
Use this to disable commands on your BungeeCord instance. You can disable BungeeCord or Bukkit commands.
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.
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.
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.
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.
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.
This setting sets the server to connect to if the default server is unavailable.
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.
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.
Whether to pass the ping through when we can reliably get the target server (force default server).
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.
The server that first-time players will connect to, or if forcing default server, will always join upon connecting.
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.
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.
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.
This is the message that will be displayed in the multiplayer menu when players ping the server.
This setting sets whether or not to enable the UDP query.
This setting sets the port to run the UDP query on.
This setting sets how long the proxy should go unresponsive before shutting off all connections.
This setting sets the time delay before a client is allowed to connect again after a recent connection attempt to prevent attacks (in milliseconds).
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.
Whether to enable IP forwarding which allows you to see the true IP of the player, rather than the proxy IP address.
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.
📜 BungeeCord Commands 📜
After you set up and configured your BungeeCord server you will use the following commands to use the BungeeCord network:
Issues an alert to all users connected to BungeeCord. This is useful for announcements that need to be shown across every server. Color codes may be used with &. The special code &h will hide all default formatting, allowing for completely custom messages.
Issues an alert to all users connected to BungeeCord, but allows the use of Minecraft JSON formatting.
Shows what version of BungeeCord is currently being run.
Shuts down the BungeeCord instance, and disconnects any users connected. Equivalent to /stop on your Spigot servers, except stops bungee
Confirms whether a player with the username provided is online and determines which server the player is connected to.
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.
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.
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.
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.
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:
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.
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 the permission on your network more in-depth, 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.
- LuckPerms Installation
- How To: Install Plugins on Your Server
- How to: Upload a World to Your Server
Updated on: 06 / 22 / 2022