Exception Types
The library defines several exception types to help diagnose parsing issues:FortniteReplayReader Exceptions
PlayerEliminationException
PlayerEliminationException
Namespace: Common Causes:
FortniteReplayReader.ExceptionsThrown when: Player elimination event parsing failsSource Location: FortniteReplayReader.cs:459- Corrupted elimination event data
- Version mismatch between replay and parser
- Incomplete event data due to network issues
Unreal.Core Exceptions
InvalidReplayException
InvalidReplayException
Namespace: Common Causes:
Unreal.Core.ExceptionsThrown when: The replay file is invalid, corrupted, or not a valid Unreal replay- File is not a replay file
- Replay header is corrupted
- Unsupported replay format
- Incomplete download/transfer
MalformedPacketException
MalformedPacketException
Namespace: Common Causes:
Unreal.Core.ExceptionsThrown when: A network packet in the replay is malformed or cannot be parsed- Corrupted packet data
- Unexpected packet structure
- Version incompatibility
- Network recording issues during original gameplay
UnknownEventException
UnknownEventException
Namespace: Common Causes:
Unreal.Core.ExceptionsThrown when: An unrecognized event type is encounteredNote: As of current version, this is logged as a warning but not thrown:- New event types in newer game versions
- Custom game modes with special events
- Beta features in replays
Debugging Techniques
Enable Logging
The library usesMicrosoft.Extensions.Logging. Enable detailed logging:
Monitor TotalPropertiesRead
Track parsing progress and identify stuck operations:Inspect Replay Metadata
Check basic replay information before full parsing:Branch and Version Detection
The parser automatically detects Fortnite version from the replay:Version detection is crucial for handling version-specific parsing logic throughout the codebase.
Common Errors and Solutions
Issue: “No data extracted from replay”
Symptoms: Replay parses without errors but contains no player data, eliminations, or game state. Causes:- Using
ParseType.EventsOnlywhen you need game state data - Incorrect
ParseTypefor the data you need - Settings filters blocking necessary data
Issue: “Parsing takes too long”
Symptoms: Replay parsing hangs or takes several minutes. Causes:- Using
ParseType.FullorParseType.Debugunnecessarily - Not filtering unwanted data with settings
- Very large replay file (long game duration)
Issue: “Elimination data missing or incomplete”
Symptoms:replay.Eliminations is empty or missing some eliminations.
Causes:
- Replay recorded from non-player perspective
- Pre-lobby eliminations not recorded
- Creative/LTM mode with different elimination tracking
- Version-specific parsing issues
Issue: “OutOfMemoryException during parsing”
Symptoms: Application crashes withOutOfMemoryException.
Causes:
- Large replay file with
ParseType.Full - Not disposing reader properly
- Processing multiple replays sequentially without cleanup
Issue: “Player locations/movements not tracked”
Symptoms: Player pawn data is null or incomplete. Causes:ParseType.Minimaldoesn’t process player pawns- Player pawn parsing requires
ParseType.Normalor higher (see FortniteReplayReader.cs:134-138)
Debugging Checklist
When encountering issues, verify:- Replay file is valid and not corrupted
- Using appropriate
ParseTypefor desired data - Settings are not filtering out needed data
- Library version is compatible with replay version
- Logging is enabled to see warnings/errors
- Replay is from a supported game mode
- File is fully downloaded (check file size)
- Encryption key is provided if replay is encrypted
Performance Profiling
Getting Help
If you encounter issues not covered here:- Enable Debug Logging: Capture full logs with
LogLevel.Debug - Check Version Compatibility: Verify replay version matches library support
- Isolate the Issue: Test with minimal
ParseTypefirst - Provide Details: Include replay metadata, version numbers, and full exception stack traces
- Report Issues: Submit detailed bug reports to the library maintainers
Related Resources
Custom Parsing
Learn about ParseType and parsing control
NetField Exports
Understand export types and processing