Elo Module
Featuresβ
- Send configurable messages on ELO change
- Set starting ELO and per-kill adjustments
- Define rank thresholds with names and display styles
- Support BASE and USCF_CHESS ELO calculators with customizable multipliers and K-factors
Calculator Descriptionsβ
Base Calculatorβ
- Formula: eloChange = elo-per-kill * multiplier
- Use
difference-multipliersmap undercalculator.base-settingskeyed by ELO difference brackets. - Default multipliers:
| Elo difference | Multiplier |
|---|---|
| -500 | 2.0 |
| -300 | 1.5 |
| -200 | 1.25 |
| -100 | 1.1 |
| -50 | 1.05 |
| 0 | 1.0 |
| 50 | 0.95 |
| 100 | 0.9 |
| 200 | 0.75 |
| 300 | 0.5 |
USCF Chess Calculatorβ
- Calculates expected score:
expectedScore = 1 / (1 + 10^(difference / 400)), wheredifference = loserElo - winnerElo. - Determine K-factor based on winner's current ELO:
- ELO < 2100 β K = 32
- 2100 β€ ELO < 2400 β K = 24
- ELO β₯ 2400 β K = 16
- ELO change:
eloChange = max(1, round(K * (eloPerKill - expectedScore))), ensuring at least 1 point gained.
Configuration Referenceβ
| Key | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | true | Enable or disable the ELO module |
| send-elo-change-message | boolean | true | Send chat messages on ELO changes |
| starting-elo | number | 1000 | Initial ELO assigned to new players |
| elo-per-kill | number | 10 | Base ELO awarded per kill |
| ranks | object[] | [] | List of rank definitions (elo, identifier, name) |
| calculator.calculator-type | "BASE" | "USCF_CHESS" | BASE | ELO calculation method |
| calculator.base-settings.difference-multipliers | object (number:number) | {0: 1.0...} | Multipliers for BASE calculator based on ELO differences |
| calculator.uscf-settings | object | USCF_CHESS settings (K-factors thresholds) |
Exampleβ
elo.yml
enabled: true
send-elo-change-message: true
starting-elo: 1000
elo-per-kill: 10
ranks:
- elo: 0
identifier: unranked
name: "&7Unranked"
- elo: 1200
identifier: silver
name: "&fSilver"
- elo: 1500
identifier: silverI
name: "&fSilver II"
calculator:
calculator-type: BASE
base-settings:
difference-multipliers:
-500: -2.0
-300: 1.5
-200: 1.25
-100: 1.1
-50: 1.05
0: 1.0
50: 0.95
100: 0.9
200: 0.75
300: 0.5