.replay file to a C3 Esports match, it goes through an automated pipeline that extracts scores, player identities, and detailed stats. This page explains how that pipeline works, what data is extracted, and what happens when things go wrong.
The replay pipeline
Step-by-step breakdown
1
Player uploads the file
A player or manager uploads the
.replay file on the match page game slot. The file is stored on C3 Esports’ servers.2
File forwarded to ballchasing.com
Immediately after storage, the platform sends the file to the ballchasing.com API. Ballchasing is a third-party Rocket League replay analysis service that specializes in replay parsing.The replay is uploaded to a C3 Esports-owned ballchasing group, so all league replays are organized in one place and accessible via the ballchasing web interface.
3
Ballchasing parses the file
Ballchasing reads the binary
.replay format, extracts all player data, scores, and game settings, and stores the parsed result. This typically takes 10–60 seconds.4
Webhook notification (primary path)
When parsing is complete, ballchasing sends a webhook (an HTTP POST) to the C3 Esports API. The platform receives the parsed data and stores it, then updates the replay status to
PARSED.5
Polling fallback (backup path)
If the webhook does not arrive (due to a network issue, ballchasing outage, or webhook misconfiguration), the platform’s cron job (
/api/cron/poll-replays, runs every 5 minutes) actively queries ballchasing for the parse status of all pending replays and retrieves the data on the next poll cycle.6
Data stored and displayed
Once parsed data is received, the match page updates to show the game scoreboard, per-player stats, and any flags (score mismatches, unknown players, etc.).
What data is extracted
From each parsed.replay file, C3 Esports extracts and stores:
How stats are displayed
After parsing, stats are visible in two places:- Match page — each game in the series has an expandable scoreboard showing all 6 players’ stats side-by-side.
- Player profile — aggregated season stats (totals across all parsed games) are shown on each player’s profile page.
Score verification
After parsing, the platform automatically compares the parsed score against the score submitted by the manager. If they do not match, a Score Mismatch flag is applied. A score mismatch can happen for legitimate reasons (wrong replay uploaded to the wrong game slot) or for concerning ones (submitted score was incorrect). Staff review all flagged games.Ballchasing.com access
All C3 Esports league replays uploaded through the platform are organized in a ballchasing group. The ballchasing links for individual replays are displayed on the match page, allowing staff, players, and anyone with the link to view the full parsed replay data on ballchasing.com directly.What happens when parsing fails
If parsing fails (the file is corrupted, truncated, or ballchasing cannot read it), the game slot shows aFAILED status. Staff or the uploading player can:
- Trigger a reparse of the same file (if the failure was transient)
- Upload a replacement replay file (if the original file was corrupted)
Privacy and data retention
Replay files uploaded to C3 Esports are:- Forwarded to ballchasing.com for parsing (ballchasing’s privacy policy applies)
- Stored on C3 Esports’ servers for the duration of the season
- Retained after season completion for historical record-keeping and dispute reference
