Overview
The Olympiad is L2J Mobius’s competitive PvP system featuring an ELO-based rating system, seasonal competitions, and hero selection. Players compete in class-based or non-class battles to earn points, climb divisions, and potentially become Heroes.The Olympiad system uses a sophisticated ELO ranking algorithm with anti-feeding protections and soft season resets to maintain competitive integrity.
ELO Rating System
Formula
The ELO system updates ratings after each match using the standard formula:- K Factor: Volatility constant (default:
32) - ActualResult:
1.0for win,0.0for loss,0.5for draw - ExpectedResult: Calculated as:
Olympiad.java:14-21 (from ELO_ANALYSIS.md)
Division System
Players are ranked into 5 divisions based on their ELO rating:| Division | ELO Range | Color |
|---|---|---|
| Bronze | < 1100 | Gray (0x808080) |
| Silver | 1100-1299 | White (0xFFFFFF) |
| Gold | 1300-1499 | Yellow (0xFFFF00) |
| Platinum | 1500-1799 | Cyan (0x00FFFF) |
| Diamond | 1800+ | Magenta (0xFF00FF) |
Olympiad.java:154-176
Competition Mechanics
Match Types
Class-Based Matches
Class-Based Matches
- Requires minimum 5 participants of same class
- Entry cost: 3 Olympiad Points
- Fair matchmaking within class restrictions
- Higher rewards for class victories
Non-Class Matches
Non-Class Matches
- Requires minimum 9 participants total
- Entry cost: 5 Olympiad Points
- Cross-class competition
- ELO-based matchmaking
Registration Restrictions
Players cannot register if:- Not in base class (subclass prohibited)
- Inventory 80%+ full
- Less than 10 minutes until competition ends
- Already registered or participating in events
- Below minimum point requirements
Olympiad.java:531-553
Anti-Feeding Protection
Implementation:Season System
Season Duration
Seasons consist of multiple cycles (default: 3 cycles per season):- Each cycle lasts approximately 1 month
- Competition period alternates with validation period
- Weekly point bonuses during active cycles
Soft Reset Mechanics
At season end, ELO ratings undergo soft reset rather than full reset:SoftResetMultiplier: 0.5
Benefits:
- Maintains relative skill hierarchy
- Reduces extreme rating gaps
- Prevents unfair matchmaking at season start
Olympiad.java:1575-1582
Season Rewards
Rewards are distributed based on final division:| Division | Default Reward | Count |
|---|---|---|
| Bronze | Gate Pass (6656) | 100 |
| Silver | Gate Pass (6656) | 250 |
| Gold | Gate Pass (6656) | 500 |
| Platinum | Gate Pass (6656) | 1000 |
| Diamond | Gate Pass (6656) | 2000 |
Rewards are configurable via
config/Olympiad.ini season reward settings.Hero Selection
Eligibility Requirements
- Minimum 9 competitions completed
- At least 1 competition won
- Highest Olympiad points in class
Selection Process
- System queries top performer per class
- Ties broken by:
- Total competitions done (more is better)
- Competitions won (more is better)
- Heroes selected during validation period
- Special handling for Soul Hound classes (132/133 compete as one)
Olympiad.java:1197-1330
Configuration
Core Settings (config/Olympiad.ini)
Database Schema
olympiad_nobles table:Competition Schedule
Period Types
- Competition Period: Active battles (default: 1 month)
- Validation Period: Hero selection (default: 24 hours)
- Competition Hours: Daily battle window (default: 6 hours starting 18:00)
Weekly Bonuses
Players receive 3 Olympiad Points automatically each week during competition period:Olympiad.java:988-999
Thread Safety
- Prevented concurrent registration data loss
- Eliminated
ConcurrentModificationExceptionduring matchmaking - Ensured thread-safe participant list iteration
FAQ
How does ELO matchmaking work?
How does ELO matchmaking work?
The system attempts to match players with similar ELO ratings. If the difference exceeds 400 points, the match awards no ELO changes to prevent exploitation.
Can I lose my Hero status?
Can I lose my Hero status?
Yes, Hero status is recalculated each validation period. You must maintain top performance in your class to retain it.
What happens if I disconnect during a match?
What happens if I disconnect during a match?
Disconnection counts as a loss. Your opponent receives a win, and you lose ELO points accordingly.
How are season rewards calculated?
How are season rewards calculated?
Rewards are based on your final division at season end. The amount scales with division tier (Bronze → Diamond).
Related Systems
- Clan System - Clan reputation from Olympiad victories
- Seven Signs - Alternative competitive content
References
Olympiad.java- Core system implementationOlympiadConfig.java- Configuration loaderOlympiadGame.java- Match execution logicELO_ANALYSIS.md- Technical deep-dive on rating system