Overview
ScoreSaber Reloaded serves as an enhanced frontend and data aggregation layer for the official ScoreSaber platform. It consumes the ScoreSaber API to provide extended features like historical tracking, advanced statistics, and enhanced player profiles.
What is ScoreSaber?
ScoreSaber is the official ranked competitive platform for Beat Saber. It provides:
- Global and country-based player rankings
- Performance Points (PP) system for ranking players
- Ranked leaderboards for approved maps
- Player statistics and score history
- Ranking queue for map qualification
How SSR Integrates
ScoreSaber Reloaded integrates with ScoreSaber through a custom API service that handles rate limiting, caching, and proxy rotation for optimal performance.
Rate Limiting
The integration implements sophisticated rate limiting to respect ScoreSaber’s API limits:
From: backend/src/service/scoresaber-api.service.ts:50-65
Automatic Proxy Rotation
When rate limits are approached, the service automatically switches between proxy servers:
From: backend/src/service/scoresaber-api.service.ts:540-580
Data Synchronized
Player Data
ScoreSaber Reloaded fetches and caches comprehensive player information:
- Basic Profile: Name, avatar, country, rank, PP
- Statistics: Total scores, ranked play count, average accuracy
- Rankings: Global rank, country rank, rank history
- Badges: Player badges and achievements
- Bio: Custom player bio with formatting
From: backend/src/service/scoresaber-api.service.ts:168-182
Score Data
Player scores are continuously tracked and stored:
- Score value and accuracy
- Missed notes, bad cuts, bomb hits
- Modifiers used
- Performance Points earned
- Timestamp and leaderboard position
From: backend/src/service/scoresaber-api.service.ts:261-296
Leaderboard Data
ScoreSaber leaderboards are fetched with filtering options:
- Ranked/qualified/verified status
- Star difficulty filtering
- Category filtering
- Search functionality
- Leaderboard scores with country filtering
From: backend/src/service/scoresaber-api.service.ts:360-404
Ranking Queue
The ranking queue system tracks maps being considered for ranked status:
From: backend/src/service/scoresaber-api.service.ts:469-493
Caching Strategy
All ScoreSaber API responses are cached using Redis to minimize API calls:
From: backend/src/service/scoresaber-api.service.ts:97-134
Player data specifically is cached for 3 months:
From: backend/src/service/scoresaber.service.ts:25-183
Enhanced Features
SSR extends ScoreSaber data with additional features:
Historical Tracking
Player statistics are tracked over time to show rank changes, PP gains, and performance trends.
Statistic Changes
Daily, weekly, and monthly changes are calculated for tracked players:
From: backend/src/service/scoresaber.service.ts:115-117
Player Refresh
Players can manually trigger a profile refresh:
From: backend/src/service/scoresaber-api.service.ts:501-506
API Endpoints
The ScoreSaber integration uses the following base endpoints:
- API Base:
https://scoresaber.com/api
- Players:
/players, /player/:id/:type
- Scores:
/player/:id/scores
- Leaderboards:
/leaderboards, /leaderboard/by-id/:id/info
- Ranking Queue:
/ranking/requests/:query
From: backend/src/service/scoresaber-api.service.ts:23-48
Rate Limit Monitoring
The service monitors the x-ratelimit-remaining header to proactively manage rate limits:
From: backend/src/service/scoresaber-api.service.ts:112-119
Best Practices
Always use the provided ScoreSaberApiService instead of making direct API calls to ensure proper rate limiting and caching.
Use priority parameters for critical requests to ensure they’re processed even under high load.