Overview
The FortniteReplaySettings class allows you to customize what data is extracted from replay files. Proper configuration can significantly improve parsing performance and reduce memory usage.
Creating Settings
Pass settings to the ReplayReader constructor:
using FortniteReplayReader ;
using FortniteReplayReader . Models ;
var settings = new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . All ,
LocationChangeDeltaMS = 0 ,
IgnoreHealth = false
};
var reader = new ReplayReader ( null , settings );
var replay = reader . ReadReplay ( "replay.replay" , ParseType . Full );
Configuration Properties
PlayerLocationType
Controls which player locations are tracked during parsing.
public LocationTypes PlayerLocationType { get ; set ; } = LocationTypes . All ;
Available Options:
Grabs all possible locations from every player in the match. PlayerLocationType = LocationTypes . All
Use Case: Full match analysis, creating heatmaps for all playersGrabs locations from replay owner and all teammates. PlayerLocationType = LocationTypes . Team
Use Case: Analyzing your teamβs performance and positioningOnly grabs locations from the replay owner. PlayerLocationType = LocationTypes . User
Use Case: Personal performance trackingGrabs no locations (significantly improves performance). PlayerLocationType = LocationTypes . None
Use Case: Only need events and stats, not movement data
Setting PlayerLocationType to None can improve parsing speed by 30-50% for large replays.
LocationChangeDeltaMS
Minimum time in milliseconds between saved location updates.
public int LocationChangeDeltaMS { get ; set ; } = 0 ;
0 : Capture all location updates (default)
> 0 : Only save locations at specified intervals
All Locations
Every Second
Every 5 Seconds
// Capture every location update
LocationChangeDeltaMS = 0
For tracking general player movement, 1000ms (1 second) intervals are usually sufficient and reduce data size significantly.
IgnoreHealth
Skips health and shield updates.
public bool IgnoreHealth { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreHealth = true // Don't track health changes
}
When to use:
You only need location/event data
Reduces parsing time for replays with frequent damage
IgnoreContainers
Skips container (chests, ammo boxes) data.
public bool IgnoreContainers { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreContainers = true // Don't track container interactions
}
IgnoreShots
Skips weapon shot and damage data.
public bool IgnoreShots { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreShots = true // Don't track shots fired
}
Enabling IgnoreShots means player.Shots and player.DamageTaken collections will be empty.
IgnoreInventory
Skips inventory tracking.
public bool IgnoreInventory { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreInventory = true // Don't track inventory changes
}
When to use:
Only need location/elimination data
Significant performance improvement
IgnoreFloorLoot
Skips floor loot (dropped items) tracking.
public bool IgnoreFloorLoot { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreFloorLoot = true // Don't track floor loot
}
Requires ParseType.Normal or higher to have any effect.
IgnoreWeaponSwitches
Skips tracking when players switch weapons.
public bool IgnoreWeaponSwitches { get ; set ; }
Example:
new FortniteReplaySettings
{
IgnoreWeaponSwitches = true // Don't track weapon switches
}
Configuration Presets
Here are common configuration presets for different use cases:
var settings = new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . None ,
IgnoreHealth = true ,
IgnoreContainers = true ,
IgnoreShots = true ,
IgnoreInventory = true ,
IgnoreFloorLoot = true ,
IgnoreWeaponSwitches = true
};
var reader = new ReplayReader ( null , settings );
var replay = reader . ReadReplay ( file , ParseType . Minimal );
Use Case: Only need eliminations and match stats
var settings = new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . User ,
LocationChangeDeltaMS = 1000 , // 1 second intervals
IgnoreFloorLoot = true ,
IgnoreContainers = true
};
var reader = new ReplayReader ( null , settings );
var replay = reader . ReadReplay ( file , ParseType . Full );
Use Case: Track your own performance and stats
var settings = new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . Team ,
LocationChangeDeltaMS = 500 ,
IgnoreFloorLoot = true
};
var reader = new ReplayReader ( null , settings );
var replay = reader . ReadReplay ( file , ParseType . Full );
Use Case: Analyze team positioning and coordination
var settings = new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . All ,
LocationChangeDeltaMS = 0 , // All locations
IgnoreHealth = false ,
IgnoreContainers = false ,
IgnoreShots = false ,
IgnoreInventory = false ,
IgnoreFloorLoot = false ,
IgnoreWeaponSwitches = false
};
var reader = new ReplayReader ( null , settings );
var replay = reader . ReadReplay ( file , ParseType . Full );
Use Case: Complete match analysis with all data
Hereβs the approximate performance impact of each setting:
Setting Performance Gain Data Lost PlayerLocationType = Noneπ High (30-50%) Player movement LocationChangeDeltaMS = 1000π Medium (15-25%) Some location precision IgnoreFloorLoot = trueπ Medium (10-20%) Floor loot tracking IgnoreInventory = trueπ Medium (10-15%) Inventory changes IgnoreShots = trueπΆ Low (5-10%) Shot data IgnoreHealth = trueπΆ Low (5-10%) Health updates IgnoreWeaponSwitches = trueπΆ Low (under 5%) Weapon switch timing IgnoreContainers = trueπΆ Low (under 5%) Container data
Example: ConsoleReader Configuration
The ConsoleReader example demonstrates a performance-focused configuration:
FortniteReplayReader.cs:32-35
var reader = new ReplayReader ( null , new FortniteReplaySettings
{
PlayerLocationType = LocationTypes . None ,
});
This configuration:
Skips all location tracking
Maximizes parsing speed
Still captures events and eliminations
Next Steps
Performance Optimization Learn more optimization techniques
Player Data Extract and work with player data