The easy way to start and maintain a bungeecord network.
MIT License
An easy way to start and maintain a bungeecord network.
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 atThe 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/getserverinfo PvP
as "x / 20 Players" even though, in the background,Survival1
, 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 example
T0xsR
).
bungee.changeserver
permission./changeserver <player?> <type>
sends you or, if defined, another player to an instance of the specified type (for example
PvP
). Same as right-clicking a teleport-sign.
bungee.changeserver
permission./getserverinfo <type>
shows you all server, and their current population, of a specified type.
bungee.status
permission./<defaultType>
sends the player to a server with the type that was defined as default.
/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>
bungee.opencloseserver
permission.
/menu
opens the server selection GUI.
/broadcast <message>
sends a message to all active instances.
bungee.broadcast
permission.
/ban <playername> <ban time (in hours)> <reason>
bans a player networkwide.
bungee.ban
permission.
/unban <playername>
unbans a player networkwide.
bungee.ban
permission.
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%s5)
- 2Survival;survival;grass;4;0;5Click To Join Survival (4%s5)
- cMinigames;minigames;tnt;5;0;5Click To Join Minigames (4%s5)
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:
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
Control + C
is the way to do that.Report issues at https://github.com/EliasSchramm/Bungeecord-Auto-Multiserver/issues/