Unreal Engine Support
Guide to translating Unreal Engine 4 and 5 games with Mafkers.
Supported Versions
| Version | Status | Notes |
|---|---|---|
| UE 4.13 | ❌ Not supported | T3D text import removed |
| UE 4.18 | ❌ Not supported | IoStore not stable |
| UE 4.20-4.25 | ⚠️ Best effort | Legacy .pak format |
| UE 4.26 | ✅ Supported | IoStore stable, tool modern support |
| UE 4.27 | ✅ Supported | Final UE4 release |
| UE 5.0 | ✅ Supported | Stable |
| UE 5.1 | ❌ Not supported | UnrealPak broken (reddit reports) |
| UE 5.2 | ❌ Not supported | UnrealPak broken |
| UE 5.3 | ✅ Supported | Stable, UAssetAPI supports |
| UE 5.4 | ✅ Supported | locres mod loading issue resolved |
| UE 5.5 | ✅ Supported | UAssetGUI needs Mappings.usmap |
| UE 5.6 | ✅ Supported | Latest, FModel/CUE4Parse support |
| UE 5.7 | ✅ Supported | Latest |
How Mafkers Detects Unreal Engine
Mafkers detects UE by looking for:
.pakfiles with magic bytes5A 6F 12 9E(at footer).utoc/.ucasfiles (IoStore, UE 4.25+/5).uassetfiles (some games ship unpacked)
# Check .pak magic bytes
tail -c 4 game.pak | xxdWhere Strings Are Stored
.locres Files (Official Localization)
UE uses .locres binary files for localization. Path:
<Game>/Content/Localization/<Namespace>/<Culture>/<Namespace>.locres
Mafkers uses pylocres (MIT) to read/write .locres files.
DataTable Hardcoded Strings
Many indie UE games do NOT use .locres - they hardcode strings in DataTables (.uasset).
Detection: If .locres doesn’t exist OR string count is too low compared to UI text.
Solution: Mafkers parses .uasset binary directly, extracting FString patterns (length-prefixed UTF-16LE strings).
DataTable Fallback
If .locres modification doesn’t change UI text, the game likely uses DataTables. Mafkers automatically falls back to .uasset binary parsing.
Tools Used
- repak (Rust, Apache-2.0) - pack/unpack
.pakfiles - pylocres (Python, MIT) - read/write
.locresfiles - UAssetAPI (C#, MIT) - parse
.uassetbinary (on-demand install)
Common Issues
“UnrealPak broken” (UE 5.1/5.2)
UE 5.1 and 5.2 have a bug in UnrealPak. Solution: Mafkers uses repak instead, which handles all UE versions without issues.
UE5 Unversioned Properties
UE5 uses “unversioned properties” more aggressively. Some .uasset files need Mappings.usmap for proper parsing.
DataTable Hardcoded Strings
If .locres modification doesn’t change UI text, the game likely uses DataTables. Mafkers automatically falls back to .uasset binary parsing.