(-MultiLobbyM-)
Scalable server group balancer
MultiLobbyM is a newest addition to the
MultiLobby product series that started in
2014. It has been build from the scratch and is fully modular, thus you can enjoy full compatibility between different proxy types including
Bungee and Velocity!
MultiLobby is a family of plugins on the market since 2014!
Create server balancing groups with custom rules like:
- Balancing based on online servers
-
Permission based balancing
- Force players to auth servers after login
- Fallback groups - where to send player after server stops responding
- Add servers dynamically on the run using regex
- Multiple lobby layers Auth -> Main Lobby -> Bedwars Lobby
My other plugins:
MultiLobby MatchMaker - Reduce minigame start-up times significantly! Fill your servers with players quicker!
ConnectorSigns - Powerful plugin for Lobby servers to let your players join to minigame servers in their available phase with full customizable Sign Format with placeholders.
Features:
- MultiLobbyM allows you to have multiple lobby/hub servers
- Setup multiple balancing groups with different settings
- Install once on the proxy, balance all your connected servers from one place
- Works with lobby selector plugins
- Works with mutli-bungee setup
- Offline server detection
- Shared chat between servers in the same group
- Specify servers to config using regex
- Redirect players to groups based on permissions!
- Dynamic MOTD
- Anti-bot: server switch limits
- Per-server command blacklist
- Works on BungeeCord, Waterfall, Velocity
- API
- Commands and permissions are compatible with MultiLobby
- Self explanatory config - all features described there
-
Fast discord support with over 150 members
Balancing group:
Balancing group is a group of servers where players will be balanced. In your lobby server selector plugin, you can send players always to a let's say first server in the group and MultiLobbyM will automatically distribute the players and will keep the balance. Players in the balancing group will get evenly distributed across all online servers.
Example: Let's say you have a group of 10 SkyWars Lobbies, from your server selector plugin, you can send all players to SWLobby1 (your first SkyWars lobby server) and MultiLobbyM will automatically balance the player. You do not need to use any ML command or change anything in your Spigot server's configuration.
Control your groups with /glag <group>
You can display all usefull info about your group.
Crash protection:
When any of your server crashes players will get sent to the main group (typically your lobby group - this can be configured) instead of beeing kicked out of the network. MultiLobbyM will also balance all the players in the process across all your lobbies so huge amount of players will not crash your Lobby servers.
Auth servers support:
MultiLobbyM does support Auth server setup:
You can have a login group = group of auth server where players will be forced upon logging in after login they will be allowed to your Lobby servers. If you do not have Auth servers your players will end up straight in your main group - typically lobbies.
Commands:
/lobby or /hub - Teleports you to a main lobby (or sublobby, if you have multiple fallback layers)
/lobby <number> - Example: You have 4 lobbies and you want to get to the first one so you write /lobby 1 (requieres permission ml.admin / multilobby.directjoin)
/glag - Shows basic bungee info (requieres permission ml.admin / ml.glag)
/glag <group>
/player <name> - Tells you on which server the player is
/gsend <player> <server> - Teleports player to specified server (requieres permission ml.admin / ml.gsend)
/ggsend <player> <group> - Teleports player to specified server group (requieres permission ml.admin / ml.ggsend)
/forcesend <player> <server> - Forcefully send player to the specified server
/gsay - Broadcast message over all servers connected to current BungeeCord instance (requieres permission ml.admin / ml.gsay)
/mlreload - Reloads the config (requieres permission ml.admin / ml.reload)
/mldebug - Enables debug mode (only for testing) (requieres permission ml.admin / ml.debug)
Permissions:
ml.admin - grants you full access
ml.bypass - bypasses the command spam block feature
ml.gsend - access to the command /gsend
ml.ggsend - access to the command /ggsend (group gsend)
ml.forcesend - access to the command /forcesend
ml.gsay - access to the command /gsay
ml.glag - access to the command /glag
ml.mlreload - access to the command /gsend
ml.debug - access to the command /mldebug
ml.player - access to /player command
multilobby.directjoin - access to /lobby <num> and /hub <num> commands
Config:
Code (YAML):
# WELCOME INSIDE THE MULTILOBBY CONFIG FILE, ALL VARIABLES ARE EXPLAINED HERE, IF YOU NEED MORE HELP, PLEASE CONTACT ME VIA DISCORD I WILL TRY TO REPLY AS FAST AS I CAN
##################################################################################################################################################################
#
# Example balancing groups - please make your own and delete these example ones once you understand the concept of creting your own balancing groups
#
##################################################################################################################################################################
balancing-groups:
Lobbies
:
#your group name here
balancing
: true
#Is this group automatically balanced ?
internal-balancing
: false
#If you enable this, lobby selector plugins wont work
clear-chat
: false
#Clear player chat before joining this group
fallback-group
:
"Lobbies"
#where to send players if the server crashes
shared-chat
: false
servers
:
#server names must match exactly (it is case-sensitive) your server names in bungee config
- Lobby1
- Lobby2
Auths
:
#If you dont have separated auth servers just delete this group
balancing
: true
internal-balancing
: false
clear-chat
: false
fallback-group
:
"null"
#Ignored value if this is your login/main group
shared-chat
: false
servers
:
- Auth1
- Auth2
SkyWarsHubs:
balancing
: true
internal-balancing
: false
clear-chat
: true
fallback-group
:
"Lobbies"
shared-chat
: false
permission-redirect
:
#List of reidirecs. Player must have the specific permission to be redirected to a different balancing group
PremiumHub:
permission
:
"vip.player"
#Permission
targetGroup
:
"PremiumSkyWarsHubs"
#Balancing group where player will be redirected. Target group must have balancing: true otherwise redirect wont work.
servers
:
- SWHub-*
#"Ends-with" regex will add all servers with names that start with "SWHub-" so for example: "SWHub-01", "SWHub-02", "SWHub-03"
regex-servers
:
#
-
"[SWHub1-99]"
#Full Java Regular expressions here
PremiumSkyWarsHubs:
balancing
: true
internal-balancing
: false
clear-chat
: true
fallback-group
:
"Lobbies"
shared-chat
: false
servers
:
- PremiumHub
- PremiumHub2
##################################################################################################################################################################
#
# Balancing settings
#
##################################################################################################################################################################
group-settings:
main-group
: Lobbies
#your main fallback group - name must match exactly
login-group
: Auths
#group where your players will be send upon joining your network
force-login-group
: true
#player will always end up in login group if true upon joining your network
#Can change this if you have more plugins sending players to different servers on the bungee-side, values are: [LOWEST, LOW, NORMAL, HIGH, HIGHEST] (For ViaVersion on bungee-side this must be set to HIGHEST)
multilobby-priority
: HIGHEST
#Always send your players to the fallback groups when /hub or /lobby commands are executed
always-force-fallbacks
: false
#if false ML will not handle newly connected players - works only for Velocity
handle-initial-connect
: true
##################################################################################################################################################################
#
# Offline detection
#
##################################################################################################################################################################
#Detect if lobby server is offline and redirect players to other lobby which is online (this feature may take additional resources especially RAM, by default this feature is disabled)
#You might experience some issues if you use multi-protocol servers or fake offline detections, just keep it disabled, players will be still able to connect if 1 of your lobby servers goes down, dont worry.
offlinedetection
: false
#How often should MultiLobby check the lobby servers if they are online or offline, the interval is in secs. (By default there is an interval 25 seconds, this means that MultiLobby pings all of your lobby servers every 25 secs, if lobby server does not respond to the ping = server is down and MultiLobby will no more be sending players to this server). If there is no online lobby, all players that are trying to connect will be kicked
detectioninterval
: 25
#Socket timeout for offline detection or external lobby status in miliseconds. Do not touch this value util you have problems with pinging. If you have higher ping between bungee and lobby machines raise this value 2x higher than the ping value between lobby and bungee machines. Default is 100.
socket-timeout
: 200
glag-external-status
: true
# if you running multiple proxy instances it is a good idea to keep it true
##################################################################################################################################################################
#
# Security - command blacklist - if you have auth servers, you must disable /lobby and /hub commands there
#
##################################################################################################################################################################
cmdblacklist:
enabled
: false
Auth1
:
- /lobby
- /hub
Auth2
:
- /lobby
- /hub
##################################################################################################################################################################
#
# Dynamic motd - you can change it here and update it anytime via /mlreload
#
##################################################################################################################################################################
motd
:
"&6My Super Network"
motdenabled
: false
##################################################################################################################################################################
#
# Kick move - send your players to fallback group instead of beeing kicked out of the network on disconects (e.g. server crash)
#
##################################################################################################################################################################
kick-move:
enabled
: true
allow-on-login-group
: false
#If the kick reason contains one of the following phrases or words, player will be kicked out of the network instead to a lobby server (works only if the kick-move is enabled)
reason-blacklist
:
-
"ban"
-
"kick"
#Reasons that will be ignored by multilobby means default behavior for your network for kick events
reason-whitelist
:
-
"Maintenance"
##################################################################################################################################################################
#
# Shared chat between servers in the same balancing group
#
##################################################################################################################################################################
shared-chat:
enable-shared-chat
: false
shared-chat-format
:
"&7[&e%server%&7]&f %prefix% %playername% %suffix%: %msg%"
#Force the shared chat format even on the same server as the message sender is on
shared-chat-force-format
: false
shared-chat-debug
: false
shared-chat-ignore-list
:
#ignore shared chat when message starts with one of these characters or strings
-
"@"
-
"$"
##################################################################################################################################################################
#
# Custom glist feature
#
##################################################################################################################################################################
#To use the custom glist you have to disable module "cmd_list" in your bungeecord in modules.yml (delete the line) and delete the file cmd_list.jar from "modules" folder located also in your bungeecord folder.
custom-glist
: false
glist-format
:
"&a[%server%] &f(%numplayers%): %playerlist%"
glist-total
:
"Total player online: %totalnum%"
glist-excluded
:
- MySuperSecretServer1
- MySuperSecretServer2
##################################################################################################################################################################
#
# Extra command settings
#
##################################################################################################################################################################
#Allows your players use "slash-server-commands". So if your lobby server is called "Lobby2", you can use /Lobby2 to teleport to Lobby2! (it works only for lobby servers).
slash-lobby
: false
#Enable /player command
player-enabled
: true
#Enable /lobby and /hub command
lobbycommand
: true
findcmd
: true
##################################################################################################################################################################
#
# Console info - extra info about state of your proxy (cpu, ram, players...) in console in the given intervals (good to analyse proxy crashes)
#
##################################################################################################################################################################
#Every x seconds prints info about server status into console (players, server load, allocated RAM), this feature is great if you are trying to analyze Bungee-side lags.
printinfo
: false
#print interval in seconds
printinfointerval
: 5
##################################################################################################################################################################
#
# Security - limit maximum rejoins
#
##################################################################################################################################################################
security
:
#enable/disable this feature
limit-max-rejoins
: true
#max server switch count per clear-interval
max-rejoins
: 4
#clear interval in seconds - meaning player can make only 5 server switches per 10 seconds, after that he will get kicked out
clear-interval
: 10
#message
limit-exceeded-message
:
"You are switching servers too quickly!"
#Protect MultiLobby commands againts abuse
cmdcooldown
: true
##################################################################################################################################################################
#
# Messages - tranlations
#
##################################################################################################################################################################
gsay-prefix
:
""
enablekickmsg
: false
kickmsg
:
"You have been moved to fallback server: &reason"
spamblock
:
"Blocked as a spam!"
alternatives
:
"Alternatives"
playernotfound
:
"Player not found!"
ison
:
" is playing on "
badarguments
:
"Bad arguments"
name
:
"name"
noperm
:
"You do not have permission to perform this command!"
wrongnumber
:
"Wrong lobby number! Use: /lobby <number>"
cmdblock
:
"You cannot use this command here!"
noonlinelobbyfound
:
"No online lobby at the moment, please try again later!"
##################################################################################################################################################################
#
# Debug
#
##################################################################################################################################################################
debug
: false
#Enable debug:
extradebug
: false
#print all info available - warning: this can be log heavy and should be used only when analyzing config errors
Contacts & support:
If you want to contact me or get fast support, please write me a private message. I am able to respond PM within 48 hours.
Or you can add join discord: https://discord.gg/AVZeBCc
(I am online during business days: 16:00 - 23:00 CEST).