Ramblings

ULTRACOMFY's personal homepage.

User Tools

Site Tools


unreal_engine_extraction

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
unreal_engine_extraction [2026/04/14 18:06] ultracomfyunreal_engine_extraction [2026/04/15 14:42] (current) ultracomfy
Line 11: Line 11:
 ====== What You Need ====== ====== What You Need ======
 You are lucky! For the longest time, extracting assets from Unreal games was the biggest pain in the ass you could imagine. In fact, I collected an ungodly list of tools for entering Unreal games, but you only need two:  You are lucky! For the longest time, extracting assets from Unreal games was the biggest pain in the ass you could imagine. In fact, I collected an ungodly list of tools for entering Unreal games, but you only need two: 
-  - [[Tools#FModel|FModel]] [[https://github.com/4sval/FModel|GitHub]] +  - [[Tools#FModel|FModel]] [[https://github.com/4sval/FModel|Download from GitHub]] 
-  - [[Tools#jmap|jmap]] [[https://github.com/trumank/jmap|GitHub]] (You will probably be interested in the ''jmap_dumper-x86_64-pc-windows-msvc.zip'' file.)+  - [[Tools#jmap|jmap]] [[https://github.com/trumank/jmap|Download from GitHub]] (You will probably be interested in the ''jmap_dumper-x86_64-pc-windows-msvc.zip'' file.)
  
 Fmodel is quite amazing - for beginners, It does the job of dealing with ''.pak'' and ''.utoc'' archives. Back in the days, you had to do this with a funny script that you downloaded from a funny website, which then revealed .uasset files which you had to load into a different program that then let you extract files from there. Back then you needed QuickBMS, and then you needed UModel, and then you needed a way to figure out WWise. Fmodel does all of this for you! Fmodel is quite amazing - for beginners, It does the job of dealing with ''.pak'' and ''.utoc'' archives. Back in the days, you had to do this with a funny script that you downloaded from a funny website, which then revealed .uasset files which you had to load into a different program that then let you extract files from there. Back then you needed QuickBMS, and then you needed UModel, and then you needed a way to figure out WWise. Fmodel does all of this for you!
  
-====== Step 0 ======+====== Step 0 - (Optional) Make working copy of the game's files ======
 In many cases, it can be useful to make a copy of the game folders. This way you can work on the game files without touching the actual installation of the game, ie. you don't break anything. This is not strictly necessary but I like to do it to have a distinct "working directory" instead of working with the live game files. In many cases, it can be useful to make a copy of the game folders. This way you can work on the game files without touching the actual installation of the game, ie. you don't break anything. This is not strictly necessary but I like to do it to have a distinct "working directory" instead of working with the live game files.
  
-====== Step 1 ====== +====== Step 1 - Setting up FModel ====== 
-Your main weapon of choice will be FModel. The important step to working with Fmodel is configuring it correctly. On the top menuopen <wrap em>Settings</wrap>+Your main weapon of choice will be FModel. The important step to working with Fmodel is configuring it correctly. If it is your first time opening the application, it might greet you with a screen like this:\\ 
-{{ ::fmodel_settings.png?nolink&1000 }}\\ +{{ ::fmodel_directory_selector.png?nolink |}}\\ 
-Ignore the exact settings shown in the screenshot. This is to be used for orientation so that you know where to look at. For now, you should focus only on the strictly necessary settings. The strictly necessary settings here are marked with a star:+If it does not, click the <wrap em>Directory button</wrap> at the top of the application and then select <wrap em>Selector</wrap>
 + 
 +This is the Directory Selector screen of FModel. The first thing you need to <wrap em>set up with FModel is the directory that contains the game's ''.pak'' and/or ''.utoc'' files</wrap>. You can do this either by dragging and dropping that folder into the FModel modalor you can type out the path to the folder in the "Directory" field. If you drag & drop, the application will continue immediately. If you select a file path manually you will also have to set the "<wrap em>Detected Game</wrap>" and the UE Versions fieldsDetected Game is a drop down list which will probably give you the option between ''Fortnite'', ''Valorant'' and ''Paks''. Paks in this context means that you are purely pointing it to Pak files without any additional context. If you select Fortnite or Valorant, it will treat and read from your files like it is Fortnite or Valorant, which is not what you want unless your game is either Fortnite or Valorant. If it is not, <wrap em>select Paks</wrap> and move on to <wrap em>select the version of Unreal</wrap> in which the game runs. If you need help determining the version of Unreal that your game runs on, I provide extra help further below. 
 + 
 +Once you are set, hit OK. The program might ask you to reload. Let it do that. After the program restarts, you should open the Settings menu from the main ribbon. A screen that looks something like this should open: 
 +{{ ::fmodel_settings.png?nolink&1000 }} 
 +Ignore the exact settings shown in the screenshot. This is to be used for orientation so that you know where to look at. For now, you should focus only on the strictly necessary settings. The strictly necessary settings here are marked with a star. You are already familiar with some of them:
   * <wrap em>Output Directory</wrap> is the folder to which Fmodel will extract when you extract files. This can be anything, select something convenient.   * <wrap em>Output Directory</wrap> is the folder to which Fmodel will extract when you extract files. This can be anything, select something convenient.
-  * <wrap em>Archive Directory</wrap> is the folder containing the game files. This can be the files from the actual game folder, or it can be a copy of the game folder you placed elsewhere. Importantly, the selected folder must contain the ''.pak'' and ''.utoc'' files.+  * <wrap em>Archive Directory</wrap> is the folder containing the game files. You set this up in the Director Selector and it should show the file path here.
   * <wrap em>UE Version</wrap> is the version of Unreal Engine that was used during development of the game. See below for help on determining this.   * <wrap em>UE Version</wrap> is the version of Unreal Engine that was used during development of the game. See below for help on determining this.
   * <wrap em>Texture Platform</wrap> is a setting that determines how the game's textures will be read. Unreal Engine saves them differently based on platform, if you are extracting from the files of a Desktop game then you will want to select ''Desktop/Mobile''.   * <wrap em>Texture Platform</wrap> is a setting that determines how the game's textures will be read. Unreal Engine saves them differently based on platform, if you are extracting from the files of a Desktop game then you will want to select ''Desktop/Mobile''.
 +
 +Lastly, you should also <wrap em>toggle on "Convert Audio during Export (.wav)"</wrap> further down on the settings page. That way you will not have to deal with Wwise or other middleware dramas.
  
 <WRAP box> <WRAP box>
Line 34: Line 42:
 <wrap em>Alternative Approach:</wrap> Google. <wrap em>Alternative Approach:</wrap> Google.
  
-<wrap em>Emergency Approach:</wrap> Try around.+<wrap em>Emergency Approach:</wrap> Try around with different options.
  ++++  ++++
 </WRAP> </WRAP>
  
-====== Step 2 ======+====== Step 2 - Loading In ======
 During settings or after, FModel will potentially ask you to restart. Let it do that and you should now be looking at something like this: During settings or after, FModel will potentially ask you to restart. Let it do that and you should now be looking at something like this:
 {{ ::fmodel_overview.png?nolink&1000 |}} {{ ::fmodel_overview.png?nolink&1000 |}}
Line 47: Line 55:
 {{ ::fmodel_loaded_in.png?nolink&1000 |}} {{ ::fmodel_loaded_in.png?nolink&1000 |}}
  
-Congratulations, you are in! (You will have to do this every time you boot up FModel. It does not automatically load in the archives when opened.)+Congratulations, you are in! (You will have to do this every time you boot up FModel. It does not automatically load in the archives when opened.) You may or may not still have to do some extra things, though.
  
-<wrap hi>To use FModelyou will now be primarily interested on the right side of your screen that acts as an explorer for the game's filesUse it to navigate through the folder structuredouble click to open files and right click to see options for extracting the selected files. After opening a file it will often show preview - use the left button on the bottom right to get back to the file/folder view.</wrap>+====== Step 3 - (Probably Required) AES ====== 
 +In many casesUnreal Engine archives are encrypted with AES encryption. Like a ''.zip'' fileFModel can decrypt the files if you provide it with key. If you can't find the assets you're looking for, are missing assets or FModel prompts you for an AES key, the paks are encrypted and you will have to get the decyrption key, the "password" so to speak.
  
-====== Step 3 ======+To enter a key, <wrap em>click "Directory"</wrap> at top left of your screen, <wrap em>then "AES"</wrap>. However you find a key, this is where you will have to place it. Below are two ways for finding an AES key for your games. 
 + 
 +===== Step 3.A Finding Keys Online ===== 
 +Luckily, this key is always the same and once one user finds a key, they can share that key with everyone else so that you don't have to find it. <wrap em>CS.RIN.RU has [[https://cs.rin.ru/forum/viewtopic.php?t=100672|a thread]] where AES keys for some of the more popular games are listed</wrap>. You should click the link and potentially bookmark or note it down somewhere so you can find it again in the future. You might also be forced to create an account to actually be able to see the keys. If your game appears in the list, copy out the key. 
 + 
 +Alternatively, it is well possible that someone else on the internet found the key and posted it outside the cs.rin.ru thread. Google is your friend. 
 + 
 +===== Step 3.B Finding the Key Yourself ===== 
 +Try [[https://illusory.dev/aesdumpster/|this]]. 
 + 
 +====== Step 4 (Required for Unreal Engine 5 Games) .usmap and jmap ======
 This is a good start and will often already get you pretty far into the game's assets. Thanks to FModel, you don't even have to worry about WWise or other audio handlers, as FModel lets you play ''.wem'' and ''.bank'' files right inside the application and allows you to export them to ''.wav'' so that you don't even have to ever touch any WWise related stuff. This is a good start and will often already get you pretty far into the game's assets. Thanks to FModel, you don't even have to worry about WWise or other audio handlers, as FModel lets you play ''.wem'' and ''.bank'' files right inside the application and allows you to export them to ''.wav'' so that you don't even have to ever touch any WWise related stuff.
  
 However, in many cases you will be wanting to look into ''.uasset'' files, in which case the program will throw an error in the console below. It will mention "Unversioned Properties" or "Missing Mappings". These errors are related to how Unreal Indexes its files and is a bit involved to explain. In short, FModel needs a file that maps assets stored in files to.. something? I'm not 100% sure myself, but the importantly what you need now is a ''.usmap'' file. To do that you will need to use jmap. However, in many cases you will be wanting to look into ''.uasset'' files, in which case the program will throw an error in the console below. It will mention "Unversioned Properties" or "Missing Mappings". These errors are related to how Unreal Indexes its files and is a bit involved to explain. In short, FModel needs a file that maps assets stored in files to.. something? I'm not 100% sure myself, but the importantly what you need now is a ''.usmap'' file. To do that you will need to use jmap.
  
-===== Step 3.1 ===== +===== Step 4.1 ===== 
-After downloading jmap you should have a file called ''jmap_dumper.exe''. This is a command line program that lets you generate a ''.usmap'' file for your game. To do that, you will need to <wrap em>open command prompt and navigate to the folder that ''jmap_dumper.exe'' is in</wrap>+After downloading jmap you should have a file called ''jmap_dumper.exe''. This is a command line program that lets you generate a ''.usmap'' file for your game. To do that, you will need to <wrap em>open powershell and navigate to the folder that ''jmap_dumper.exe'' is in</wrap>
-{{ ::opening_cmd.png?nolink&1000 |}}+{{ ::opening_ps.png?nolink&1000 |}}
 <WRAP centeralign>Note that the folder is probably different for you. My jmap dumper is in ''D:\Programs\Extraction\Unreal Engine\jmap'' but it can be anywhere for you.\\ <WRAP centeralign>Note that the folder is probably different for you. My jmap dumper is in ''D:\Programs\Extraction\Unreal Engine\jmap'' but it can be anywhere for you.\\
-If you need help with navigating command prompt I could add this later.</WRAP>+<wrap hi>On Windows 11 you should be able to right-click into the window where jmap is in, and then select "Open in Terminal".</wrap>\\ 
 +However, depending on your settings it might open Command Prompt instead. jmap **requires** powershell.</WRAP>
  
 jmap only works when the game is running, as it pulls its data from the active game process. Therefore you will also need to <wrap em>start the game you're trying to extract from</wrap>. jmap only works when the game is running, as it pulls its data from the active game process. Therefore you will also need to <wrap em>start the game you're trying to extract from</wrap>.
  
-Nowlook at the following command:\\ +Every time you want to use jmapyou will need to enter the game's version as an environment variable. These variables are deleted between each session, so you will have to execute the following command every time:\\ 
-''jmap_dumper.exe pid <pid> output.usmap''+''<wrap em>$env:PATTERNSLEUTH_RES_EngineVersion="5.6"</wrap>''\\ 
 +Remember that in Step 1 you will have determined the version of Unreal in which the game runs. <wrap em>Instead of the 5.6, you should put in the version here that you determined.</wrap> If you hit Enter and the powershell just moves to the next line, you have done everything right. 
 + 
 +After setting the Unreal version for jmap, you are now ready to tell it what to actually do. For that, you will need the following command:\\ 
 +''<wrap em>.\jmap_dumper.exe --pid 12200 output.usmap</wrap>'' 
 + 
 +<wrap em>Enter the command with the correct PID into the powershell and hit enter.</wrap> After jmap completes it work you will see an ''output.usmap'' file in jmap's folder. This command uses the Process ID 12200 as an example, you will have to replace that number with the process ID that your game actually has. Note that a PID changes every time you run the game, so you have to find the PID yourself. If you need extra help for that, I have added extra information on PIDs below.\\
  
-Using this command in the command prompt will generate an ''output.usmap'' file in the jmap folder. However, you need to <wrap em>specify the Process ID ("pid")</wrap> so that jmap knows which process to target. Note that a PID changes every time you run the game, so you have to find the PID yourself. If you need extra help for that, I have added extra information on PIDs below.\\ 
-<wrap em>A full command could look like this: ''jmap_dumper.exe –pid 11528 output.usmap''. Enter it into the command prompt and hit enter.</wrap> After jmap completes it work you will see an ''output.usmap'' file in jmap's folder. 
 <WRAP box> <WRAP box>
 ++++ Additional Help: Determining a PID | ++++ Additional Help: Determining a PID |
Line 78: Line 102:
  ++++  ++++
 </WRAP> </WRAP>
-===== Step 3.2 =====+===== Step 4.2 =====
 This mappings file can now be used in FModel. Open the <wrap em>Settings</wrap> in FModel and toggle the <wrap em>switch "Local Mappings File (Drag & Drop" to on</wrap>. You can drag and drop your ''output.usmap'' file directly into the settings window, or you use the //Mapping File Path// option below the toggle to specify the directory. Click <wrap em>OK</wrap> and FModel will probably want to restart. Let it do that, and now when you <wrap em>load in</wrap> the game files (ie. [[Unreal Engine Extraction#Step 2|Step 2]]), it will do that using the mappings file you provided. From here you can now freely explore the game's archive and extract at your leisure. Feel free to click at every type of file and see what it does. To extract, right click and select what you need (for Audio, for example, you would want "Save Audio"). This mappings file can now be used in FModel. Open the <wrap em>Settings</wrap> in FModel and toggle the <wrap em>switch "Local Mappings File (Drag & Drop" to on</wrap>. You can drag and drop your ''output.usmap'' file directly into the settings window, or you use the //Mapping File Path// option below the toggle to specify the directory. Click <wrap em>OK</wrap> and FModel will probably want to restart. Let it do that, and now when you <wrap em>load in</wrap> the game files (ie. [[Unreal Engine Extraction#Step 2|Step 2]]), it will do that using the mappings file you provided. From here you can now freely explore the game's archive and extract at your leisure. Feel free to click at every type of file and see what it does. To extract, right click and select what you need (for Audio, for example, you would want "Save Audio").
  
 ====== Profit! ====== ====== Profit! ======
 That is all. With this knowledge you should now be able to work with Unreal Engine games and extract assets from them. Note that you will need additional software to work with more involved file types, like those used for 3D assets/meshes and others. I am not touching on them, though, as these are standardized pieces of software like [[Blender]] that, if your goal is to work with 3D assets, you probably already know how to work with. That is all. With this knowledge you should now be able to work with Unreal Engine games and extract assets from them. Note that you will need additional software to work with more involved file types, like those used for 3D assets/meshes and others. I am not touching on them, though, as these are standardized pieces of software like [[Blender]] that, if your goal is to work with 3D assets, you probably already know how to work with.
 +
 +<wrap hi>To use FModel, you will now be primarily interested on the right side of your screen that acts as an explorer for the game's files. Use it to navigate through the folder structure, double click to open files and right click to see options for extracting the selected files. After opening a file it will often show a preview - use the left button on the bottom right to get back to the file/folder view.</wrap>
unreal_engine_extraction.1776189979.txt.gz · Last modified: by ultracomfy

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki