Docs Queue Settings Reference
Documentation
Queue Settings Reference
Every matchmaking setting in one place — 104 settings across 5 queue types and two modes. Filter down to exactly what applies to your queue.
Settings are configured three ways: options on the /queue_* creation
commands, the Admin Actions dropdown on the queue message
(Configure … modals), and the web dashboard's queue editor.
Identity & Display
9What players see: names, images, instructions.
The queue's permanent name, used to pick it in commands such as /queue_manage. Up to 32 characters, must be unique in the league, and can't be changed after creation. Players see the Display Title instead, if one is set.
- Default
- — (required)
- Range
- max 32 chars; unique per server
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Create
- required on every queue command
- Web
- Discord only
Headline shown on the queue/launcher embed.
Set when the queue is created (it defaults to the queue name). After that it can only be changed on the web dashboard.
- Default
- the queue name
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Create
- optional on every queue command
- Web
- Editable on the web dashboard
Body text on the queue/launcher embed.
Optional when creating the queue. After that, change it on the web dashboard.
- Default
- — (omitted)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Create
- optional on every queue command
- Web
- Editable on the web dashboard
Which Elo leaderboard this queue's matches record ratings on.
In the Discord settings window, leaving this blank keeps the current leaderboard on automatic queues but clears it on hosted queues.
- Default
- 'default'
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Create
- optional: versus/headless, versus/hosted, ffa/headless, ffa/hosted, team/headless, team/hosted, anonymous/headless
- Menu
- Configure Queue Settings
- Web
- Editable on the web dashboard
Banner image on the queue/launcher embed.
- Default
- none
- Range
- must be a valid http(s) URL
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Display Settings
- Web
- Editable on the web dashboard
Image shown on every match lobby this queue creates — persistent, unlike the per-match Set Lobby Image action.
Shown on every match this queue creates. An admin can still set a different image for one match, and a map-vote winner’s image shows instead while it is on screen.
- Default
- not set (no image)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- url
- Menu
- Configure Queue Settings (headless) / Display Settings (launcher)
- Web
- Editable on the web dashboard
Free text shown when players vote on match results (e.g. 'Submit screenshots to #evidence').
- Default
- none
- Range
- max 1024 chars
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Display Settings
- Web
- Editable on the web dashboard
Whether players are named on an automatic queue. When off, the queue message lists Player 1, Player 2 and so on, Join Feed posts say "Someone", and the match panel shows "Player" instead of names. On by default.
- Default
- names shown
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Show player names
yesHide player namesno - Menu
- Configure Display Settings
- Web
- Editable on the web dashboard
Whether the queue message names the leaderboard matches record to.
Automatic names the leaderboard only on ranked queues; Always show and Always hide override that. It only changes the message: matches still record either way.
- Default
- Automatic: shown on ranked queues, hidden on unranked and disabled ones
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Automatic — show when ranked
autoAlways showyesAlways hideno - Menu
- Configure Display Settings
- Web
- Editable on the web dashboard
Team Composition
13Sizes, player counts, and how teams are formed.
How many players are on each team, and how many teams a match has; together they set the match size (a 5v5 starts when 10 players are queued). Versus and team queues have equal teams. An automatic (headless) Versus queue can have more than two (e.g. 2v2v2v2v2v2 for six teams of two), set with the teams option at creation or a format like 2v2v2 in Match Rules. Anonymous queues are two teams whose sizes can differ. Not the same as Min/Max Players (FFA and co-op only) or Min/Max Party Size (who may queue together).
With more than two teams, results are reported by placement (1st, 2nd, 3rd…) and rated per format. Captain picks and captain or striking map votes need exactly two teams. A match can have at most 25 players. Uneven team sizes can only be set when the queue is created.
- Default
- — (required at creation)
- Range
- A match lobby holds at most 25 players in total, so teams × team size must be 25 or fewer (a 2v2 can have up to 8 teams; a 5v5 up to 5). Headless versus: 2–8 teams. Creation: at least 1 player per team; /queue_versus headless and both anonymous sizes accept up to 25 per team, and the total check above applies on top
- Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- array
- Create
- team_size + teams (versus headless) · team_size (versus hosted/team) · team_1_size + team_2_size (anonymous) —required: versus/headless, versus/hosted, team/headless, team/hosted, anonymous/headless, anonymous/hosted
- Menu
- Configure Match Rules & Voting
- Web
- Discord only
Free-for-all and co-op queues: how many players a match needs before it can start, counting everyone in it. It is a player count, not a party size. With Maximum Players above it, the match can start anywhere in that range: at Minimum Players the queue waits for the Join Grace Period so more can join, and it starts at once if it reaches Maximum Players. Team queues (Versus, Team, Anonymous) ignore it; their match size comes from Team Sizes.
Example: Min 4, Max 8, Join Grace Period 2. The 4th player starts a 2-minute countdown, and the match starts when it ends, or as soon as the 8th player joins. With Max equal to Min, the match starts the moment Min is reached.
- Default
- 2
- Range
- ≥ 2
- Applies to
- Free-For-AllCo-op headless + hosted
Details: type, values and where to set it
- Type
- int
- Create
- required: ffa/headless, ffa/hosted, coop/headless
- Menu
- Configure Match Rules & Voting
- Web
- Editable on the web dashboard
Free-for-all and co-op queues: the most players one match can hold. When it is above Minimum Players, the queue waits up to the Join Grace Period for more players after reaching the minimum, and starts immediately at this number. Equal to Minimum Players (the default) means the match starts the moment the minimum is reached. A player count, not a party size (that is Min/Max Party Size under Configure Party Queue).
- Default
- same as Min players (FFA); 8 for co-op
- Range
- ≥ 2; must be ≥ min_players when both are submitted together (not cross-checked against a stored min)
- Applies to
- Free-For-AllCo-op headless + hosted
Details: type, values and where to set it
- Type
- int
- Create
- optional: ffa/headless, ffa/hosted, coop/headless
- Menu
- Configure Match Rules & Voting
- Web
- Editable on the web dashboard
How many players a co-op hosted lobby holds. The lobby is full and ready at this count (default 4). This is a lobby size, not the party-queue limit for pre-made groups (see Max Party Size and Min Party Size). Co-op hosted launchers only.
- Default
- 4
- Range
- 2–20 at creation
- Applies to
- Co-op hosted
Details: type, values and where to set it
- Type
- int
- Create
- optional: coop/hosted
- Web
- Discord only
Free-for-all and co-op queues with Maximum Players above Minimum Players: how many minutes the queue waits for more players after it reaches the minimum. The match starts at the end of the wait with everyone queued, or immediately if it reaches the maximum. 0 starts the match as soon as the minimum is reached.
Only applies when Max players is higher than Min. The countdown starts when Min is reached and isn’t extended by later joins; if players drop below Min, it is cancelled. Change it on the web dashboard.
- Default
- 2 minutes
- Range
- ≥ 0 minutes
- Applies to
- Free-For-AllCo-op headless
Details: type, values and where to set it
- Type
- int
- Create
- optional: ffa/headless, coop/headless
- Web
- Editable on the web dashboard
Free-for-all queues: play in rounds instead of starting a match whenever the queue fills. Each round puts everyone queued into lobbies of up to Maximum Players, sorted by rating and split as evenly as possible, with any extra players in the higher lobbies (20 players at 8 per lobby play 7, 7 and 6). Players stay queued between rounds until they leave or are removed, so they can join or leave during a round for the next one. Each lobby is its own match and records its result as usual, and it closes as soon as its result is recorded (even with an endless format), so the round can finish. Rounds are started with the Start Round button on the queue message. A lobby's host is whoever presses 🙋 I'll Host on it; if the host leaves, a player in that lobby or an admin can take over with 🔄 Change Host (the host can press it to hand the lobby back).
Set it on the web dashboard. Each lobby gets a 🙋 I’ll Host button for whoever makes the game room. Pressing Start Round doesn’t wait for every lobby to report: lobbies still playing stay open and can record their result afterwards. Players who quit without leaving the queue can be taken out with 👢 Remove from Queue, by an admin or by the host of their lobby. Rounds turn the idle timeout off.
- Default
- off
- Applies to
- Free-For-All headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Off — a match starts whenever the queue fills
(not set)On — play in roundstrue - Web
- Editable on the web dashboard
Rounds queues: who can press Start Round. Admins and lobby hosts (the default) lets server admins, the queue's Admin Roles and creator, and anyone hosting a lobby in the current round start the next one. Admins only leaves out the hosts. Anyone in the queue lets any queued player start a round, for nights with no admin around.
With the default, nobody but an admin can start the first round, because nobody has volunteered to host yet. Pick Anyone in the queue if your rounds often run without an admin.
- Default
- 'hosts' (admins and lobby hosts)
- Applies to
- Free-For-All headless
Details: type, values and where to set it
- Type
- select
- Values
- Admins and lobby hosts
hostsAdmins onlyadminsAnyone in the queueanyone - Web
- Editable on the web dashboard
Rounds queues: start the next round by itself this many seconds after every lobby of the current round has finished. The Start Round button still works at any time. If too few players are queued when the countdown ends, nothing starts.
The countdown starts only once every lobby has recorded its result or closed. Leave it blank if lobbies often don’t report; the button works either way.
- Default
- off (rounds start only from the button)
- Range
- 1–3600 seconds; blank turns it off
- Applies to
- Free-For-All headless
Details: type, values and where to set it
- Type
- int
- Web
- Editable on the web dashboard
Rounds queues, for games whose rooms stay open: whoever hosts a lobby gets a lobby to host in every round after, with the same lobby code, until they leave the queue or press 🔄 Change Host. Hosts are spread one per lobby (a host who would share a lobby trades places with the closest-rated player of a lobby without one); with more hosts than lobbies, the most recent hosts stop hosting.
Set it on the web dashboard. Hosts start their next lobby already hosting, with their last lobby code, so they don’t press 🙋 I’ll Host every round. The queue message shows who will host where (🏠) before the round starts.
- Default
- off
- Applies to
- Free-For-All headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Off — hosts volunteer again each round
(not set)On — hosts keep a lobby every roundtrue - Web
- Editable on the web dashboard
Rounds queues: leave the round number out of everything players see. The button reads "Start Round" instead of "Start Round 4", lobbies are "Lobby 2 of 3" instead of "Round 4 · Lobby 2 of 3", and the queue message says "the next round". For a queue that stays open all the time, where the count only grows.
Set it on the web dashboard, as the Number the rounds switch. The number only grows on a queue that never closes, so turn it off there.
- Default
- off (rounds are numbered)
- Applies to
- Free-For-All headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Off — "Start Round 4", "Round 4 · Lobby 2 of 3"
(not set)On — "Start Round", "Lobby 2 of 3"true - Web
- Editable on the web dashboard
How players are split into teams when a match forms.
Hosted lobbies use their own list of team modes (see “The Two Team-Formation Vocabularies” below); the queue’s choice is translated when a lobby is created.
- Default
- Balanced Teams
balanced_teams - Applies to
- VersusAnonymous headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Balanced Teams
balanced_teamsRandom Teamsrandom_teamsPlayers Chooseplayers_chooseCaptains (Highest Elo)captains_highest_eloCaptains (Lowest Elo)captains_lowest_eloCaptains (Random)captains_randomCaptains (Volunteer)captains_volunteerCaptains (Host Picks)captains_host_picks* - Menu
- Configure Match Rules & Voting
- Web
- Editable on the web dashboard
Per-queue custom team display names, inherited by every match the queue spawns.
One team per line (or separated by commas), written emoji:name. Leave it blank to go back to the default names.
- Default
- defaults ['Red','Blue','Green','Orange','Yellow','Purple','Black','White','Brown'] (index 9+ → 'Team N')
- Range
- each name ≤ 60 chars (silently truncated); Discord input ≤ 500 chars total
- Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- array
- Menu
- Configure Team Names
- Web
- Editable on the web dashboard
Per-queue custom team emojis (parsed from the same input as team_names).
- Default
- defaults ['🔴','🔵','🟢','🟠','🟡','🟣','⚫','⚪','🟤'] (index 9+ → '⚪')
- Range
- unicode emoji only, ≤ 16 UTF-16 units; Discord custom emoji (<:name:id>) rejected
- Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- array
- Menu
- Configure Team Names
- Web
- Editable on the web dashboard
Matchmaking Rules
6Elo gating, rematch cooldowns, unique-choice matching.
Largest rating spread allowed in one match on an automatic queue. The highest-rated player minus the lowest-rated must be at or under this number (on team queues, the gap between the two teams' ratings), otherwise the queue waits for a closer group. Blank or 0 means no limit. Not the same as Max Party Rating Difference, which limits the spread inside one party.
- Default
- unlimited
- Range
- > 0 to save; blank/0 clears (disabled)
- Applies to
- VersusFree-For-AllTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Matchmaking Rules (headless only)
- Web
- Editable on the web dashboard
Smallest rating spread a match must have on an automatic queue. The highest-rated player minus the lowest-rated must be at least this number (on team queues, the gap between the two teams), so strong and weaker players are deliberately matched together. Blank or 0 turns it off.
Waits until the players, or the two teams, are at least this far apart in rating. Pair it with the leaderboard’s Cap Threshold rating rule so these matches are also rated as handicap matches.
- Default
- disabled
- Range
- > 0 to save; blank/0 clears (disabled)
- Applies to
- VersusFree-For-AllTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Matchmaking Rules (headless only)
- Web
- Editable on the web dashboard
Minutes before two players (or teams) who just played against each other can be matched as opponents again in this queue. The timer starts when their match ends. 0 means they are never matched against each other again; blank turns the cooldown off.
- Default
- disabled
- Range
- ≥ 0; 0 = never rematch (forever); blank clears
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Matchmaking Rules
- Web
- Editable on the web dashboard
When a player's next match is recorded, their earlier Rematch Cooldowns in this queue are cleared, so they can face those opponents again once they have played someone new. With a Rematch Cooldown of 0 this becomes "no back-to-back rematches". Off: every rematch cooldown runs its full length.
- Default
- false
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Disabled
noEnabledyes - Menu
- Configure Matchmaking Rules
- Web
- Editable on the web dashboard
Builds teams from a choice each player has picked on the leaderboard, such as a faction, role or lane. Faction vs Faction puts players with the same choice on one team; Balanced gives each team one player of each choice (or the counts set in Team Composition). Automatic Versus, Team and Anonymous queues only.
Set in Discord only. Picking the same choice again keeps the scores; picking a different one resets them.
- Default
- disabled
- Range
- requires a leaderboard choice definition with ≥ 2 choices; invalid selections are silently dropped
- Applies to
- VersusTeamAnonymous headless
Details: type, values and where to set it
- Type
- object
- Values
- Disabled
disabledFaction vs Faction (all same value per team)<choice>Balanced (one of each value per team)balance:<choice> - Menu
- Configure Matchmaking Rules
- Web
- Discord only
Fixed per-position formation (e.g. 'goalkeeper:1, defender:2') each team must satisfy under balanced Unique Choice Matchmaking.
Needs a rival choice first, and only applies when teams are balanced.
- Default
- absent = one of each position per team
- Range
- positive integer counts; positions must exist in the rival choice; counts must sum to team size
- Applies to
- VersusTeamAnonymous headless
Details: type, values and where to set it
- Type
- object
- Menu
- Configure Team Composition
- Web
- Discord only
Match Rules & Format
2Ranked vs unranked, voting mode, series format.
Whether results record, affect Elo, and who approves them.
Every queue starts as Ranked; change it in Match Rules or on the web dashboard. Unranked and Disabled hide ratings in the match message, since nothing can change them.
- Default
- Ranked — players vote (consensus)
ranked - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Disabled — no result recording
disabledRanked — players vote (consensus)rankedRanked — admin approves the resultranked_adminUnranked — players vote (consensus)unrankedUnranked — admin approves the resultunranked_adminRanked — only an admin records itranked_admin_decideUnranked — only an admin records itunranked_admin_decide - Menu
- Configure Match Rules & Voting
- Web
- Editable on the web dashboard
Series structure: one match, unlimited matches, best-of-N, or cumulative points over N rounds.
Every queue starts as Single Match. Saving the Match Rules window always saves the format too. Queues with more than two teams can’t use Best Of or Cumulative.
- Default
- Single Match
single_match - Range
- best_of / cumulative require a match count: 1–99 on the web; the Discord modal accepts any count > 0
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Single Match
single_matchEndless Matchesendless_matchesBest Of Nbest_of_NCumulative over N roundscumulative_N - Menu
- Configure Match Rules & Voting
- Web
- Editable on the web dashboard
Scoring & Stats
9How series and rounds turn into rating changes and points.
How the series result becomes a leaderboard rating change — fires once per series (after the final round for multi-round formats).
Set from Configure Scoring in Discord. Configure Cumulative Scoring sets the per-round scoring instead.
- Default
- Elo Rating
elo - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Elo Rating
eloPlacement Pointsplacement_pointsElo Rating + Stat Pointselo_stat_pointsStat Pointsstat_pointsNonenone - Menu
- Configure Scoring
- Web
- Discord only
Per-place rating points (e.g. '25,15,10,5') for Placement Points mode, or the win/loss base for Stat Points mode.
Leaving it blank keeps the saved list, so switching modes doesn’t erase it. Discord only.
- Default
- empty
- Range
- comma/space-separated finite numbers (negatives and decimals allowed); places beyond the list earn 0
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- array
- Menu
- Configure Scoring
- Web
- Discord only
How each round's placements become scoreboard points whose totals decide a multi-round series (the 'Match Score' axis, distinct from Rating Mode).
Only shown for Best Of and Cumulative formats. Discord only.
- Default
- Elo Rating
elo - Applies to
- all queue types headless + hosted best-of / cumulative only
Details: type, values and where to set it
- Type
- enum
- Values
- Elo Rating
eloPlacement Pointsplacement_pointsManual Pointsmanual_points - Menu
- Configure Cumulative Scoring
- Web
- Discord only
Per-place points each round awards to the in-series scoreboard (e.g. '20,15,12,10').
Leaving it blank keeps the saved list. Discord only.
- Default
- empty
- Range
- comma/space-separated finite numbers; places beyond the list earn 0
- Applies to
- all queue types headless + hosted best-of / cumulative only
Details: type, values and where to set it
- Type
- array
- Menu
- Configure Cumulative Scoring
- Web
- Discord only
Named per-round stats (kills, caps, …) with points-per-unit and optional rounding, submitted each round of a cumulative series.
Only shown for Cumulative formats. Discord only.
- Default
- single default score
- Range
- max 5 stats;
Name=PointsorName=Points=round|floor|ceil; name ≤ 45 chars; decimals allowed - Applies to
- all queue types headless + hosted cumulative formats only
Details: type, values and where to set it
- Type
- array
- Menu
- Configure Cumulative Stats
- Web
- Discord only
Whether one captain submits team stat totals per round or every player submits individually.
- Default
- Match — captain submits team totals
match - Applies to
- all queue types headless + hosted cumulative formats only
Details: type, values and where to set it
- Type
- enum
- Values
- Match — captain submits team totals
matchPlayer — each player submits their ownplayer - Menu
- Configure Cumulative Stats
- Web
- Discord only
Custom noun for each round of the series (e.g. 'Game', 'Map', 'Half').
- Default
- 'Round'
- Range
- max 20 chars
- Applies to
- all queue types headless + hosted cumulative formats only
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Cumulative Stats
- Web
- Discord only
Whether the highest or lowest cumulative total wins the series.
- Default
- Highest score wins
highest - Applies to
- all queue types headless + hosted cumulative formats only
Details: type, values and where to set it
- Type
- enum
- Values
- Highest score wins
highestLowest score wins (golf-style)lowest - Menu
- Configure Cumulative Stats
- Web
- Discord only
Team queues only. 'Each player' (the default) moves every member's own rating, as a team queue always has. 'The teams' gives each roster one rating instead: the one /team stats shows and the queue's rating-gap settings compare. Applies to matches that start after the change.
Rates the team as one unit; players’ own ratings don’t change on these matches. Web dashboard only.
- Default
- false
- Applies to
- Team headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Each player
noThe teamsyes - Web
- Editable on the web dashboard
Timeouts & Cooldowns
5Idle eviction, re-queue cooldowns, active-match limits.
How many minutes a player (or team) can wait in an automatic queue before being removed if no match has started. Default is 10; 0 means players are never removed, and blank goes back to 10. Automatic queues only (hosted lobbies use Auto-Close Idle Lobby).
0 turns the timeout off; leaving it blank uses the 10-minute default. Turning it off also stops timers already running. If the timeout is short for how many players the queue needs, early joiners can be removed before it ever fills: the bot warns when that is likely, and the queue message shows how many players were removed for idling in the last hour.
- Default
- 10 minutes on automatic queues; not used by hosted launchers
- Range
- ≥ 0; 0 disables (players are never idled out); blank stores nothing and falls back to 10
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Queue Timeouts (headless only — the hosted modal omits this field)
- Web
- Editable on the web dashboard
Minutes a player must wait before joining any queue or lobby in the league again, counted from the moment an automatic queue puts them into a match. Default is 1 minute; 0 turns it off, and blank goes back to the 1-minute default. Hosted launchers don't apply it.
Leaving it blank goes back to the 1-minute default. Set 0 to turn the cooldown off.
- Default
- 1 minute
- Range
- ≥ 0; 0 disables; decimals allowed (e.g. 0.5)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Queue Timeouts
- Web
- Editable on the web dashboard
Minutes every player of a match must wait, after its result is recorded, before joining any queue or lobby in the league again. A rest after the match, where Cooldown After Being Matched counts from when the match starts; whichever ends later applies. Blank or 0 turns it off.
- Default
- disabled
- Range
- ≥ 0; 0/blank disables
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Queue Timeouts
- Web
- Editable on the web dashboard
Stops a player rejoining this queue while a match they played from it is still unfinished (no result recorded and not closed). It lifts as soon as anyone records the result or the match is closed. Works like One Active Match Per Player set to "within this queue".
- Default
- false
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- boolean
- Values
- Allow re-queue
noMust report firstyes - Menu
- Configure Queue Timeouts
- Web
- Editable on the web dashboard
Blocks joining a new lobby while already in an ongoing match, per-queue or server-wide.
- Default
- Off — players can be in multiple matches
off - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Off — players can be in multiple matches
offOn — within this queuequeueOn — across all queues (server-wide)server - Menu
- Configure Queue Timeouts
- Web
- Editable on the web dashboard
Voice-Join Enforcement
4Dodge protection: kick and cool down players who never join voice.
After an automatic queue forms a match, checks that every player joined one of the match's auto-created voice channels within the Voice Grace Period. No-shows are swapped for players waiting in the queue; if there aren't enough, the match is cancelled and the players who showed up go back to the queue. Only works when Shared Match Channel or Per-Team Channels creates a voice channel.
- Default
- false
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Disabled
disabledEnabledenabled - Menu
- Configure Voice Join
- Web
- Discord only
How long players have to join voice after a match forms before being treated as dodgers.
- Default
- 2 minutes
- Range
- 1–60 minutes (out-of-range values are clamped, with a note in the confirmation)
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Voice Join
- Web
- Discord only
How long a voice dodger is blocked from re-joining the queue. Admins can pardon via the Pardon Dodge Cooldown menu action or the web dashboard.
- Default
- 10 minutes
- Range
- 0–1440 minutes (clamped); 0 = no cooldown
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Voice Join
- Web
- Discord only
Ping players not yet in voice this many seconds before the dodge timeout fires.
- Default
- 0 = off
- Range
- 0–600 seconds, and must fit ≥ 15s after match start (auto-shortened; turned off if the fit is < 10s)
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Voice Join
- Web
- Discord only
Maps & Voting
3Map pools, veto strategies, vote timers.
Named map pool the queue draws maps from. Queues name their own pool; the default / per-channel pools on Discord → Channels & Defaults are only for the /map_vote command.
- Default
- none
- Range
- names a map pool (a maps Option Set) with at least one map, matched case-insensitively; a name with no maps is refused on save, by both the dashboard and the Discord Map Voting modal, since the lookup happens at match time and a missing pool would turn map voting off silently. Deleting a pool a queue still names asks first. Required when a voting strategy is set, and vice versa
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Map Voting
- Web
- Editable on the web dashboard
How maps are selected for matches. FFA/co-op/anonymous creation only offers Simple; the full veto strategies are versus/team.
Not every strategy is offered everywhere: the creation command offers Stage Striking, while the settings window and the web dashboard offer Random and Smash Striking.
- Default
- no map voting
- Range
- requires map_pool
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Simple Vote — players vote for their preferred map
simpleRandomized (no repeats)random*Captains Ban (with reroll)captains_ban_with_reroll*Captains Ban (no reroll)captains_ban_no_reroll*Stage Striking (alternating 1-2-2-1 bans)stage_striking*Stage Striking Counterpick (winner bans, loser picks)stage_striking_counterpick*Smash Striking (game 1 strike starters; game 2+ winner bans (3 by default, set per stage list), loser picks)smash_striking* - Menu
- Configure Map Voting
- Web
- Editable on the web dashboard
Simple Vote only: auto-conclude the map vote after N seconds, picking the leading map (random on no votes). Headless: countdown starts at match creation; hosted: when the lobby fills.
- Default
- no timer (vote waits for everyone)
- Range
- 10–600 seconds; out-of-range is a hard error (not clamped)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Map Voting
- Web
- Editable on the web dashboard
Channels & Auto-Channels
15Where matches post; auto-created temp channels, threads, naming.
Channel where match/lobby-start announcements post.
Starts as the channel the queue was created in. Change it from Configure Match Announcements or the web dashboard.
- Default
- the channel the queue was created in
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Match Announcements
- Web
- Editable on the web dashboard
Channel where finished matches are listed; also where 'ping on recorded' mentions post.
Starts as the channel the queue was created in. Change it from Configure Match Announcements or the web dashboard.
- Default
- the channel the queue was created in
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Match Announcements
- Web
- Editable on the web dashboard
Where the match/lobby panel (roster, map vote, report buttons) is posted. A dedicated channel: the bot creates one text channel per match — placed under the Temp-Channel Category and named with the Shared Channel Name Template — and deletes it when the match ends. Results still post to the Match End Channel.
Private: only the players, your admin roles and the bot see the match channel. Public: anyone can watch. The Temp-Channel Category only decides where the channels are placed.
- Default
- In the Match Start Channel
start_channel - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- In the Match Start Channel
start_channelDedicated per-match channel — private (players & staff only)dedicated_privateDedicated per-match channel — public (anyone can watch)dedicated_public - Menu
- Configure Match Announcements
- Web
- Editable on the web dashboard
Discord category where auto-created match channels are placed.
- Default
- none
- Range
- must be a category; web form requires it when auto-channels are enabled
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- category
- Menu
- Configure Auto-Channels
- Web
- Editable on the web dashboard
A channel the bot renames to show whether anyone is waiting in the queue — e.g. "🟢 Ranked" / "⚫ Ranked". Any voice or text channel works, including the channel the queue is posted in (a text channel shows as "🟢-ranked" — Discord lowercases and dashes text-channel names).
Discord lets a bot rename a channel only twice every 10 minutes, so it turns green within seconds when someone joins but can take up to 10 minutes to show empty again. Each queue needs its own status channel. The bot renames the channel you pick and gives it back its old name if you switch.
- Default
- none
- Range
- voice, stage, text or announcement channel; bot needs Manage Channels
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Channel Names (headless only)
- Web
- Editable on the web dashboard
A voice channel players are moved into when they press Join Queue (their party too, on a party join). Leaving the queue never moves anyone out of voice.
The bot can only move players who are already in a voice channel; anyone else gets a private message with a link. Set on the web dashboard only. Not yet available for team queues.
- Default
- none
- Range
- voice or stage channel; bot needs Move Members and Connect
- Applies to
- VersusFree-For-AllCo-opAnonymous headless
Details: type, values and where to set it
- Type
- channel
- Web
- Editable on the web dashboard
Status channel name while at least one player (or team) is queued. Tokens: {queue} (queue name), {count} (number waiting — may be a few minutes behind).
- Default
- '🟢 {queue}'
- Range
- max 100 chars
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- template
- Menu
- Configure Channel Names (headless only)
- Web
- Editable on the web dashboard
Status channel name while nobody is queued. Tokens: {queue}, {count}.
- Default
- '⚫ {queue}'
- Range
- max 100 chars
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- template
- Menu
- Configure Channel Names (headless only)
- Web
- Editable on the web dashboard
Auto-create per-team channels, private (team-only) or public.
Known issue: saving the Auto-Channels window on an FFA or co-op queue resets this to Disabled.
- Default
- Disabled
disabled - Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Disabled
disabledPrivate — text (team only)textPrivate — voice (team only)voicePrivate — text & voicevoice_and_textPublic — text (whole server)public_textPublic — voice (whole server)public_voicePublic — text & voicepublic_voice_and_text - Menu
- Configure Auto-Channels
- Web
- Editable on the web dashboard
Spin up a public or private thread for each match.
If no dispute channel is set, disputes go to the match thread, which only exists when threads are on.
- Default
- Disabled
disabled - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Disabled
disabledPublic thread per matchenabledPrivate thread per matchenabled_private - Menu
- Configure Auto-Channels
- Web
- Editable on the web dashboard
Whether the bot moves players into (and back out of) auto-created voice channels.
- Default
- Move in at start, back at end
in_and_back - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Move in at start, back at end
in_and_backMove in at start onlyin_onlyNever move playersnone - Menu
- Configure Auto-Channels
- Web
- Editable on the web dashboard
Naming template for auto-created per-team channels. Tokens: {code} {title} {team} {emoji} {n} {vs}.
- Default
- '{code} {team}' (headless) / '{team} - {title}' (hosted)
- Range
- max 100 chars
- Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- template
- Menu
- Configure Channel Names
- Web
- Editable on the web dashboard
Naming template for the auto-created match thread. Tokens: {code} {title} {vs}.
- Default
- '{title} - Chat' (public) / '{title} - {code}' (private)
- Range
- max 100 chars
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- template
- Menu
- Configure Channel Names
- Web
- Editable on the web dashboard
Notifications & Pings
8Join feeds, match start/end pings, recorded-result pings.
Channel where the bot posts a short message each time someone joins an automatic queue, plus one when a match is found. Leaving the queue is not posted. Blank means no join feed.
- Default
- none = no join feed
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Queue Alerts (headless only)
- Web
- Editable on the web dashboard
Role mentioned in Join Feed posts when someone joins an automatic queue, at most once every 15 minutes. Needs a Join Feed Channel. Not the same as Queue Open Ping Role, which pings when the queue message is posted.
- Default
- none
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Queue Alerts (headless only)
- Web
- Editable on the web dashboard
Role pinged when the queue message is posted or reposted — the "we are open, come queue" announcement.
Pings the role on the queue message itself whenever the queue is posted or reposted, so a session reposted each night announces itself. Limited by the Queue Open Ping Cooldown.
- Default
- not set (no ping)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Queue Alerts (headless) / the web form (either kind)
- Web
- Editable on the web dashboard
Minimum gap between Queue Open Ping Role pings. Set to 0 to ping on every post and repost.
A number is minutes, 0 means no cooldown, and blank uses the 2-minute default. When a repost’s ping is held back, the confirmation says so and how long is left.
- Default
- 2 minutes
- Range
- 0 or more; 0 = no cooldown
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Queue Alerts (headless) / the web form (either kind)
- Web
- Editable on the web dashboard
Minutes between "what lanes are still missing" pings (e.g. "needs +1 Mid and +1 Jungle to start — 8/10 placed"), from the moment the queue is posted until a match starts. 0 turns it off.
Pings the queue-open role with the lanes still needed. Needs a Queue Open Ping Role and a lane formation. Stops when a match starts, when the queue is reposted or taken down, or after an hour. Only the latest reminder stays in the channel.
- Default
- 0 (off)
- Range
- 0 = off; 1 minute minimum when on
- Applies to
- all queue types headless + hosted best-of / cumulative only
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Queue Alerts (headless) / the web form (either kind)
- Web
- Editable on the web dashboard
Role pinged when an automatic queue starts a match, on the match post in the Match Start Channel. Hosted launchers don't use it.
- Default
- none
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Match Announcements
- Web
- Editable on the web dashboard
Role pinged on the match-end post in the Match End Channel when a match finishes, on automatic queues and hosted launchers. Needs a Match End Channel.
- Default
- none
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Match Announcements
- Web
- Editable on the web dashboard
Who gets a real mention in the match-end-channel post when a result records.
Posts in the Match End Channel, and does nothing if that isn’t set. For hosted queues, set it on the web dashboard.
- Default
- Off
off - Applies to
- VersusAnonymous headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Off
offEveryone in the matcheveryoneOnly players who didn’t confirmnon_confirmers - Menu
- Configure Party Queue (headless menu only)
- Web
- Editable on the web dashboard
Scheduled Sessions
1Open, announce and close the queue on set days and times.
Runs the queue as a recurring session, such as scrims at 8 PM every Friday and Saturday. When a session opens, the bot reposts the queue message at the bottom of its channel and pings the Queue Open Ping Role, which also starts lane reminders. It can also clear the queue first and post an announcement in a second channel. When the session ends, the bot stops lane reminders and can take the queue message down until the next session.
Set on the web dashboard (queue settings → Schedule); automatic queues only. It can clear the queue when a session opens, take it down when the session ends, and post an announcement that carries the role ping. Times follow the time zone you pick, including daylight saving time.
- Default
- not set (no schedule: the queue is open whenever it is posted)
- Range
- days: any of Mon–Sun; start: a time of day in the chosen time zone; length: 15–720 minutes
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- object
- Web
- Editable on the web dashboard
Results, Disputes & Evidence
8Captain vote timeouts, screenshots, AI scanning, dispute routing.
On matches with captains (captain team formation or team queues), if one captain reports the result and the other doesn't vote within this many minutes, the match is recorded from that one report. Single Match format only; skipped when an admin must approve or decide the result or a screenshot is required. 0 or blank turns it off.
- Default
- 0 = off
- Range
- ≥ 0 (floored to integer); a BLANK submit persists 0 and turns the feature off
- Applies to
- VersusTeamAnonymous headless + hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Captain Vote Timer
- Web
- Editable on the web dashboard
Blocks recording a match result until someone in the match has submitted a screenshot with the match panel's 📎 Upload button. Needs a Screenshot Channel set, because the Upload button only appears when one is.
- Default
- false
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- boolean
- Values
- Disabled
noEnabledyes - Menu
- Configure Screenshot Requirement
- Web
- Editable on the web dashboard
Adds a 'Scan Result' button that has AI read a scoreboard screenshot to pre-fill the match result.
How screenshots are read is set on the leaderboard’s Screenshot Scanning page, not on the queue.
- Default
- false
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Disabled
noEnabledyes - Menu
- Configure AI Screenshot Recording
- Web
- Discord only
When an AI scan reads every player and stat cleanly, record it with no manual approval step.
- Default
- false
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- boolean
- Values
- Off — review & approve each scan
noOn — auto-record clean scansyes - Menu
- Configure AI Screenshot Recording
- Web
- Discord only
Channel where the bot reposts screenshots or videos that players submit with the 📎 Upload button on the match panel. Setting it is what makes the Upload button appear; images posted directly in the channel are not counted as match evidence.
- Default
- none
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Dispute Handling (headless only)
- Web
- Editable on the web dashboard
Channel where match events (scores, disputes, results) are logged.
- Default
- none
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Dispute Handling (headless only)
- Web
- Editable on the web dashboard
Channel where dispute notifications post when players request admin help.
- Default
- not set: disputes go to the match thread when threads are on
- Range
- text or announcement channel
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- channel
- Menu
- Configure Dispute Handling (headless only)
- Web
- Editable on the web dashboard
Role mentioned when a dispute is filed.
- Default
- none
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Dispute Handling (headless only)
- Web
- Editable on the web dashboard
Access & Eligibility
14Passwords, minimum-rating gates, admin roles, party queue.
Password players must enter to join a headless queue.
Can be set when creating a /queue_versus automatic queue, or later in the queue’s settings. It is never shown pre-filled.
- Default
- none
- Range
- max 32 chars at creation; blank submit removes the password
- Applies to
- all queue types headless
Details: type, values and where to set it
- Type
- string
- Create
- optional: versus/headless
- Menu
- Configure Queue Settings
- Web
- Editable on the web dashboard
Password required to open a lobby from the launcher.
- Default
- none
- Range
- blank submit removes
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Queue Settings (launcher)
- Web
- Editable on the web dashboard
Default join password applied to newly created hosted lobbies (hosts can change it per lobby). Up to 32 characters, the most the join box accepts. Party joins are not possible on a password-protected lobby, so while this is set the launcher hides ‘Host as Party’ and its lobbies have no ‘Join as Party’ button, even with Party Queue on.
- Default
- none
- Range
- up to 32 characters; spaces around it are trimmed; blank submit removes
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- string
- Menu
- Configure Queue Settings (launcher)
- Web
- Editable on the web dashboard
Who provides the in-game lobby code. 'auto' shows the code the bot generates; 'manual' hides it until an admin enters the real one.
Choose Manual for games where someone creates the room in-game and shares its code (most mobile MOBAs): the match then asks an admin to enter the code instead of showing a placeholder.
- Default
- 'auto' (the bot generates it)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- select
- Values
- Bot generates it
autoAn admin enters it after the match startsmanual - Menu
- Configure Queue Settings (headless) / the web form (either kind)
- Web
- Editable on the web dashboard
Whether the in-game lobby code is printed on the match panel for everyone, or hidden behind a 🔑 View Lobby Code button that only players in the match can use. Not the same as Lobby Code Source, which decides whether the bot or an admin provides the code.
Formerly called “Private Lobby Code”. On the web dashboard it is shown for hosted queues only.
- Default
- false (code shown in the embed)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- boolean
- Values
- Everyone — shown in the embed
noPlayers only — behind a buttonyes - Menu
- Configure Queue Settings (launcher) / Display Settings (headless)
- Web
- Editable on the web dashboard
Rating floor to join (or host from) the queue; unrated players are treated as the league’s default rating.
Not shown for team queues, which join as a unit. Discord only.
- Default
- no requirement
- Range
- whole number ≥ 0; 0/blank clears
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Minimum Rating
- Web
- Discord only
Which of a player's ratings is compared against Minimum Rating to Join. Options: their overall rating (all matches, even-team matches only, or uneven-team matches only), their rating for this team size, or their rating for this exact format such as 5v5.
Cleared automatically when Minimum Rating to Join is cleared.
- Default
- Global (all matches)
player_global_all - Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Global (all matches)
player_global_allGlobal (even teams)player_global_evenGlobal (uneven teams)player_global_unevenBy team sizeplayer_broadBy formatplayer_specific - Menu
- Configure Minimum Rating
- Web
- Discord only
Whether SETTING the in-game lobby code is limited to lobby admins and the queue creator. Viewing is unaffected — everyone in the match can always read it.
Takes effect straight away, including for matches in progress. Admins and the queue’s creator can always set the code; this decides whether other players can too.
- Default
- false (anyone in the match can set it)
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- boolean
- Values
- Anyone in the match
noAdmins and the queue creator onlyyes - Menu
- Configure Admin Roles
- Web
- Discord only
Roles (beyond server administrators) allowed to confirm/reject results in Admin Approval / Admin Decides modes, and to run a live match’s roster — Substitute Player / Kick Player in the match message’s admin dropdown. Holders are also granted visibility into the private lobby channels and (via Manage-Threads on the parent channel) private lobby threads the bot creates, so an admin can oversee a lobby they aren’t a participant in.
The web dashboard edits a single admin role; set several from Discord.
- Default
- only server administrators
- Range
- 0–10 roles
- Applies to
- all queue types headless + hosted
Details: type, values and where to set it
- Type
- roles
- Menu
- Configure Admin Roles
- Web
- Discord only
Lets players queue with friends they pick: the '👥 Join as Party' button adds a group that always plays on the same team. Solo players can still join and are matched alongside parties, unless Min Party Size is 2 or more. On automatic queues the button is on the queue message; on hosted launchers it appears on each open lobby (plus 'Host as Party' on the launcher). Size limits are Max Party Size and Min Party Size. A password hides the party buttons: the queue password on an automatic queue, the Default Lobby Password on a hosted launcher.
On automatic queues, parties need a team size of 2 or more, a bot-formed team mode, Unique Choice Matchmaking off and no password. Hosted lobbies support parties with every bot-formed team mode, but not with a password: a launcher with a Default Lobby Password shows no party buttons. Changes apply to lobbies created afterwards.
- Default
- false
- Applies to
- VersusAnonymous headless + hosted
Details: type, values and where to set it
- Type
- boolean
- Values
- Disabled
noEnabledyes - Menu
- Configure Party Queue
- Web
- Editable on the web dashboard
Consent step for hosted party joins: in invite mode, each picked teammate gets a DM with Accept/Decline (pinged in the lobby channel if their DMs are closed) and the party only joins once everyone has responded — declines simply shrink the party. Instant keeps the frictionless no-accept flow.
Hosted queues only, with Party Queue on. Invites expire after 10 minutes. Changes apply to lobbies created afterwards.
- Default
- Instant — picks join immediately
instant - Applies to
- VersusAnonymous hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Instant — picks join immediately
instantInvite — picks must accept firstinvite - Menu
- Configure Party Queue
- Web
- Discord only
Largest party allowed, below the structural team-size limit — e.g. 2 in a 5v5 lets players queue solo or as a duo, never as a trio. It does NOT stop solo players; for that, see Min Party Size. Values below 2 are treated as off (to forbid parties entirely, disable Party Queue).
On hosted queues, changes apply to lobbies created afterwards; automatic queues use the new size straight away.
- Default
- 0 (off — parties up to the biggest team size)
- Range
- 2 – biggest team size; 0/blank = off
- Applies to
- VersusAnonymous headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Party Queue
- Web
- Editable on the web dashboard
Smallest party allowed. 2 means nobody can queue alone: players join with 👥 Join as Party and pick their teammate(s). "Duos only" is Min 2 with Max Party Size 2, or simply Min 2 on a queue whose teams are 2 players (e.g. /queue_versus headless team_size:2 teams:6).
Automatic queues only. At 2 or more, the solo Join button is hidden and smaller parties are refused (an admin adding a player by hand is exempt). Ignored when party queueing isn’t available, so it can’t lock everyone out.
- Default
- 0 (off — solo players can join)
- Range
- 2 – the largest party the queue takes (Max Party Size, else the biggest team size); 0/blank = off
- Applies to
- VersusAnonymous headless
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Party Queue
- Web
- Editable on the web dashboard
The largest rating gap allowed inside one party, from its highest- to its lowest-rated member, to stop a high-rated player carrying a low-rated account. Blank or 0 means no limit. A refused party is told which two players are too far apart.
Checked when a party forms. Unrated players count as the league’s starting rating, so new accounts can’t get around the cap.
- Default
- 0 (off — no spread limit)
- Range
- > 0; 0/blank = off
- Applies to
- VersusAnonymous headless + hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Party Queue
- Web
- Editable on the web dashboard
Hosted-Launcher Controls
7Host permissions, lobby caps, host customization bounds.
Whether pressing 'Host Lobby' creates a lobby immediately with queue defaults or first shows the host a customize modal.
- Default
- Fixed — lobby uses queue defaults, no prompt
fixed - Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- enum
- Values
- Fixed — lobby uses queue defaults, no prompt
fixedHost customizes — title, description, sizehost_customizes - Menu
- Configure Host Lobby Creation
- Web
- Discord only
Lower bound of the player count a host may pick when customizing their lobby.
- Default
- 2
- Range
- ≥ 2; ≤ host_lobby_max_players; required in host_customizes mode (only persisted in that mode)
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Host Lobby Creation
- Web
- Discord only
Upper bound (hard cap 25) of the player count a host may pick when customizing their lobby.
- Default
- the queue's party size or Max players (4 if neither is set)
- Range
- ≥ 2; hard cap 25; ≥ host_lobby_min_players
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Host Lobby Creation
- Web
- Discord only
Restrict who may open lobbies from this launcher.
- Default
- anyone can host (admins always bypass)
- Range
- 0 or 1 role
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- role
- Menu
- Configure Host Lobby Creation
- Web
- Discord only
Caps simultaneous open lobbies for one host in this queue. Admin hosts bypass this cap (staff seeding).
- Default
- unset / 0 = unlimited
- Range
- integer ≥ 0; blank submit leaves the saved value unchanged (0 disables)
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Lobby Limits
- Web
- Editable on the web dashboard
Caps still-forming lobbies across all hosts (started/full lobbies stop counting). Enforced for everyone, including admins.
- Default
- unset / 0 = unlimited
- Range
- integer ≥ 0; blank leaves saved value unchanged
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- int
- Menu
- Configure Lobby Limits
- Web
- Editable on the web dashboard
Closes an open hosted lobby that sits unfilled for this many minutes. The timer restarts each time someone joins, stops once the lobby is full, and the host can reset it. 0 or blank means lobbies never auto-close. Not the same as Idle Timeout, which removes waiting players from an automatic queue.
- Default
- unset / 0 = never auto-close
- Range
- ≥ 0; blank leaves saved value unchanged
- Applies to
- all queue types hosted
Details: type, values and where to set it
- Type
- number
- Menu
- Configure Lobby Limits
- Web
- Editable on the web dashboard
Per-Lobby Fields
Set on an individual hosted lobby (by its host or a server admin), not on the queue. They override or supplement the queue's defaults for that one lobby.
| Field | Who sets it | What it does |
|---|---|---|
| lobby_title | host or admin | Renames a live lobby; must be non-empty. Governed by the league-wide lobby_permissions.title setting (see below). |
| lobby_password | host or admin | Sets/removes the join password on one lobby (blank clears). |
| region | host or admin | Free-text region/ping label shown in the lobby embed; display-only. Governed by the league-wide lobby_permissions.region setting (see below). |
| lobby_image_url | host or admin | Embed image URL (http/https). Governed by the league-wide lobby_permissions.image setting (see below). |
| competitive_format | host or admin | Per-lobby override: single_match / endless_matches / best_of_N / cumulative_N. |
| disabled_maps | host or admin | Per-lobby map pool override — unselected maps are disabled; at least one must remain. |
| team_mode | set at creation | Runtime team-formation vocabulary for the lobby (see HOST_TEAM_MODES); from /host verbatim, or translated from the queue’s team_formation. |
| match_result | set at creation | The queue’s match_result mode, copied onto the lobby beside the four booleans it derives. Stored because ranked defaults to false on the lobby record, so a false value cannot tell "the admin chose unranked" apart from "never configured" — the message builder needs that distinction before it hides per-player ratings. Absent on lobbies created before it was stored, which renders as ranked (ratings shown, i.e. unchanged). |
| lobby_permissions (league-wide) | league admin, from the dashboard | Not a lobby field — the league-wide policy that decides who may use the four host-editable ones above. Matchmaking → Who can edit lobby panels (on the web dashboard) sets image, title, team_names and region each to host (default: lobby host or a server admin), admin (administrators only; the menu entry stays, a non-admin host is refused on submit) or off (the entry is removed from lobby panels). It exists because on a queue-popped lobby the "host" is an ordinary member, so all four are surfaces a player can write NSFW images or slurs onto in public. Snapshotted onto each lobby at creation so the renderers can drop a disabled entry; re-read live on every attempt, so a change reaches lobbies that are already open. The queue-level lobby_image_url / team_names defaults are unaffected — those are already staff-set. |
| host customize overrides | prospective host | One-shot overrides at lobby creation when host_lobby_mode = host_customizes; player count bounded by host_lobby_min/max_players and must divide evenly into teams for every non-FFA/non-co-op queue mode (versus, team, anonymous). |
The Two Team-Formation Vocabularies
Queues store team_formation (see Team Composition above).
Lobbies run on a separate team_mode vocabulary: /host stores its option verbatim, while hosted launchers
translate the queue value at lobby creation
(balanced_teams → balance_elo, FFA/co-op → none,
captains modes pass through).
| team_mode value | Label | Where it comes from |
|---|---|---|
| players_choose | Players Choose | /host + translated from queue players_choose + hosted matchmaking submit flows |
| players_choose_positions | Players Choose (with positions) | retired — no longer creatableFully removed. The lobby message builders never rendered a position picker, so the mode stored position_names nobody could select from; the whole feature has since been deleted — the /settings positions command, the hosted_lobby_choose_position handler, handleSetPosition, and the position_names field itself. Both createLobby and /host now reject the mode by name. Role-based matchmaking lives on headless queues via rival_teams (Unique Choice Matchmaking). Kept in this list because pre-existing lobby rows still carry the value; nothing reads it. |
| random | Random | /host onlyNo automatic on-fill randomizer — random assignment fires via the manual Randomize Teams action. |
| random_anonymous | Random (anonymous) | /host + anonymous submit flows |
| random_positions | Random (with positions) | retired — no longer creatableSame story as players_choose_positions: no picker was ever rendered, and the machinery behind it is deleted. Use rival_teams on a headless queue instead. |
| random_teams | Random Teams | translated from queue random_teams |
| captains_host_picks | Captains (Host Picks) | /host + queue (hosted) |
| captains_highest_elo | Captains (Highest Elo) | queue captains_* pass through unchanged |
| captains_lowest_elo | Captains (Lowest Elo) | queue captains_* pass through unchanged |
| captains_random | Captains (Random) | queue captains_* pass through unchanged |
| captains_volunteer | Captains (Volunteer) | queue captains_* pass through unchanged |
| balance_elo | Balance by Elo | /host balance_elo + translated from queue balanced_teams |
| no_teams | No Teams | /host + ffa/coop submit flows |
| none | None | translated from ffa/coop queues |
Internal & Derived Keys
Keys the system writes automatically — you never set these directly, but you may see them in exports or the API.
Display string ('5v5', '2v2v2') written alongside team_sizes and versus_format.
The Match Rules modals write team_sizes, versus and versus_format together, and only when the Team Size field is changed: a save for another setting leaves all three alone. (Before 2026-10-11 the modal left versus_format at the creation-time size, so queue status and /queue_manage list could show a stale format.)
Format string ('5v5', '2v2v2') written at queue creation and by the Match Rules modals when the team size changes. Each new match is labelled with it (the lobby's versus, which picks its specific rating), and a hosted launcher sizes its lobbies from it; queue status and /queue_manage list show it. Allowlisted for web PATCH but has no web form control.
Four booleans the result-voting flow consumes, fanned out from match_result whenever it is saved (by the bot and by the web form).
The web PATCH allowlists each flag individually with no consistency check against match_result.
Legacy single admin-role key, auto-synced to the first entry of admin_roles on every Discord save; older readers (team matches, FFA) still consume it. The web form edits this key directly.
Legacy queue-level key still read as a fallback by some consumers (team_formation || team_mode || "random_teams"). Distinct from the lobby-level team_mode runtime field (see HOST_TEAM_MODES).
Looking for the concepts?
This page is the reference. For how queues, modes, team formation, and formats actually work, see the guide.
Queues & Lobbies guide