C# parser for VALORANT replay files (.vrf).
Note: This project is early in development and API behaviour is likely to change in the future.
class TestReplayEventSink : IReplayEventSink
{
public void Emit(ReplayEvent replayEvent)
{
switch (replayEvent)
{
case ActorSpawned spawned:
Console.WriteLine("Actor spawned");
break;
case ActorClosed closed:
Console.WriteLine("Actor destroyed");
break;
case ExportGroupReceived exportGroup:
Console.WriteLine("Export group received");
break;
case RpcReceived rpc:
Console.WriteLine("RPC received");
break;
case RemoteCharacterMovementReceived movement:
Console.WriteLine("Player movement received");
break;
}
}
}
using var file = File.OpenRead("path/to/replay.vrf");
using var archive = new FBinaryArchive(file);
ValorantReplayReader reader = ValorantReplayReader.CreateDefault(
loggerFactory,
new TestReplayEventSink(),
ParseProfile.Default); // Default behaviour: Parse everything
reader.Read(archive);| Area | Status |
|---|---|
| Player Movement | ✔ |
| Agents | ✔ |
| Abilities | 🚧 |
| Gunplay | ✔ |
| Game State | ❌ |
| World State | ❌ |
| Stable public API | ❌ |
Replay.Models: shared models, parse results, constants, context contracts, and parser errors.Replay.Encoding: byte/bit archives,FBinaryArchive, payload transforms and oodle decompressionReplay.Unreal: replay-info, chunk scanning, replay header parsing, and the parsing pipeline used for VALORANT replays.Replay.Valorant: VALORANT models (export groups, RPCs, and ClassNetCaches).CliReader: minimal CLI/demo reader.*.Tests: NUnit test projects.
- .NET 10 SDK
dotnet build "ValorantReplayParser.sln"
dotnet test "ValorantReplayParser.sln"Log decoded replay activity and a parse summary:
dotnet run --project "src\CliReader\CliReader.csproj" -- log "C:\path\to\replay.vrf"Export replay events and movement as JSON:
dotnet run --project "src\CliReader\CliReader.csproj" -- export "C:\path\to\replay.vrf" --output "C:\path\to\export"Show the full command or subcommand help:
dotnet run --project "src\CliReader\CliReader.csproj" -- --help
dotnet run --project "src\CliReader\CliReader.csproj" -- export --help- To the folks from FortniteReplayDecompressor for their amazing work and documentation of the replay system
- GPT 5.5 for reverse engineering VALORANT payload transformation & movement encoding
This project is an independent, community-developed tool and is not affiliated with, endorsed by, sponsored by, or approved by Riot Games. VALORANT, Riot Games, and all related trademarks are the property of Riot Games, Inc.