Skip to content

luk-gg/UnrealExporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnrealExporter

A CLI for extracting and datamining Unreal Engine game assets, powered by CUE4Parse.

Features

  • Regex paths for bulk extracting
  • Path exclusions to avoid crashing
  • Checkpoint system (only extract new/changed files)
  • Parallel-processing files
  • Apply mapping files
  • Supports 40+ file types seen in UE games

All games supported by FModel are supported, as both use CUE4Parse.

Setup

Download and run

After using FModel to determine which paths you wish you extract, download the latest release and run UnrealExporter.exe.

Manual setup (recommended)

  1. Download and install .NET SDK 9.0
  2. Clone the repo, including all submodules, with git clone https://github.com/whotookzakum/UnrealExporter --recursive
  3. In your terminal, run dotnet run --project UnrealExporter --

Example command:

dotnet run --project UnrealExporter -- pal.json -m MappingOverride.usmap --create-checkpoint --checkpoint latest

If you wish to build the project as a executable binary, use the following command:

dotnet publish UnrealExporter -c Release --self-contained true -p:PublishSingleFile=true -p:DebugType=None -p:DebugSymbols=false

Usage

UnrealExporter uses reusable config files stored in the configs folder (see example config). Run the program without any arguments to launch the interactive config builder.

For advanced usage, UnrealExporter also accepts command-line arguments — run with --help or see available options. Command-line arguments override config values when both are provided.

Checkpoints

Checkpoints allow you to extract only new/modified files and skip unchanged files by keeping track of file sizes (see example checkpoint), greatly increasing extraction speed. Checkpoints will always track all game files, regardless of what you extract/exclude. Thus it is safe to use an existing checkpoint and create a new checkpoint at the same time to repeatedly only extract changed files every time a game updates.

Tip

You can quickly create a checkpoint without extracting anything by using the flags --create-checkpoint --exclude "*"

Tip

CreateNewCheckpoint (bool) and CheckpointFileName (filename.json) can optionally be added to your config files (see the example config).

Note

When adding new ExportPaths to your config, make sure to run UnrealExporter without a checkpoint so the paths you just added will be exported. Otherwise, those paths will not be exported until their contents change.

Helpful resources

AES Keys:

Mapping files:

Get your own mapping file with UE4SS

  1. Download the latest release of UE4SS and extract the files to the same location as your game's -Win64-Shipping.exe file.
  2. Modify the following sections in UE4SS-settings.ini
[Debug]
+ GuiConsoleEnabled = 1
+ GuiConsoleVisible = 1
...
+ GraphicsAPI = dx11
  1. Launch the game.
  2. In the UE4SS GUI, click on the Dumper tab and output the usmap file. It'll be in the same location (.../Binaries/Win64/Mappings.usmap).
  3. Copy or move the .usmap file to UnrealExporter's mappings folder
  4. Update your config to match the file name of your mappings file, i.e. Palworld.usmap

The exporter should now be able to detect the game files.

About

Batch file exporter for Unreal Engine games.

Topics

Resources

License

Stars

44 stars

Watchers

1 watching

Forks

Contributors

Languages