We are currently undergoing a minor database conversion which may have caused the email management system and registration and other minor issues, our team is working on getting our new database system up and running as soon as possible, thank you for your understanding!

    If you have any other questions, feel free to open a ticket on our discord server https://dc.gleaks.pro/

ML MatchMaker

Plugins ML MatchMaker 2.5.2

Register to download this resource

Original resource URL: https://www.spigotmc.org/resources/ml-matchmaker.79732/

Native Minecraft Version:1.17Tested 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
  • 1.19
  • 1.20

From the author of legendary MultiLobby balancing plugin available since 2014!

With this plugin you will be able to speed up the process of filling and starting your minigame servers. Imagine you have 10 SkyWars servers but players join different servers so they wait much longer for the minigame to fill up and start as the minigame requieres certain amount of players to start. This plugin will automatically check status of your minigame servers, then the server with joinable status will be selected and filled with players. Once filled MatchMaker will select another available server and fill it as well. You can choose between random rotation of servers and round-robin.

MultiLobby is a family of plugins on the market since 2014!


- Speed up your minigames start times, don't let your players waste their time waiting for others to join
- Support for multiple groups of minigame servers
- Server status detection (multiple "ready to join" statuses support)
- Players will always be send only to available/joinable servers
- Offline detection! You can turn off any server for maintenance at any time, players won't even notice!
Queues! If all servers are full or in-game, players will be placed to the queue (first in, first out style).
- Useful commands to see status of each group or server
- NEW: Permission redirects: Redirect players to server based on their permissions!
- Multi-Bungee setup support
- Party And Friends Support (party members join the same server, works for single bungee setup only)

- Fast discord support with over 150 members.

Which minigames are supported ?
All minigame plugins are supported as long as they print their current game status into MOTD.

How to setup:

1. Drop the .jar file into your bungee plugins folder
2. Configure your servers for ML MM (MultiLobby MatchMaking), there are 2 examples in the default config SkyWars and BedWars groups
3. Add exact server names matching your bungeecord server names to your matchmaking group
4. Setup your server selector plugin (or any other way how your players connect to that minigame)
5. Setup the server selector plugin to send players to any server that is inside the group and ML MM will take care of the rest. For example if you have SkyWars group setup your server selector that it will send all players to SkyWars1 server and ML MM will automatically select them free server they can play on (even when SkyWars1 is offline or full).

How to send a player to a group:
Option 1:
Send player to any server that is inside any group and MatchMaker will take care of the rest.

Option 2 (Fake servers): Create a fake server in bungee config, give the server nonsense IP (like or something) and name the server exactly the same as your group. Then anyone connecting to this server from any plugin will be send to the group instead.


Once a certain group has no more "joinable" servers, meaning servers are either full or all in-game and do not accept any more players, then players are placed into the queue.


Player will get fully customized message about beeing placed in queue. Also his initial position is displayed. Players will be continuously updated when their position in the queue chages as you can see in the screen above.
- Once player position in the queue is 0, he will be connected automatically to the free server!
- Players in the queue can decide to leave the queue at any moment with command /lq or /leavequeue

/gstatus <group>:

Group status command will give you a brief overview of all servers in the group:


This command will provide you with details about all your minigame groups. Total players for each group, queue size, number of free servers and finally a current server, which is the server MatchMaker is currently filling up with players. In the screen below you can see, that we have 2 groups, SkyWars and BedWars. In this example we can see that BedWars group currently has no available servers for players to join.


PAPI Support:
- You can use PAPI tags to count all players in the server group using tag: %bungee_groupname% (for your "BedWars group, the PAPI variable will be registered as %BedWars%, so make sure to name your groups in a way there is conflict with other plugin's variables)
- You need to have fake servers feature enabled in config!


/gstatus <group> - Status of all servers in the group
/mlmstatus - Overall status
/mlmreload - Reloads the plugin
/lq or /leavequeue - Leave the queue you are currently in
/mlmqremove <player> - Manually remove player from a queue (requieres mlm.admin)
/mserver <server> - Directly sends you to the target server
/mserver <player> <server> - Sends specified player to the specified server directly
/mgroup <group> - Sends you to the group
/mgroup <group> <player> - Send other player to the group

mlm.admin - Grants access to all ML commands
mlm.status - Grants access to /gstatus command
mlm.reload - Grants access to /mlmreload command
mlm.leave - Grants access to /lq or /leavequeue commands
mlm.ignore - Player with this permission will ignore matchmaking. This allows admins to join whatever server they need
mlm.mserver- Grants access to /mserver <server>
mlm.mserver.others - Grants access to /mserver <player> <server>
mlm.mgroup - Grants access /mgroup <group> <player>

1. Do not test on admin account since mlm.ignore permission causes you to be ignored by matchmaker
2. See your actual server and group statuses with /gstatus <group> and /mlmstatus


Code (Text):

#Set this to true if you using multiple bungee setup
multi-bungee: false
SkyWars: #Group
customName: "SkyWars" #Name of the group displayed in ingame messages
minFreeSlotsForParty: 0 #only for party and friends integration with multiple bungee setup or redisbungee: set this to a higher number than max party size because statuses are not synchronized at the same time on all bungee instances. Setting this too low will cause that some party members will not have enough slots to join
randomize-server-selection: false #false = first available server will be selected, true = random server will be selected
connectAtOnce: false #connect all players at once to the server, once there will be enough players to completely fill the server (players will wait on their current server)
joinStatus: #List of keywords to detect "joinable" status from server MOTD (case-sensitive). You should include keyword for every motd status that is allowing players to join
- "Waiting for players..."
- "Starting..."
servers: #Server names must match exactly to names defined in your bungee config
- SkyWars1
- SkyWars2
- SkyWars3
permission-redirect: #List of redirects. Player must have the specific permission to be redirected to a different group
PremiumSkyWars: #name for this redirect (can be whatever single word you choose to name this)
permission: "vip.player" #Permission
targetGroup: "BedWars" #group where player will be redirected
BedWars: #Another group
customName: "BedWars"
minFreeSlotsForParty: 0
randomize-server-selection: false
connectAtOnce: false
- "Waiting for players..."
- BedWars1
- BedWars2
- BedWars3
- "[SWHub1-99]" #Full Java Regular expressions here

#Set this to true if you use RedisBungee: https://github.com/Limework/RedisBungee
redis-bungee: false

# 0 = off, time in seconds to reload server for dynamic server loading
server-auto-reload-interval: 0

#Does your bungee use forced hosts to connect players directly to minigames ? NOTE: IF YOU USING MINIGAME LOBBIES LET THIS VALUE TO BE FALSE
forced-hosts: false

#Enable player queue (FILO) if all servers are full ?
queue: true

#Remove player from the queue if the player switches a server
remove-on-switch: false

#Do not set lower, unless you know exactly what you doing. The ping interval is in milliseconds. It is async for every server in every active group.
ping-interval: 5000

#If true, you can add servers with nosense IP address into your Bungee server list and name them after your groups.
#This will allow you to connect to a "group" instead of connecting to specific server
#For more info about this feature you can contact me on discord
fake-servers: false

#Support party and friends (all party members will join to the same server)
party-and-friends: false

enable-queue-info-message: true

allFull: "&6Currently all &b%group% &6servers are full."
connectStatus: "&aWaiting for more players to start the match... %status%"
connectStatusFull: "&aAll servers are currently full, you have been placed to the queue at position %position%"
queuePos: "&aYou have been placed to queue. Your position: %position%"
noServer: "&4There is currently no &1%group% &4server online!"
alreadyIn: "&4You are already in the queue! To leavy type /lq"
queueLeft: "&2You left the queue!"
noPermission: "&2You do not have permission!"
queueUpdate: "&6Your new position in &b%group &6queue is: &a%position"
qJoin: "Player %player has joined the queue!"

#Extra debug message in console, only for debbuging purposes
debug: false

#Debug server statuses if you have ping problems
status-debug: false

Download from discord server: https://discord.gg/AVZeBCc

Get instance of the API:
Code (Java):
MatchMaker mm = MatchMakerAPI.getInstance();

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 for fast support you can join discord server: https://discord.gg/AVZeBCc
(I am online during business days: 16:00 - 23:00 CEST).


First release
Last update
0.00 star(s) 0 ratings

More resources from ArteffKods

Top Bottom