Skip to main content

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.