Articles on: Minecraft

How to Set Up and Configure BungeeCord



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 lets players connect multiple servers together and gives them the ability to switch between them seamlessly like on bigger minecraft networks.

Once a player is connected to a BungeeCord server, they can use commands, a GUI or portals to move between servers. By default it's done via commands but plugins can be added for extra functionality like portals or a GUI.


💠 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 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.

Stop Your Server


Scroll down and click on Server Type then select BungeeCord.

Server Type


Generate a new world.

The BungeeCord server type is not using any world, it is just making the connection between the servers in the network. It is your choice if you generate a new world or not, but your old world will remain intact when changing to BungeeCord. We suggest you click Yes to have your worlds organized better and not get confused regarding which world is your old one.

Generate a New World

Click Ok when you see this popup.

Click Ok


Start your server by clicking Start.

Start Your Server

Now you just changed your server to BungeeCord.


⚙️ Allowing Bedrock Players to join your bungee network ⚙️




For bedrock users to be able to join your network, the Geyser and Floodgate plugins need to be installed on your bungeecord server.

NOTE: Make sure that you use Filezilla for uploading plugins to the plugins folder. Here is our guide for using Filezilla.


Once you have Filezilla installed, you can proceed with the installation of the plugins:



Download the Geyser and the Floodgate plugins. Make sure you select the Bungeecord version of them.





Drag and drop the Geyser & Floodgate files to the plugins folder.




Restart the server, go to the plugins folder and then to the Geyser-BungeeCord folder and edit the config.yml file. You will need to set the port value to the port of your server.

NOTE: The port is the 5 number value after the : in your Server Address. For example, if your address is 73.124.222.115:25579, your port will be 25579.





Restart your server and you are good to go!


📝 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/Paper sub-servers on your network. You can do so by editing the server.properties file, which is located in the root directory of the sub-server. We also have a guide for disabling the Online Mode on your server here.
Set bungeecord to true in all Spigot/Paper sub-servers in your network. The mentioned option can be found in the spigot.yml file, which is located in the root directory of the sub-server.

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:

/alert <message>

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.

/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



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/Paper 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



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.


SafeNet



SafeNet

This plugin is an alternative for BungeeGuard. SafeNet adds a security token to the BungeeCord handshaking protocol, protecting you from direct backend server access and the IP-forwarding bypass exploit.


How to set up SafeNet 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 and use the /sn generate command, which will generate the passphrase.

Go to /plugins/SafeNet/config.yml and make a note of the value of the passphrase.


How to set SafeNet on Sub Servers:

Be sure that the Spigot/Paper 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/SafeNet/config.yml. Add the passphrase generated by the proxy(ies) under the passphrase.
Go to your Spigot/ Paper sub server Multicraft console and type the '/sn reload' command.


🔒 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.


❕ Useful Links ❕



- LuckPerms Installation
- How To: Install Plugins on Your Server
- How to: Upload a World to Your Server

Updated on: 09/07/2023

Was this article helpful?

Share your feedback

Cancel

Thank you!