Matchmaker

About Matchmaker

Matchmaker is a free, open-source way to run custom competitive games over Discord. Hosts set up an event, players sign up with their in-game ranks, and the app builds fair two-team lobbies, so organizing a custom with a large pool of players takes seconds instead of hours. Valorant and League of Legends are supported today, and user-defined games are coming soon. Matchmaker isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc. Matchmaker isn't endorsed by or affiliated with any other game developer or publisher, for that matter.

Host an event

From Events, a host creates an event with a name, game and mode, region, schedule, a substitute minimum, and whether registration is open. Hosts can optionally lock an event to one or more Discord servers they belong to; only members of at least one selected server can open the event or register. Turning the lock off or saving with no servers selected removes the lock. Hosts can also choose to deprioritize players who have no-showed at their events within the last 6 months. Deprioritization is off by default, and while it's off, every player gets equal matchmaking regardless of past no-shows. Hosts who turn it on choose how many no-shows a player must have before deprioritization affects them.

The first lobby can be created as soon as there are enough players to fill its teams. Before Matchmaker creates a second lobby, there must also be enough players who volunteered to substitute to meet the host's minimum, with at least one volunteer still able to play so extra lobbies do not lock every sub on the bench. Volunteering to sub is optional and does not affect a player's chance of being placed on a team. The host also chooses how Matchmaker should build lobbies:

Balanced

The default. Puts similar ranks on opposite teams using one rank band per player slot, so each team gets a matching mix. Best for casual games.

Rank Grouping

Keeps players of similar rank in the same lobby. Best for serious practice.

Join an event

When a host sends you an event link, you can open the event page to review the details and register. If the host locked the event to selected Discord servers, Matchmakerchecks your Discord server membership when you open the page and again when you register. Leaving every required server while the tab stays open means you cannot register. Before registering, you can review the in-game name and competitive rank saved for that game and update them there or in My Account. Hosts always see ranks so they can run a fair custom. Other players only see your rank if you choose to show it. Pronouns follow the same host-only or public setting. You can also volunteer to be a substitute or lobby host.

Each lobby needs a lobby host to create the custom game and invite the players assigned to each team. Matchmaker gives preference to volunteers on a team, but if no one on a team volunteered, a team player may be assigned anyway. Substitutes are never chosen. If you cannot take that role, ask the event creator to choose someone else.

You can return to the event page and change your registration while registration remains open. If it has closed, contact the event creator about any changes you need. Note that if you are registered for multiple events and your game rank changes, you can update it in My Account and the change will be reflected in all your events; however, if the event host has already closed registration and created teams, you will need to contact them to ask them to re-run the lobby builder to create new teams with your updated rank.

Fair lobbies

Hosts can lock in whenever they are ready, whether that is the day of the event or weeks in advance. Matchmaker then builds lobbies using the mode they chose: two teams per lobby, plus substitutes if the event asked for them. If two players request each other as a duo, Matchmaker tries to keep them together. Fairness comes first, so duos are not guaranteed. After lock-in, hosts can still swap players, assign lobby hosts, and set join codes.

Once teams exist, the host can copy a Discord ping message that mentions every player on a team and in the substitute pool, ready to paste into Discord as a reminder.

After a game's start time, the host can mark any player on a team as absent. This lets hosts keep track of players who repeatedly no-show at their events. In future events, a player who has been marked absent may be deprioritized if the host chooses to do so. A deprioritized player is still registered; they're just left out of the initial team creation. They can still be placed on a team if there aren't enough other players to fill the teams, or swapped back in during the final fairness checks of lock-in if they're needed to balance a team. Deprioritized players who volunteered to substitute are also still available as substitutes.

FAQ & Troubleshooting

Why do I need this when Valorant custom games have an autobalance button?

The built-in team balancer is a great resource if you have exactly 10 players and just don't know how to configure the teams. If you have a pool of more than 10 players and could potentially be running multiple games at once though, it cannot be used to fairly determine who should be in which lobby. That said, this isn't just for enormous Discord servers that will have hundreds of players joining at once; it can also be used to determine good 2v2 or 3v3 matches from a pool of available competitors for Skirmish or other modes.

How does matchmaking work?

When the host clicks Lock In & Create Teams, Matchmaker looks at everyone signed up for each game and builds teams automatically using the rank information players provided (current rank and peak rank). For each player, it calculates a single skill number by averaging those two ranks. That number is what gets used for sorting and balancing, not just current rank alone.

The host chooses a matchmaking mode when creating the event:

  • Balanced (default). Best for casual games. Matchmaker splits the rank ladder into as many bands as there are players per team, then puts one player from each band on each side so the two teams stay even. If more people signed up than can play at once, it still fills those bands (typical ranks of each band first) rather than only taking the highest-ranked or lowest-ranked players.
  • Rank Grouping. Best for serious practice. Matchmaker groups players of similar rank into the same lobby. If there are too many players and not everyone can play, it keeps whichever skill level most players belong to (for example, if most signups are lower rank, lower-ranked players are prioritized for roster spots).

After teams are formed, a few other things happen automatically:

  • Players who marked Can substitute during sign-up may be placed in a sub pool instead of a team if there are more signups than spots.
  • Players who did not mark Can substitute and did not make a team stay signed up but are listed as unplaced for that game, and will not be included in the Discord Pings list for that game.
  • If enough players signed up, multiple lobbies can be created so more than one game can run at once. Matchmaker opens as many as the substitute minimum allows. It only skips an extra lobby when filling it would bench every substitute volunteer and the remaining players still cannot form even teams. If those teams would already be even, the extra lobby stays.
  • One player per lobby is assigned as lobby host from the players on a team (whoever volunteered first, or the earliest team sign-up if no one on a team volunteered). Substitutes are never chosen as lobby host.
  • Duo requests. If two players list each other's Discord username as their duo partner, Matchmaker tries to put them in the same lobby and on the same team. Balance comes first; duos are not guaranteed if fairness requires otherwise. Only one duo pair per team is attempted. Both players must enter each other's exact Discord username (not a Discord display name, Matchmaker display name, or in-game name) for the request to match.

The host can still review the results and make manual changes afterward, and they will see a warning if the teams are not balanced.

For more detailed technical information, see the matchmaking notes on GitHub.

How do I know the matches are fair?

Matchmaker does its best to create even teams, but perfect balance is not always possible, especially when signups span a very wide range of ranks.

After teams are created, each lobby is checked for balance. If Matchmaker could not get a good result, you will see a warning on that game or lobby. The message explains that teams were formed with the best available balance and which of the problems below kept that lobby from being fully fair.

A warning usually means one of two things:

  • One player is much higher or lower ranked than everyone else in the lobby (a large skill gap).
  • The two teams' average skill levels are still noticeably different after balancing.

If you are the event host, you can also see each team's average rank on the team headers to judge balance yourself, even if the balance difference has not triggered a warning.

Fairness warnings are a heads-up, not a failure. The teams are still playable. The host can always adjust rosters manually if something looks off.

How can teams be edited?

After you click Lock In & Create Teams, the host can adjust rosters without deleting and recreating everything. Edits are done one game at a time (each scheduled match in the group has its own teams/lobbies).

To move players around:

  1. Open the event group page and select the game you want to change.
  2. On any player card in a team, subs, or unplaced list, open the ⋯ menu.
  3. Choose Swap.
  4. Pick another player from the dropdown: anyone on a different team, in another lobby, in the sub pool, or on the unplaced list, and click Submit.

A swap exchanges the two players' spots. Each player takes the other's exact placement (lobby, team, sub slot, or unplaced status). You can use this to rebalance teams, move someone into or out of subs, pull an unplaced player onto a roster, or send a rostered player to unplaced.

A few rules to be aware of:

  • You cannot swap two players already in the same group. You can't swap two players on the same team; you can't swap two substitutes in the same lobby with each other; you can't swap two unplaced players with each other. They won't appear as options for your swap.
  • If a rostered player who did not sign up as a substitute is swapped into a sub slot, they become unplaced instead. Only substitute volunteers can fill sub spots.
  • If your event requires a minimum number of substitutes and has more than one lobby, a swap is blocked when it would leave any lobby below that minimum.

After each swap, Matchmaker refreshes lobby hosts and fairness warnings for the affected lobbies so you can see whether balance changed. The original warning from lock-in is kept separately so you can still tell what the auto-generated teams looked like.

If you want to undo many changes at once, see the next FAQ entry about Delete teams.

I've edited a team, but I don't like what I've done. How do I get back to where it started?

To get back to the default teams that were created, simply click "Delete teams" in the event header. Doing this will reset the event back to registrations-only from before teams were created, but registrations will remain closed. To regenerate the teams, click "Create Teams" in the event header and the teams will be created again the same way they were before.

I've closed registrations and created teams, but a new player wants to join. How do I add them?

As the host, you can't manually add players; all players must register themselves. To let the new player in, click "Delete teams" in the event header. This will reset the event back to the registrations, but registrations will remain closed. To reopen them, click "Edit" in the event header. At the bottom of the modal, there is a "Registration Status" toggle. Toggle it on and click "Save Settings" to allow new players to register.

Why is an event blocked, and how does the Discord server lock work?

Hosts can lock an event to one or more Discord servers they belong to. Anyone else, including lobby hosts, must be in at least one of those servers to open the event or register. The event owner is never locked out. Saving the lock with no servers, or turning it off, makes the event open to anyone with the link again.

Discord is having trouble and users can't register for events. What do I do?

Generally wait, and check discordstatus.com. If the Discord API is having an outage, it can affect Matchmaker's ability to check server membership. Hosts are never locked out of their own events, so they can temporarily turn off the Discord server lock and save until Discord's API recovers, then lock it again.

Why does my display name and event name hit the 50-character limit so fast when I use emojis?

Display names and event names are capped at 50 characters. Ordinary letters and numbers usually count as one character each, but many emojis (and especially ones made of several parts, like some family or flag emojis) count as more than one toward that limit even though they look like a single symbol on screen. That's just how computers store those characters; it isn't a bug in the counter. The counter on the form shows how much of the limit you have left; if it turns red, shorten the name or use fewer emojis.

I missed an event I registered for and was marked absent. What happens now?

If this is the first time it's happened, it probably won't affect you this time, but it's up to the host of that event. An absence is only visible to you and the host who marked it, and it doesn't count toward events created by other hosts. If you missed several games within a single event, that counts as only one absence. No-shows are counted on a rolling 6-month basis: only absences from games in the last 6 months count, and older ones drop off automatically. Each host decides whether to deprioritize no-shows at all. Hosts who do can change how many no-shows it takes before a player is deprioritized, but the default is 3, so missing one event is unlikely to affect you.

If you later find out you can't make a game you've registered for, delete your registration for that game ahead of time. If teams have already been created, let the host know in advance so they can find a substitute in time.

I've missed several events I registered for and now I see a warning that I'm being deprioritized from matchmaking. Should I still register?

Yes. Being deprioritized means you're left out of the initial team creation, not that you can't play. While it's unlikely, you might still be placed on a team if you're needed to fairly balance a game or if there aren't enough other players to fill the teams. More likely, you may be called on to substitute, so make sure you keep Can substitute turned on in your registration.

No-shows are counted on a rolling 6-month basis, so each absence stops counting once the game it was for is more than 6 months old, and the warning goes away when you drop back below the host's limit. In the future, if you know ahead of time that you can't make a game, delete your registration for it if you can. If registration has already closed and you've made it onto a team, let the host know in advance so they can find a substitute in time.

I was marked absent for an event I attended. How can I clear my name?

First, check whether you were on a team for more than one game in that event. If you were placed on a team for two or more games and only played in one of them, that still counts as an absence.

If you played in every game of the event that you were on a team for and were really marked absent by mistake, past games are still available in Matchmaker. Reach out to the host and ask them to mark you present for each game you were marked absent in.

Privacy

What we store

When you log in with Discord, we keep the identifiers we need to recognize you: your Discord account ID, username, and the ID used to show your avatar. We copy your Discord display name when you first sign in. You can change or clear that name in Matchmaker; doing so only updates Matchmaker and does not change your Discord profile. Later logins may refresh your Discord username and avatar, but they do not overwrite a display name you already have in Matchmaker.

If you fill in a profile, we store optional pronouns and region, plus per-game in-game names and ranks. For events, we store the event itself, who signed up, team and lobby assignments, duo player requests, and any join codes a host enters.

Cookies

We use cookies to keep you logged in, not for advertising or analytics. After you sign in, the browser keeps a secure login cookie. Using the site keeps that cookie current. If about a week goes by without you using Matchmaker, you will need to sign in again. You can log out at any time, which ends the session right away and deletes the cookie.

A second, smaller cookie only remembers whether to show the login screen or the app. It does not prove who you are or let anyone use your account, and it is also deleted when you log out. Additionally, while Discord sign-in is in progress, there is also a short-lived cookie that is deleted when that process finishes.

Server logs

Each request to the API is logged with technical details such as the path, whether it succeeded, how long it took, and the visitor's IP address. Those logs are for running and debugging the site. They are not a user profile we browse.

How data is protected

You sign in through Discord. Matchmaker never sees a password. Traffic uses HTTPS. We store a hashed version of your session refresh token, not the raw token. We also store an encrypted Discord refresh token so we can request your current server list from Discord when a host picks servers or when a locked event is opened or registered. Ranks and pronouns stay visible only to event hosts unless you choose otherwise.

Who we share with

Matchmaker does not sell your data, use it for advertising, or share your profile, ranks, or event data with other companies for product or marketing. Discord is used so you can sign in; avatar images are loaded from Discord's network in your browser. Discord also receives guild-list API calls (using your OAuth user token) when a host picks servers or when a locked event is opened or registered. We do not send Discord your Matchmaker event roster.

The live site uses cloud providers for hosting and traffic routing. Those providers process request details, including IP addresses. Cloudflare sits in front of the live site and shows aggregate traffic stats, such as unique visitors and total requests. Matchmaker does not set analytics cookies or run its own visitor trackers. Cloudflare's privacy policy applies to that edge service.

The live site sends technical error reports to a crash/error service so problems can be fixed. Those reports can include technical request details, such as what path failed. They are not used as a user database. This technical error processing is always on in production. It is not a setting you can turn off, and it is not advertising or analytics tracking.

Some footer links take you off this site. Issues/Feedback on matchmaker.games opens a Google Form hosted by Matchmaker's creator. What you submit there is handled by that form, not stored in Matchmaker, and Google's privacy policy applies from that point. Source on GitHub is also off this site, and GitHub's privacy policy applies there.

Who can see you inside the app

People in an event you've registered to join can see your Discord username and your Matchmaker display name (if provided). Hosts always see ranks and pronouns for players in their events. Other players do not see ranks or pronouns unless you turn that on in My Account. If you host an event, players can see your display name and Discord username.

What we don't store

No email. No password. No Discord chat, DMs, or message history. We do not persist your full Discord server list in the database. We snapshot only the host-selected server id and name on an event. Membership checks ask Discord for your current server list and compare it; that full list is not written to disk. The API may keep it in memory for up to 60 seconds so nearby checks (for example opening a locked event) do not each call Discord again. Matchmaker does not set analytics cookies or run its own advertising or visitor trackers. Your avatar image stays on Discord's network; we only store the identifier used to display it.

Your controls

In My Account you can edit your profile and game accounts, including changing or clearing the display name copied from Discord (that change stays in Matchmaker). You can hide or show your ranks and pronouns, remove a game profile, leave an event, or delete an event you host. Logging out ends your session.

You cannot delete the whole account in the app today. Use Issues/Feedback if you want data removed. To delete data, you will be asked to provide proof that you are the account owner.

How long we keep data

Your account and related event data stay until you remove what the app allows (game profiles, leaving or deleting events) or until you ask for the account to be removed. Login sessions stay active while you use the site, end when you log out, and otherwise lapse after about a week without use. Event Discord-server snapshots last until the host clears the lock or deletes the event. Your full Discord server list, when fetched for a membership check or the host server picker, may stay in the API process's memory for up to 60 seconds and is not stored in the database. The encrypted Discord refresh token is kept until Discord login is revoked or the account is removed. Crash reports and server logs are kept by those systems only as needed to run the site, not as a directory of users.

Children

Matchmaker is not directed at children under 13. Do not use the site if you are under 13.

How to reach me

Matchmaker is a hobby project. To reach me, use Issues/Feedback or the GitHub project.

Last updated August 30, 2026.