Skip to main content

How Matchmaking Queues Work

In a normal queue, a match starts when enough players have joined. In a matchmaking queue, a match only starts when enough players are close enough in skill.

Turn it on​

Run /queuetype and choose Matchmaking. See the Setup Guide for the other queue types.

How a match forms​

NeatQueue checks the queue every 15 seconds. It forms a match when it can find enough players whose MMRs are all within the range of each other. For example, with a range of 300, a match can contain players rated 1000 and 1300, but not 1000 and 1400.

  • Players who joined earlier are preferred over newer ones.
  • Parties stay together, and a party only counts if all of its members fit in the range. See Parties.
  • Role limits are respected, so a match is only formed if the roles can be filled.
  • If the queue balances by roles instead of MMR, the range applies to role tiers instead of MMR.

Range and leniency​

Two settings control how strict matching is:

CommandDefaultWhat it does
/matchmaking range300The widest MMR gap allowed in a match at first
/matchmaking leniency15How much the range grows for every 15 seconds of waiting

A tighter range gives fairer matches but longer waits and needs more players in the queue.

Widening over time​

Waiting players shouldn't be stuck forever, so the range widens as they wait. For every 15 seconds the longest-waiting player in a possible match has waited, that match's range grows by the leniency amount.

This is worked out per match, not for the whole queue. Someone who just joined a busy queue is still matched closely, while a player who has waited several minutes gets a wider range.

Capping the widening​

/matchmaking leniency takes an optional maximum, the most the range can grow by. The widest a match can ever be is the range plus the maximum. If you leave maximum out there is no cap, and a long-waiting player is eventually matched regardless of MMR. Set a maximum if you never want very mismatched games.

Balancing the teams​

Once a match is formed, players are split into teams to make them as even as possible. Two-team games with up to 16 players (or parties) are balanced by checking every possible split. Larger or multi-team games use a faster approximation that may be slightly less exact.

By default teams are balanced by MMR. If you use /balanceby type to balance by roles, role tiers decide the split first, and MMR breaks ties between players in the same tier. Set the tiers with /balanceby roles.