PlayerBalancer 2.3.3

Distribute your players across multiple servers. Advanced features and very customizable

  1. BGHDDevelopment
    Native Minecraft Version:
    Tested Minecraft Versions:
    • 1.7
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    • 1.13
    • 1.14
    • 1.15
    • 1.16
    • 1.17
    • 1.18
    Source Code:
    PlayerBalancer is a BungeeCord plugin for setting up a network with multiple lobbies of different types. You can customize nearly everything in this plugin. You have lots of features, including commands to move across sections, kick handler (kick2lobby), server checking, section servers, target assignation, multiple providers, and RedisBungee support among other things.

    • Balancer: Balances the load of your players on your sections. When a player connects to a server in other section, the plugin may move the player to another server in that section.
    • Kick Handler: Players that get kicked from a server can get moved to other servers. You can configure it so it only works when they get kicked with a certain message.
    • Fallback Command: Essentially /hub, /lobby. This command allows players to connect to the parent of the section they are currently in, or the principal if not in a section.
    • Server Checking: The plugin makes sure the server the player is going to be connected to is online. You can also make the plugin mark servers as non-accessible when they have a certain motd.
    • Fallback Command: This command allows players to connect to the parent of the section they are connected to currently. You can also pass a number to the command to get connected to a specific server.
    • Section Command: Comparable to Slash Server. This command allows players to connect to a specific section. This section can have one or more servers.
    • Section Server: Creates a fake server on BungeeCord that is used to connect to a section by just connecting to that server, it shows the sum of players of the servers in that section.
    • Spigot Addon: This allows plugins on the spigot servers to access commands from PlayerBalancer (with /spb), it also includes a PlaceholderAPI placeholder (%pb_pc_section%) for a total of all the players connected to servers of a section. This is available as a different resource, download it for free here
    • Permission Router: When using this feature, it moves players when connecting to a certain section while having a certain permission, to another section. This is very helpful if you want to make a special lobby section for players with special permissions.
    • Plugin API for developers to get access to data from the plugin, both from the spigot side and from the bungeecord side. This allows the included addon to work.
    • Very configurable, take a look at the configuration, you will see there are a lot of options for you to configure and more to come.
    • Well optimized and tested on many networks, you can take a look at the statistics for this plugin here (old metrics) or here (new metrics)
    • The fallback command, it moves you from your current section to a server of the parent section.
    • The section command, a command you can set to a section and when it is executed you get connected to that section.
    • (/balancer) The plugin command, which allows you to safely reload the plugin and quickly upload the configuration of the plugin to pastebin to quickly get support.
    • (/section) The section management command, which allows you to make a player connect to a section, get info about a section and their servers and a list of sections with click events for enhancing use. This is the shown info when executing /section info.
    Note: The administrative commands require you to have the permission "playerbalancer.admin"​

    Code (Text):

    # PlayerBalancer Configuration (
    # Read the comments, they are a very important part of the configuration
    # To get support send me a private message with a description of the problem and the config file
    # To easily paste the config file (and other relevant files) use the command /balancer paste
    # If the plugin has issues loading the configuration, try putting quotes around text

    general {
      # IMPORTANT! Set this to true after configuring the plugin!

      # When true, the plugin will reload when you execute /greload

      # When true, this plugin will print less messages when loading

      # When true, spigot plugins will be able to contact with this plugin
      # Do not disable if you are using the addon!

      # Do not modify this

    # Effectively remove (i.e comment) a message to disable it
    # Supported variables are shown in the default messages
    messages {
      # connecting-server="&aConnecting to an {section} ({alias}) server" # this message is disabled by default!
      connected-server="&aConnected to {server} (an {alias} server)"
      invalid-input="&cThis is an invalid input type for this command"
      misc-failure="&cCould not find a server to get connected to"
      player-bypass="&cYou have not been moved because you have the playerbalancer.bypass permission"
      player-kicked="&cYou have been kicked from &a{from} &cso you are being moved to &a{to}\n&cReason: &a{reason}"
      same-section="&cYou are already connected to a server on this section!"
      unavailable-server="&cThis command cannot be executed on this server"
      unknown-section="&aCould not find a section with that name"

    features {
      balancer {
        # Here you have an example of what you can do with the sections
        # The best way to understand this is to play around with it
        # You can have as many sections as you want, there is no limit here
        # If a section does not have a provider it will try to inherit it from the parent
        # When connecting to a server on a section while not being on it already, you get distributed
        # You can use regex to match a set of servers instead of adding each server individually

        # Providers you can use: (you can request more!)
        # NONE:                    Returns no server (no one will be able to connect to this section)
        # RANDOM:                  Returns a random server, generated by SecureRandom
        # RANDOM_LOWEST:           Returns a random server between the ones with the least players online
        # RANDOM_FILLER:           Returns a random server between the ones with the most players online that is not full
        # PROGRESSIVE:             Returns the first server that is not full
        # PROGRESSIVE_LOWEST:      Returns the first server with the least players online
        # PROGRESSIVE_FILLER:      Returns the first server with the most players online that is not full
        # EXTERNAL:                Returns the server calculated by a provider created by other plugin

        sections {
          auth-lobbies {

          general-lobbies {
            alias="General Lobbies"

          skywars-lobbies {

          skywars-games {
            servers=["SW_A[1-5]", "SW_B[1-5]"]
            section-command {

        # The principal section is very important for other features
        # Normally set this to the section that has your main lobbies

        # When a player is not in any section, the player will go to the principal section
        # This affects both the fallback command and kick handler features

        # Dummy sections can have servers from other non-dummy sections
        # When a player connects to a dummy section, nothing will happen

        # Reiterative sections remember the server the player connected to previously
        # The plugin will keep connecting the player to that server repeatedly

        # When true, section servers will show the sum of the players on all servers on that section
        # Important: This will make some plugins think that your bungeecord has more players than it really does

      # Pings servers to see if they are online or not and if they are accessible
      server-checker {

        # Use either CUSTOM or GENERIC, the first one generally works the best

        # The attempts before giving up on getting a server for a player

        # The interval between every round of checks (in milliseconds)

        # The timeout of a ping, only applied to the CUSTOM tactic

        # When true, the plugin will print useful info when a server gets checked

        # When the description of a server matches these, it will be set as non accessible
        # Be aware of colors, it is recommended to use the "contains" rule below or some others
          "(?i).*maintenance*", # match if contains (regex)
          "Game in progress" # match if exactly equal

      # Connects a player to the parent of current section the player is connected to
      fallback-command {

        # Leave permission empty for no permission
        command {

        # Add sections here where you do not want this feature to work

        # When true, players will not be able to get connected to sections that are parents of the principal section

        # When true, players will not be able get connected within servers of the same section
        # This does not affect the parametized variant of the command (/command [number])
        # This also affects section commands

        # You can override the behavior with rules, overriding the parent section
        # This will set the section to go when you come from the section specified
        rules {

      # Connects a player to other section when kicked
      kick-handler {

        # When true, the reasons will work as a blacklist instead of a whitelist
        # Blacklist: A player must be kicked with a reason that is NOT in the reasons
        # Whitelist: A player must be kicked with a reason that is in the reasons

        # The reasons that determine if a player is reconnected or not, supports regex

        # When true, players that are kicked while connecting to the proxy will be forced to reconnect to the principal section

        # Add sections here where you do not want this feature to work

        # When true, players will not be able to get connected to sections that are parents of the principal section

        # When true, the plugin will print useful info when a player gets kicked

        # You can override the behavior with rules, overriding the parent section
        # When you get kicked from the section on the left, you go to the one on the right
        rules {

      # Periodically adds servers that weren't there before the plugin loaded
      server-refresh {

        # The delay to the first refresh (in milliseconds)

        # The interval between every refresh (in milliseconds)

      # Redirect players when connecting to a section in case they have a permission, useful for special lobbies
      # Players will not get redirected if they are connected to a server where they were previously redirected to
      permission-router {

        rules {
          general-lobbies {

    Developer API:

    This plugin queries information about your server for statistical purposes, all the data is anonymous and you can opt-out by modifying the bStats config, learn more about this here
    You can take a look at the statistics for this plugin here.

Recent Reviews

  1. TheWTLong
    Version: 2.3.1
    It looks ok,but there's a problem (I've uploaded it to GitHub).And can you optimize config.conf?
    I like config Format of YML
    1. BGHDDevelopment
      Author's Response
      Config format is not going to be YML, the way the config is setup needs this format. Responded to GitHub, I also recommend next time reaching out on Discord, we respond faster there.
  2. JhonatanDCl
    Version: 2.2
    Excellent plugin very easy to use complete thank you very much.

  3. XxCoolGamesxX
    Version: 2.2
    Excelent plugin! :D
    Thank you for creating the plugin :D
  4. xemles
    Amazing! Do you think there would be any way for you to, instead of "Could not find a server" add an option to, instead, join a queue or something until a server is up? That would be so cool
  5. LapizSeller
    Best of the Best, i want to give this plugin and this dev 500 stars
  6. HappyAreaBean
    Omg this plugin is still live!
    I love this plugin so muchh <33
    Thank you for creating the plugin :D

  7. JuPo
    Version: 2.1.6
    Este es, sin duda, el mejor complemento para gestionar a los jugadores de tu network, sin dudarlo. Llevo años utilizandolo y puede ser utilizado desde para un servidor pequeñito, hasta para una network grande sin ningún problema.
  8. iSnakeBuzz
    Excelent plugin!
  9. Conclure
    Well, the author decides to give the premium plugin for free. Nice! If you see this author. Can you message me why? TY <3