Dota Pugs
A role-queue matchmaking platform for Dota 2. Find balanced, ranked games with real players — no bots, no unranked chaos.
How to Play
Sign in with Steam
Your Steam account is used to verify your identity. We fetch your public Dota 2 profile from OpenDota to seed your initial MMR estimate.
Pick your roles and queue
Select one or more roles you want to play — in order of preference. You can queue in both the English and Turkish servers at the same time.
Accept the match
When 10 compatible players are found you get a 60-second window to accept. All 10 must accept — if anyone declines or times out, accepters are re-queued with priority.
Join the Dota 2 lobby
After everyone accepts, the bot automatically creates a Dota 2 lobby, sets a password, and invites all 10 players. Join the lobby with the name and password shown on screen.
Play and get rated
Once the game ends, the bot reports the result and your per-role MMR updates automatically using the Glicko-2 algorithm.
Queue System
The queue runs a matchmaking tick every 5 seconds. It tries to form the highest-quality 10-man group possible from everyone currently waiting.
Additionally, when the server has fewer players online the maximum allowed spread across the whole group is automatically raised so a game can still form. A server with exactly 10 people will always produce a match.
Role Queue
Every match requires exactly one player per role per team. When multiple players want the same role, priority goes to the highest-rated player first, then by wait time. Players who don't get a preferred role are filled into remaining slots.
Carry (Position 1)
Farm-heavy core. Expected to out-last-hit and out-GPM opponents. MMR tracked independently from other roles.
Mid (Position 2)
Solo mid, high impact early. Tracked by GPM, XPM, and hero damage relative to the match average MMR.
Offlane (Position 3)
Disruption and durability. Tower damage and hero damage are key performance benchmarks.
Soft Support (Position 4)
Roaming support. Ward placement, assists, and hero healing contribute to performance scoring.
Hard Support (Position 5)
Full support. Observer/sentry ward count, camp stacks, and keeping cores alive are measured.
Ranking System
Each role has its own independent MMR tracked with the Glicko-2 algorithm. Playing carry does not affect your mid rating. Your profile shows your display rating — the average of all your calibrated roles (or all role seeds while uncalibrated).
Calibration — first 10 games per role
While calibrating, your Rating Deviation (RD) is deliberately high so the system can move you to your true bracket quickly. Expect larger MMR swings (±40–80) per game. After 10 games the role is marked calibrated and swings stabilise to ±15–30.
Initial MMR seed
On first login we query OpenDota for your public Dota 2 MMR. If found, all roles are seeded at the equivalent internal value with RD 200 (moderate confidence). If OpenDota data is unavailable, you start at 1 500 with RD 350 (high uncertainty — moves fast).
Cross-role seeding
Once you calibrate your first role, uncalibrated roles are seeded at best calibrated MMR × 0.85 + 1 500 × 0.15 with RD 250. A 3 000 carry player starts support calibration at ~2 775 — not Herald.
Rank tiers
Team Balancing
Teams are split using a snake draft based on each player's role-specific MMR — not their overall display rating. This means a 3 000 display-MMR player assigned to support is treated as their support MMR (e.g. 2 200) when calculating team balance. The result is fairer teams even when players are multi-role.
Snake draft order (sorted by role MMR ↓)
Radiant ← slot 1 (highest)
Dire ← slot 2
Dire ← slot 3
Radiant ← slot 4
Radiant ← slot 5
… alternating pattern continues
Questions or issues? Ask in the community Discord.