The way BungeeCord works is that you have a backend server that runs BungeeCord itself and nothing else. This server cannot be used as a Minecraft server itself as it simply acts as the proxy/backend - it does not load bukkit plugins (only BungeeCord-specific plugins) or worlds.

You can choose to have a hub server with all the server portals in or you can just have portals in every server.

The minimum amount of Minecraft servers in the network that users can play on should be two but you can have as many more than this as you like.

Once you have your servers ready, it is time to set up the BungeeCord server. You can simply select it from the Multicraft JAR list, then click save at the bottom of the page and restart your server. This will install the latest version. If you want to install your own version, please read the following:- You can get different builds here: https://ci.md-5.net/job/BungeeCord/

- Upload the BungeeCord.jar to the jar directory/folder on your server.

- Change your jar file in Multicraft to BungeeCord.jar

Once you have BungeeCord selected or uploaded manually load your server up on BungeeCord, it will say it is listening on 0.0.0.0:25577. It will not work like this.

It will generate a config.yml in your root directory (this can be accessed on the Files > Config Files page of your control panel). Open that up and you will see something like this: http://pastebin.com/WQFL1Lh9 (newer versions may appear slightly different with new options but this guide will be updated when needed to cover those too).

You can change max_players to number you want.

The "host" setting must be the IP:Port assigned to your particular server - It cannot be left as 0.0.0.0, and the port must be the exact port your server is allocated.

Change the MOTD to whatever you like.

Go to the "servers" section, here you will input the name of your servers and their IP:Port.The default server is "lobby" (also called the hub in some cases), which is the server you will join by default when connecting to the BungeeCord proxy server. Just enter the IP:Port for this server in the address box - this must be the exact IP:Port of the server it is linking to, it cannot be left as localhost and must have the correct port for that server.

To add additional servers, simply copy the server name, address, restricted, and motd lines for each server you wish to add (making sure to keep the spaces the same as the lobby server entry so that it remains YAML compliant) and paste them below the lobby server entry. As an example: https://pastebin.com/3rKcGx0A

'tab_list' means what will show up in the tab menu. GLOBAL_PING means it will show the player list from all servers in the network plus their ping. GLOBAL does the same but without their ping.

SERVER will make the tab show just the players on the server you are connected to.

Even with permissions and/or OP on the sub servers, nobody can use the admin commands for BungeeCord; you must add players specifically to the groups in the BungeeCord config.

In the default config, it shows md_5: you replace that with your name and leave 'admin' where it is. Just copy this for each player you'd like to have admin commands.As an example for 3 random names having the admin permissions listed in the config: https://pastebin.com/72E9HuGx (all permissions listed in the default section are given to all players by default).

Now go back to 'default_server'. Change this to the server you want people to go to when they first join. If you wanted them to join the hub server first, then replace lobby with hub. Note that server names are specific - Hub and hub are not the same, it must be exactly as listed in the servers section of the config.

**Note::

For more recent BungeeCord versions the default_server option has been replaced with a 'priorities' list - the same applies, the server name entered (always case-sensitive) at the top of the priorities list (in the default setup it will have 'lobby' entered) is the 'default server' players initially log into.

You can, however, add another server name on a new line below the first server name so that if the first server is inaccessible when a player logs in, it will send them to the second server in the list (and so on...) instead! (as above the server name is specific and must match exactly as listed in the servers section of the config).

Congratulations! You have successfully made a Bungee Cord server!All players must be logging in through the BungeeCord proxy servers IP to be able to teleport between servers with the '/server [server name]' command.

If you need to restart the Bungee server, you must go into any of the servers and do /end, then stop the Bungee server from Multicraft.

If you do not do /end you will not be able to stop the Bungee server safely.The 'end' command can also be ran directly in the BungeeCord servers console to stop the server (without a slash infront of it as per usual with console commands).

**Note::

Newer BungeeCord versions (around the same time 'priorities' were added) do not need to be shut down through the console, you can restart/stop them via the buttons on MultiCraft without issue!

Changes you must make to the subservers in your network::

One major part of Bungee Cord is that you must change all of your connected servers to online-mode: false in their server.properties. You can also set the "connection-throttle" setting to -1 in the bukkit.yml file for each of the servers on your BungeeCord network - while not necessary this is recommended.

This does not mean that offline players can join since BungeeCord will authenticate the user. This does mean though, that you cannot give out the IP for any of your servers on the network. You can only give out the Bungee server IP otherwise they will not be authenticated and can login on non premium accounts. Make sure online_mode: true is in the Bungee Cord config.

An option to not allow direct connecting to the sub server IP:Ports, so everybody has to correctly log in through the BungeeCord servers IP:Port, is to have all servers in the network running on Spigot (or PaperSpigot). This will create a spigot.yml file in their root directory - in this file is an option that will say 'bungeecord: false' by default. If you change this to true, save changes and restart the server on that setting for all subservers, and then set the ip_forward option in the BungeeCord config to true, save changes and restart the server nobody will be able to use any of the IP:Ports in the network except for the BungeeCord server.

Note regarding the forced_hosts section::

This section allows you to use a custom domain (and any subdomains made with it) to link directly to specific servers in the network. A common set up mistake with this is setting the domain/subdomain up to link to the IP:Port of the server that domain/subdomain is to send you to - they should all link to the BungeeCord servers IP:Port specifically. You set which server they forward you to in this section.

As an example if you had 4 servers in your network - Lobby, Survival, Creative and Factions - and had your own custom domain of poorexample.com and you wanted the following domain/subdomains to link to those servers:- poorexample.com and lobby.poorexample.com to link to the Lobby server- mc.poorexample.com and play.poorexample.com to link to the Survival server- creative.poorexample.com and build.poorexample.com to link to the Creative server- pvp.poorexample.com and factions.poorexample.com to link to the Factions serverThen you would set all of those subdomains and domain to link to the BungeeCord servers IP:Port in the domains DNS settings, and then set the BungeeCord configs forced_hosts section up as: https://pastebin.com/s8sLNJjE