Parsing Fortnite replays can be resource-intensive, especially for large matches or when processing multiple files. This guide covers techniques to optimize parsing performance through parse type selection, settings configuration, and advanced control methods.
// Fastest - only parse eventsvar reader = new ReplayReader();var replay = reader.ReadReplay(file, ParseType.EventsOnly);// Available data:var eliminations = replay.Eliminations;var stats = replay.Stats;var teamStats = replay.TeamStats;// NOT available:// - Player locations// - Inventory data// - Health tracking
// Very fast - events + basic game statevar reader = new ReplayReader();var replay = reader.ReadReplay(file, ParseType.Minimal);// Available data:var eliminations = replay.Eliminations;var players = replay.GameInformation.Players;var teams = replay.GameInformation.Teams;// Player names, IDs, placement available// Locations and inventory NOT available
// Moderate speed - events + full game statevar reader = new ReplayReader();var replay = reader.ReadReplay(file, ParseType.Normal);// Available data:var players = replay.GameInformation.Players;var locations = players.First().Locations;var inventory = players.First().CurrentInventory;// Most data available, good balance
// Slowest - everythingvar reader = new ReplayReader();var replay = reader.ReadReplay(file, ParseType.Full);// All data available// Use only when needed
For fine-grained control, use the SetParseType method to configure parsing for specific groups:
var reader = new ReplayReader();// Configure specific parsing groupsreader.SetParseType(ParsingGroup.PlayerPawn, ParseType.Normal);// Then read the replayvar replay = reader.ReadReplay(file, ParseType.Minimal);
var settings = new FortniteReplaySettings{ PlayerLocationType = LocationTypes.All, IgnoreHealth = true, IgnoreShots = true, IgnoreInventory = true, IgnoreFloorLoot = true, IgnoreContainers = true};var reader = new ReplayReader(null, settings);// Parse player pawns for locationsreader.SetParseType(ParsingGroup.PlayerPawn, ParseType.Normal);// Use minimal parse for everything elsevar replay = reader.ReadReplay(file, ParseType.Minimal);// Result: Fast parsing with location data
foreach (var file in replayFiles){ var reader = new ReplayReader(null, settings); var replay = reader.ReadReplay(file, ParseType.Minimal); // Extract needed data var data = ExtractEssentialData(replay); // Allow GC to collect replay replay = null; reader = null; // Process extracted data ProcessData(data);}