UEExtractor
Extracts text from Unreal Engine: .pak or .ucas archive files to localize the game.
Install / Use
/learn @SolicenTEAM/UEExtractorREADME
Solicen.UEExtractor
Made with ❤️ for all translators and translation developers.
This a tool on .NET 8.0 to extract text from any game on Unreal Enigne (4.0 - 5.8).<br>Using CUE4Parse to work with Unreal Engine archives .pak and .utoc.
With it, you will receive a locresCSV file for localization of the game based on its resources.
[!IMPORTANT] Now available fully functional extraction
DataTable&StringTable.
LocresCSV Structure:
Will be imported or converted to .locres file.
- key = unique string of 32 characters.
- source = string from decoded text data
- Translation = null from unpacked resources
key,source,Translation
4A6FDB1549E45F6C5D8D739129686E2F,Default,
Importing a Translation column from CSV is possible via UE4localizationsTool.
Preparation:
For games running on Unreal Engine 4 before ZenLoader.
Find out if your game requires an AES key or not, as it may not be needed and the steps can be skipped.
[!TIP] Not necessarily, but you can specify the Unreal Engine version
-v=UE5_1that is used in the game.
- It will be found automatically, but priority will be given to the argument if you so wish.
- All UE version values come from CUE4Parse library, you can find out what you need through FModel.
- You will need to have an AES key to view the archives and retrieve data from them.
- You can find it online if you don't have it, or find it yourself from the resources.
- Place
aes.txtto main game directory with one line as 32-character hex string.- Or provide his with argument
--aes=<key>. Key must start with0x.
- Or provide his with argument
For games running on Unreal Engine 4-5 wtih ZenLoader.
First, follow the steps described above, and only then continue.
[!IMPORTANT] You need to get the
.usmapfile to access the game's resources and archives.
- As before, you can find this file on the Internet, if you don't have it.
- Check the nexusmods and modding forums for its availability, I'm sure you'll find it.
- Place the
.usmapfile in the main directory of the game (or a subdir), and the tool will find it automatically. - The preparation for the work is completed.
Merging CSV
[!NOTE]
It happens automatically when you re-run the extraction of the same game (in same folder).
- Very useful when the game is being updated and you need to get new lines and not lose the translation.
Exactly this work like that:
- If the row contains values in only 2 columns (
key&source) and theSourcevalue in theKeydoes not match. <br>TheSourcevalue from the past added as aTranslation. (As example when exporting from UE4localizationsTool)- Otherwise, if it matches, then we write the value from column
TranslationtoTranslation.- And of course, it adds lines if they are in the previous file, but not in the new one.
Using:
- Or download and drag & drop folder to a command tool to parse whole game directory and get
<dir_name>.csv. - Or use
UEExtractor.exein command line to parse directory with arguments.
UEExtractor - Unreal Engine (Text) Extractor
- You can simply drag and drop directory with Unreal resources onto
UEExtractor.exeto parse directory and get<dir_name>.csv. - Or you can simple drag and drop CSV with
locresCSVstructure ontoUEExtractor.exeto get.locresfile. - Or use more advanced options with CMD.
Extract LocresCSV from game:
UEExtractor.exe <dir_path> <output_csv>
Create .locres from csv file:
UEExtractor.exe <csv_path> <output_locres>
| Argument | Description |
|----------|-------------|
| -v=UE5.1, --version=Stalker2 | specify the Unreal Engine version.
| -a=[key], --aes=[key] | 32-character hex string as AES key.
| --skip-uexp, --skip-uasset | skip .uexp or .uasset files during the process.
| --locres | write .locres file after parsing.
| --underscore | do not skip line with underscores: ex_string
| --upper-upper | skip line with upperupper: EXAMPLE.
| --table-format | replace standard separator , symbol to \|
| --headmark | include header and footer in the csv.
| --autoexit | automatically exit after execution all processes.
| --invalid | include invalid data in the output.
| --qmarks | forcibly adds quotation marks between text strings.
| --hash | inculde hash of string for locres ex: [key][hash],[string].
| --picky | picky mode, displays more annoying information.
| --url | include path to file, example: [url][key],[string].
| --help | show help information.
Contributions:
- You can create your own fork of this project and contribute to its development.
- You can also contribute via the Issues and Pull Request tabs by suggesting your code changes. And further development of the project.
