SkillAgentSearch skills...

UEExtractor

Extracts text from Unreal Engine: .pak or .ucas archive files to localize the game.

Install / Use

/learn @SolicenTEAM/UEExtractor
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Solicen.UEExtractor

English | Русский

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_1 that 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.
  1. 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.
  2. Place aes.txt to main game directory with one line as 32-character hex string.
    • Or provide his with argument --aes=<key>. Key must start with 0x.

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 .usmap file 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.
  1. Place the .usmap file in the main directory of the game (or a subdir), and the tool will find it automatically.
  2. 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 the Source value in the Key does not match. <br>The Source value from the past added as a Translation. (As example when exporting from UE4localizationsTool)
  • Otherwise, if it matches, then we write the value from column Translation to Translation.
  • 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.exe in command line to parse directory with arguments.

UEExtractor - Unreal Engine (Text) Extractor

  • You can simply drag and drop directory with Unreal resources onto UEExtractor.exe to parse directory and get <dir_name>.csv.
  • Or you can simple drag and drop CSV with locresCSV structure onto UEExtractor.exe to get .locres file.
  • 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.

Thanks:

  • Ambi for his original script and idea to research.
  • Saipan for help in researching the creation of a locres file.
  • FabianFG for CUE4Parse library and FModel code example.
View on GitHub
GitHub Stars45
CategoryDevelopment
Updated5d ago
Forks1

Languages

C#

Security Score

95/100

Audited on Mar 25, 2026

No findings