If you already know you want a CS2 pug queue in Discord and just need it built, the Valorant 10 mans guide covers the mechanics step by step and everything in it applies here — queue, teams, voice channels, results. Swap the map pool and you're running.
This post is about the parts that guide doesn't cover, because they're specific to Counter-Strike: what veto format to run, how to seed players who already have a Premier rating, and what a 13-round match does to the reliability of your leaderboard. These are decisions Premier and FACEIT make for you. Running your own pugs means making them yourself, and most groups make them by accident.
Why Run Your Own When Premier and FACEIT Exist
Worth answering honestly, because the answer shapes everything else.
Premier gives you a rating but not a community — you get a number and a rotating cast of strangers. FACEIT gives you both, but only if your region and skill band have enough population to fill a queue at the hour you play. Below about level 8 in a mid-size region, that's often not true after midnight.
A private 10-man queue solves a different problem than either: the same forty people, playing repeatedly, with a rating that describes them relative to each other. That last part matters. Your ladder isn't trying to place someone globally. It's trying to answer "who should be on which team tonight", and it only needs to be internally consistent to do that.
Which means you should stop comparing your leaderboard's numbers to Premier's. They measure different populations. A 1400 on your ladder is not 14,000 Premier, and anyone treating it that way will be confused forever.
Map Veto Is a Competitive Decision, Not a Formality
In Valorant or League, the map or the map pool is mostly a backdrop. In Counter-Strike it's a strategic layer — teams have maps they practise and maps they avoid, and the veto is where a fair chunk of the match is decided.
You have four realistic formats:
Simple vote. Everyone votes, highest count wins. Fast, and fine for a casual group. It also converges hard: your pool of seven maps quietly becomes the three everybody likes, and the same map appears four nights a week.
map_voting_strategy:simple
Captains ban, no reroll. The classic. Captains alternate bans until one map remains. Preserves the real veto skill — knowing what your five are weak on and what the other five practise — and keeps the pool genuinely in rotation.
map_voting_strategy:captains_ban_no_reroll
Captains ban with reroll. Same, with an escape hatch when the result is a map neither side wants. Useful for groups that keep landing on the one map everyone tolerates and nobody enjoys.
Stage striking (1-2-2-1). Alternating strikes rather than a straight ban chain. Fairer at the margins than a simple alternating ban, and worth it if your group argues about veto order.
For a shuffled 10-man where teams are freshly formed each match, captains_ban_no_reroll is the right default. Veto skill is real, it's part of Counter-Strike, and it belongs in a competitive queue.
Set the pool alongside it — a map_pool is required before any veto strategy does anything:
/queue_versus headless queue_name:cs2-pugs title:CS2 10 Mans description:5v5 pugs, Elo-balanced teams team_size:5 match_start_channel:#pug-matches match_end_channel:#match-history team_formation:balanced_teams map_pool:ActiveDuty map_voting_strategy:captains_ban_no_reroll leaderboard:CS2
One caveat worth knowing: the full veto strategies are available for versus and team queues. FFA and co-op queues only offer the simple vote — which doesn't matter for 10-mans, but does if you also run a wingman or 1v1 ladder off the same bot.
What a 13-Round Match Does to Your Rating Data
Here's the CS-specific statistics problem, and it's the one nobody configures for.
Elo treats a result as one bit: you won, or you didn't. It does not care whether you won 13-2 or 13-11. That's fine when a match is a reliable signal of who was better. It's a problem when matches are short, because short matches are noisier — the shorter the format, the more often the worse team wins.
MR12 made every CS match meaningfully shorter than the MR15 era. A best-of-24-rounds decides less confidently than a best-of-30. Add overtime rules that resolve in three-round bursts and you get a format where a genuine coinflip resolves as a clean win in your match history.
The consequence for your leaderboard: more of your results are noise than you think. Not because anything is broken, but because the format produces upsets at a higher rate than the rating system's default assumptions expect.
Two configuration responses, and they pull in opposite directions:
Lower your K-factor so any single noisy result moves ratings less. If your group's volume supports it, this is the cleanest lever — see K-factor curves for what each value costs you in convergence speed.
But don't lower it so far that new players never place. Which is the real tension, and it's why provisional rating exists: keep a lower steady-state K so a 13-11 upset doesn't wreck a veteran's rating, and let new players run an amplified K for their first N matches so they still find their level quickly. That combination is the correct answer for a high-variance format, and it's the one most groups don't know is available.
Configure the steady-state value with:
/leaderboard_config basics set k_factor:24
and turn on Provisional Rating from the league's Rating Defaults page in the dashboard.
Should Maps Have Their Own Ratings?
Tempting, and mostly a trap.
You can give each map its own rating — record the map as a player choice and every map accumulates a separate ladder, the same mechanism the LoL inhouse post uses for roles:
/custom_stats select_choices name:Map scope:match choice_1:Mirage choice_2:Inferno choice_3:Nuke choice_4:Ancient choice_5:Anubis choice_6:Dust2 choice_7:Train
The question is whether you have the volume. Roles in League split five ways; a CS map pool splits seven. If your group plays three pugs a week, each map rating gets one match every two or three weeks. Those aren't ratings, they're anecdotes.
So: track map as a stat from day one, because it costs nothing and after a season you'll know whether your group has a genuine Nuke problem. Only turn on per-map ratings if you're running enough volume that each map clears ten-plus matches per player — which in practice means a large, active pug community, not a friend group.
The stat is the useful part anyway. "We're 4-19 on Ancient" is actionable. "Your Ancient rating is 1180" mostly isn't.
Seeding New Players
A new player joining at the default 1200 has to climb from scratch even when everyone already knows they're the best player in the server. That's a solved problem — you just have to actually solve it.
Set the default where it belongs for your population:
/leaderboard_config basics set default_rating:1200
Then place new joiners deliberately rather than letting the ladder discover them slowly:
- Use their Premier or FACEIT level as a prior, not as a rating. Someone at FACEIT 10 starts near the top of your ladder; someone at level 3 starts near the bottom. You're seeding an ordering, not importing a number.
- Let provisional rating do the correction. An amplified K over the first ten matches will fix a seed that was two tiers off far faster than flat K will.
- Hide them until they've placed so a half-formed rating doesn't distort the standings:
/leaderboard_config ranking set matches_required:10
The combination — reasonable seed, high provisional K, hidden until placed — gets a new player to roughly the right position within a couple of nights instead of a month.
Stacking, Smurfs, and the Small-Pool Problem
Every pug community hits this. Five friends who play together queue as a unit, win consistently, and everyone else stops showing up.
In a 10-man queue with shuffled teams the problem is mostly structural rather than malicious, and the fixes are structural too:
Balance rather than let people pick. team_formation:balanced_teams builds teams from ratings each match. If your group insists on captains, captains_highest_elo at least ensures the two strongest players are split.
Cap the mismatch. max_elo_difference stops the queue from starting a match between two wildly uneven teams — better to wait five minutes for another player than to run a game everyone knows is over at the veto.
Watch for farming, not just smurfing. The subtler version isn't a smurf, it's a strong player who only queues when the lobby is weak. That's match farming, it's detectable in your own match history, and it does more long-term damage to a small community than an obvious smurf does.
Overtime, Forfeits, and Draws
Three edge cases CS produces more than most games, worth deciding before they happen rather than during an argument:
Overtime is just a win. Don't rate it differently — a 16-13 OT win and a 13-4 stomp are both one win, and trying to weight them re-opens the "should scoreline matter" question that Elo deliberately closes.
Forfeits and no-shows should record as a result, not vanish. If someone drops at 10-4 down, that's a loss. A queue where quitting erases the game is a queue where people quit.
All three get easier if nobody is retyping scoreboards by hand — if you run your own server, wiring MatchZy straight into the leaderboard removes the admin step entirely and the result posts itself the moment the map ends.
Draws barely happen in CS since MR12 forces a decision, but if you run a format that permits them, decide up front — a draw between mismatched teams should still move ratings toward each other.
Season Length
Pug communities burn out on ladders that never reset. Someone builds an unassailable lead in month two, everyone else stops caring in month three.
A three-month season with a full rating reset is the shape that works for most groups: long enough for ratings to mean something, short enough that a bad start isn't permanent, and it gives you a natural moment to change the map pool or the veto format without anyone claiming you moved the goalposts mid-season.
Resetting also fixes the slow drift that accumulates in any small closed population, where ratings gradually spread apart from repeated play among the same forty people.
Running CS2 pugs on Discord? Team Up handles the queue, veto, Elo-balanced teams and match history in one bot. Start with the step-by-step 10-mans setup — the flow is identical for CS2 — or read K-factor curves for how to tune ratings for a high-variance format.
