This note is still in progress as I gather data and insights from other Rocket League players. Feel free to check out what I’ve compiled so far!
As a longtime Rocket League player, I’ve always been fascinated by the ranking system behind the game. Using tools like BakkesMod and tracking websites, I’ve been able to monitor my MMR in real time, sparking my interest in how the system works. Rocket League, like many games, uses skill-based matchmaking to create balanced matches, driven by calculations that determine player ratings and matchups. My goal is to explore the data behind this system and understand how it shapes the competitive experience.
Matchmaking Rating (MMR) and Skill Rating
Most Rocket League players interested in their competitive ranking are familiar with the skill rating displayed on third-party websites or in BakkesMod. This skill rating is derived from the matchmaking rank (MMR), which remains hidden and is not easily visible to players.
The MMR is the underlying numerical value that determines a player’s true skill level, influencing matchmaking and overall competitive performance in Rocket League. Both casual and competitive matchmaking in Rocket League utilize skill-based matchmaking, meaning that wins and losses directly affect your skill value, leading to increases or decreases in your ranking. To balance the time spent finding eligible opponents within selected regions and prevent long wait times, the game expands the allowable skill range when necessary. Different playlists and gamemodes will have their own MMR value.
Determining a Player’s Skill
Rocket League uses the SkillMu and SkillSigma to calculate a player’s MMR. This is similar to other Bayesian approaches but not the same.1
SkillMu (Mu)
The perceived skill level of a player, which increases with wins and decreases with losses. It starts at a value of 25 in unplayed playlists.
SkillSigma (Sigma)
The “uncertainty” value that decreases with each match, indicating the system’s confidence in a player’s skill. It starts at 8.333 in unplayed playlists and decreases as matches are played to a minimum of 2.5. A lower Sigma signifies greater certainty a player is at the correct skill level.
New players start with a SkillMu = 25, skill rating = 600 and SkillSigma = 8.333.
Matchmaking and Teams
In competitive Rocket League, players can choose between the following gamemodes:2 1v1, 2v2, 3v3.
The matchmaking system employs a weighted average approach, using methods like the root mean square (RMS), to assess each team’s skill and ensure fair matchups against opponents.3
party_matchmaking <-function(mmr_arr, n) { party_mmr <-round((sum(mmr_arr^n) /length(mmr_arr))^(1/n),0)return(paste0("Team's Skill Rating = ", party_mmr))}player_1_mmr =600player_2_mmr =700n =15# this is the value for competitive playliststeam_skill <-party_matchmaking(c(player_1_mmr, player_2_mmr), n)team_skill
[1] "Team's Skill Rating = 673"
When a player’s skill reaches a certain threshold, the matchmaking system adjusts by basing the team’s skill level entirely on the high skilled player, even if they are partied with lower-skilled teammates. This ensures that the match remains competitive despite skill imbalances within the team.
1v1 game 1: Player 1 vs Player 2 -> Loss
Results:
Player 1: skill_mu = 22.92 (Δ=-2.08), skill_sigma = 8.20 (Δ=-0.13)
Player 2: skill_mu = 27.08 (Δ=2.08), skill_sigma = 8.20 (Δ=-0.13)
1v1 game 2: Player 1 vs Player 2 -> Win
Results:
Player 1: skill_mu = 27.08 (Δ=2.08), skill_sigma = 8.20 (Δ=-0.13)
Player 2: skill_mu = 22.92 (Δ=-2.08), skill_sigma = 8.20 (Δ=-0.13)
1v1 game 3: Player 1 vs Player 2 -> Loss
Results:
Player 1: skill_mu = 22.92 (Δ=-2.08), skill_sigma = 8.20 (Δ=-0.13)
Player 2: skill_mu = 27.08 (Δ=2.08), skill_sigma = 8.20 (Δ=-0.13)
Footnotes
Reddit - How the Ranking System and Matchmaking works…↩︎
Competitive and casual matchmaking use different weighting systems; this discussion will focus on competitive modes.↩︎
Reddit - Parties: How they affect matchmaking MMR↩︎