ELO & Matchmaking
PvP arena uses an ELO rating system to track skill and match players of similar strength. Wins against stronger opponents yield large gains; losses to weaker ones result in big drops.
Starting Rating
Every player begins with a rating of 1000. Rating cannot drop below 0.
Expected Score
The expected score represents the probability that player A beats player B, based on their rating difference:
When both players have the same rating, expectedA = 0.5 (coin flip). A 400-point advantage gives roughly 91% expected win rate.
Rating Change
After each match, the winner’s and loser’s ratings are adjusted symmetrically:
The K-factor of 32 controls how much each match matters. A higher K-factor means faster rating swings.
Example Calculations
| Player A | Player B | Result | Expected | Delta | New Rating |
|---|---|---|---|---|---|
| 1000 | 1000 | A wins | 50.0% | +16 | 1016 |
| 1000 | 1000 | A loses | 50.0% | -16 | 984 |
| 1200 | 800 | A wins | 90.9% | +3 | 1203 |
| 1200 | 800 | A loses | 90.9% | -29 | 1171 |
| 800 | 1200 | A wins | 9.1% | +29 | 829 |
| 800 | 1200 | A loses | 9.1% | -3 | 797 |
| 1500 | 1000 | A wins | 94.7% | +2 | 1502 |
| 1500 | 1000 | A loses | 94.7% | -30 | 1470 |
Key insight: beating a 1200-rated player from 800 rating grants +29 points (an upset), while beating an 800-rated player from 1200 rating only grants +3 points (expected win).
Matchmaking Bracket
The arena ladder shows opponents within a 25% rating bracket of your current rating. At minimum, 10 opponents are always shown (expanding the bracket if necessary to fill the list).
Constants Reference
| Constant | Value | Description |
|---|---|---|
STARTING_RATING | 1000 | Initial ELO rating for all players |
K_FACTOR | 32 | Maximum rating change per match |
BRACKET_RANGE | 25% | Rating bracket width for matchmaking |
MIN_OPPONENTS_SHOWN | 10 | Minimum opponents displayed on the ladder |
COOLDOWN_HOURS | 6 | Hours before re-challenging the same opponent |