I wish you would reconsider working on and fixing Fortnite clips.
l
lorentedford@gmail.com
In CS2, Allstar downloads the
.dem
file (via Valve API or Faceit match endpoints), uses an open-source parser (like democs
or manta
) to extract tick events, and queues the demo to headless CS2 game instances to record high-resolution camera angles.To achieve this exact cloud-render workflow in Fortnite, Allstar would need to adapt to Unreal Engine's replay architecture. Below are the technical specifications you can supply in your feature request.
---
### Suggested Details Text
Architecture: Replicating Allstar’s CS2 Pipeline for Fortnite
Allstar’s CS2 pipeline relies on two components:
tick/event parsing
and cloud headless rendering
. Replicating this for Fortnite requires targeting Unreal Engine's Local File Streamer (.replay
) format:1. Automated Demo Ingestion
* Unlike CS2's public match URLs, Fortnite
.replay
files reside locally on the client machine:%LOCALAPPDATA%\FortniteGame\Saved\Demos\
* The Allstar Desktop Companion should implement an
I/O FileSystemWatcher
to monitor this directory. When the game client releases the file lock after match end (typically 15–30 MB), the agent auto-uploads the binary stream to Allstar’s S3/GCS ingestion bucket.2. Fast-Path Event Parsing (Without Full NetField Decoding)
* In CS2, parsing tick-by-tick network data is heavy, but reading match headers and user events is fast. Fortnite’s
.replay
file layout functions identically:*
File Structure:
Replay Header $\rightarrow$ Checkpoints (World baseline snapshots compressed via Oodle) $\rightarrow$ Replay Chunks / Packets $\rightarrow$ Event Metadata Chunks
.*
Event Extraction:
Fortnite writes discrete, unencrypted event chunks containing user stats, player IDs, and the Kill Feed
(PlayerElimination
events) with millisecond timestamps and player GUIDs.*
Implementation:
Instead of spending compute decompressing Oodle network packets for the entire 20-minute match, Allstar can scan specifically for Event
chunk headers. If the user’s GUID matches the eliminator or downer, extract the timecode $(t)$ and register a highlight event at $[t - 10s, t + 5s]$.3. Headless Cloud Playback & Clip Rendering
* CS2 clips are recorded by launching the client with
-insecure -novid +playdemo
. Fortnite provides equivalent Unreal Engine command-line demo tools:* Running
FortniteClient-Win64-Shipping.exe -demoplay="<replay_name>" -demoscrub=<time_in_seconds> -demopause
allows automated seeking.* Virtual production / spectator cameras can be bound via standard Unreal console arguments or automation plugins, dumping frames via Unreal's Movie Render Queue / offscreen render target to FFmpeg.
4. Solving the "Engine Version Deprecation" Bottleneck
*
The Problem:
Epic deprecates .replay
files every bi-weekly game patch due to network protocol updates (NetworkVersion
mismatch).*
The Allstar Solution:
- Parse event chunks immediately upon upload (under 2 seconds).
- Queue the demo in the cloud render farm with priority before Tuesday scheduled patches.
- Archive client builds in containerized headless VMs so older replays can still be replayed against their corresponding engine version binaries.