An easy way to start and maintain a bungeecord network.
- Overview
- Usage
- Installation
3.1 Automated
3.2 Docker
3.3 Manual - Updating
- Common problems
- Contributing
This project is split in two parts: A Bungeecord plugin and a Spigot. These two play togetter in order to give you the ability to start and manage a Minecraft-Bungeecord network in the easiest way possible: Once the initial setup is complete it's literally drag 'n drop.
This project has more features than just its easy maintainability.
It also features scripts that automate the entire installation process that also allows you to install
LuckPerms networkwide (requires an MongoDB-URI). Besides that it also features Auto-Update so that you never have to worry about keeping your network up to date.
For ease of use it also supports teleport-signs, and an GUI that makes switching server easier than ever. Portals, NPC and cross-server Inventorysync are yet to come.
The plugin supports everything that's version 1.12+.
This part only covers how to use the plugin. For installation instructions see 3. Installation.
To create an bungeecord-network you need at least two servers, one for the bungeecord proxy and one for the Minecraft
server, or one server with enough processing power, I'd recommend at least 4 cores and 6GB ram for that use case
(not recommended because the proxy will be, depending on the size of your network, under constant load).
In a normal use case you shouldn't have to touch the proxy at all.
The proxy config file contains two important points:
key
is the password which all game servers use to authenticate themselves.default_type
is the server type that all players will be sent to upon connecting. You should always have at least one not-full server with this type online or else all connecting players will be shown the following message:
The game servers config has three important points:
bungee_address
is the address of your Bungee-proxy.bungee_password
is the Bungee-proxies password.server_type
is the servers type (for example: 'Hub' or 'PvP') it is cAsE sensitive. It tells the proxy which use case the server has. If you have multiple servers with the same name they will be counted as one and filled up one after the other. If you, for example, have 10 Servers called 'PvP' with a capacity of 2 Players each, their capacity will show up on signs and/getserverinfo PvP
as "x / 20 Players" even though, in the background, they get filled with players separately. If you want your players to connect to a specific server you need to have them in their own type. (For exampleSurvival1
,Survival2
,Survival3
)
How to restart the server: Using /rl
will cause heavy incompatibility issues, usage will get disabled in the
future. Instead it's recommended to use /stop
in order to properly restart the server.
The plugin comes with a few important commands. Warning: The default bungee commands will get disabled in a future release.
-
/instance
returns the current instance a player is currently connected to. -
/changeinstance <player?> <instance>
sends you or, if defined, a player to a specified instance (for exampleT0xsR
).- Requires the
bungee.changeserver
permission.
- Requires the
-
/changeserver <player?> <type>
sends you or, if defined, another player to an instance of the specified type (for examplePvP
). Same as right-clicking a teleport-sign.- Requires the
bungee.changeserver
permission.
- Requires the
-
/getserverinfo <type>
shows you all server, and their current population, of a specified type. -
/<defaultType>
sends the player to a server with the type that was defined as default.- No permissions required
- No permissions required
-
/openserver
/closeserver
Opens / Closes the current instance. Players can't join closed instances. Closed instances won't count towards the number shown on signs. Players can still be transferred to closed instances via/changeinstance <player?> <instance>
- Requires the
bungee.opencloseserver
permission.
- Requires the
-
/menu
opens the server selection GUI.- No permissions required
- No permissions required
-
/broadcast <message>
sends a message to all active instances.- Requires the
bungee.broadcast
permission.
- Requires the
-
/ban <playername> <ban time (in hours)> <reason>
bans a player networkwide.- Requires the
bungee.ban
permission.
- Requires the
-
/unban <playername>
unbans a player networkwide.- Requires the
bungee.ban
permission.
- Requires the
During the initial setup of the server a file called GUI.yml
is generated. It contains the important points
required to configure the GUI.
heading: Server Selection
num_rows: 1
entries:
- §6PvP;pvp;diamond_sword;3;0;§5Click To Join PvP (§4%s§5)
- §2Survival;survival;grass;4;0;§5Click To Join Survival (§4%s§5)
- §cMinigames;minigames;tnt;5;0;§5Click To Join Minigames (§4%s§5)
heading
is the setting that dictates what is shown at the top of the GUI.
num_rows
is the amount of rows that are shown in the GUI. Setting this to 0 disables the GUI.
entries
these are the items shown in the GUI. Syntax is the following: <name>;<target>;<item_type>;<x>;<y>;<lore>
. Colorcodes can be used.
Teleport signs are signs that, when right-clicked, send the player to another server.
Signs with destinations that are offline are shown like this:
To create a teleport-sign the player needs to have the bungee.editsign
permission.
Just place a sign of your joice and type in the first line Bungee:<destination>
(replace "" with your
desired destination)
And Press Done
.
The sign will take a few seconds to sync. After that everyone can right-click the sign to get teleported like with
/changeserver
.
In order to execute the automated scripts you need following:
- An SSH connection an sudo password to an Ubuntu v20+ server (other distributions/version might work but aren't tested)
- The server needs access to the internet
- The IP addresses of all involved servers
In order to install a game server you first need to set up a bungee proxy.
This can be done by executing the following command:
wget https://raw.githubusercontent.com/EliasSchramm/Bungeecord-Auto-Multiserver/main/scripts/setupBungeecordServer.sh && sudo chmod +x setupBungeecordServer.sh && sudo bash ./setupBungeecordServer.sh
Enter the requested information:
Hit enter again, and the script will start installing everything. After it finished you will be sent to the screen-instance it is running in. It might restart a few times in order to finish the configuration. Once that's done you have a fully operational proxy.
To install the game server you have to execute the following command:
wget https://raw.githubusercontent.com/EliasSchramm/Bungeecord-Auto-Multiserver/main/scripts/setupMinecraftServer.sh && sudo chmod +x setupMinecraftServer.sh && sudo bash ./setupMinecraftServer.sh
Enter the requested information.
Hit enter again, and the script will start installing everything.
After it finished you will be sent to the screen-instance it is running in. It might restart a few times in order to
finish the configuration. Once that's done you have a fully operational game server. If you have entered your data
correctly you should be able to see something like [Auto Bungee] Connected XDMm2 10.0.0.3
in your proxy console.
Repeat this progress for every gameserver you want to set up.
Download the Dockerfile here
Change the first few lines to match your desired config.
Build it.
Remember to forward the ports 10101
and 25565
when running the container.
Download the Dockerfile here
Change the first few lines to match your desired config.
Build it.
Remember to forward the servers port when running the container.
Install the bungeecord server after this guide: https://www.spigotmc.org/wiki/bungeecord-installation/
Start the server once. Stop it.
Download the latest build of BungeecordAutoConfig-Bungee here
and place it in the plugins/
folder.
Start the server once. Stop it.
Fill the fields in the now generated plugins/Bungee/config.yml
with your information.
Start the server. It may restart/stop a few times in order to finish the installation.
Install the spigot server after this guide: https://www.spigotmc.org/wiki/buildtools/
Start the server once. Stop it.
Download the latest build of BungeecordAutoConfig-Spigot here
and place it in the plugins/
folder.
Fill the fields in the now generated plugins/BungeecordAutoConfig/config.yml
with your information.
Start the server. It may restart/stop a few times in order to finish the installation.
Automatic if installed via script. (At restart.)
Just replace the .jar with the newest build from: https://ci.eps-dev.de
Bungeecord
Spigot
- Can't connect
- All servers need to have port 10101 (for the proxy) and the port they are running at exposed to the internet.
- My proxy doesn't respond anymore
- Restart it.
Control + C
is the way to do that.
- Restart it.
Report issues at https://github.com/EliasSchramm/Bungeecord-Auto-Multiserver/issues/