Extracting Game Files
Having access to the model and texture files used by Coffee Stain can be a valuable resource for creating content for your own mods. This page contains instructions on how to view and extract various game assets.
As a reminder, redistributing these assets should not be done without permission, as they are copyrighted content of Coffee Stain Studios.
If you’re just looking to re-use the exact same icon, mesh etc. as something in the base game for your mod, you should check out the Reusing Game Files page instead. |
FModel
FModel is a tool that can be used to view and extract game assets. Documentation for FModel is available on its Github Wiki. This section will cover how to configure FModel to read Satisfactory files.
Unreal Engine 5 introduced changes in how assets are stored in pak files,
meaning that you will need to provide FModel with extra information so it can read the data correctly.
The required files can be found in your game install directory at
/CommunityResources/FactoryGame.usmap
and /CommunityResources/CustomVersions.json
.
Add Undetected Game
The first time you open FModel you will be presented with a Directory Selector.
If you have already opened FModel in the past, you’ll be opened to another window,
so you can bring the selector up again via Directory
> Selector
.
Under the "Add Undetected Game" heading, click the two-arrows icon,
enter Satisfactory
as the "Name",
and enter your game install directory as the "Directory"
(for example, C:\EpicGamesGames\SatisfactoryExperimental
).
Next, press the blue Plus button (NOT the OK button!) to add the game to the Detected Game dropdown,
which should automatically select it.
After confirming that the game is selected, press the OK
button.
The program should launch and display FactoryGame-Windows.pak
in the Archives tab list,
along with the paks of any other mods you may have installed.
If it opens another game instead,
return to the directory selector and review the above steps.
Specify Custom Version and Mapping
Before you can view any files you must specify the mapping information.
Navigate to Settings
> General
.
In the "UE Versions" dropdown, select GAME_UE5_2 (536870944)
,
then press the Custom Versions
button in the "Version Configuration" row.
Delete the text contents of the popup window that appears
and replace it with the contents of the CustomVersions.json
file,
then press OK
to save changes.
Back on the Settings screen, check the box for "Local Mapping File"
and then enter the full path to your FactoryGame.usmap
file
(for example, C:\EpicGamesGames\SatisfactoryExperimental\CommunityResources\FactoryGame.usmap
).
Press OK
to close the settings prompt,
which will open another prompt asking you to restart FModel - press OK
.
Specify Model Export Settings
After specifying FModel’s Custom Version and Mapping for Satisfactory you will want change model export settings so it’s easier to work with exported results.
To do so, return to the Settings menu and select Models
on the left side.
From here there are several fields to modify in order to properly export models for use with modeling software such as Blender:
-
Model Export Directory
- This can be the same or different from the output directory you chose in the previous steps. -
Mesh Format
- Similarly to UModel, you will want to selectglTF 2.0
as your format -
Level of Detail Format
- Allows you to select how many LODs (Level of Distance meshes) of the model to export. -
Texture Format
- Set to PNG so textures will be exported to a lossless format that supports transparency.
Any other changes made are at user discretion, and dependent on level of knowledge. |
UModel
UModel is another tool that can be used to view and extract game assets.
However, at the time of writing, it does not currently have support for Unreal Engine 5 (Update 8 and beyond). As such, FModel should be used instead. The following instructions are left here for reference when working with past versions.
The tool UModel
can be used to view game pak file content,
and offers options for exporting meshes, skeletons, textures, etc. for use in other programs.
Tutorials for using UModel are plentiful online,
and a quick search can help you export for the modeling software of your choice. Make sure to select Unreal Engine version 4.26 when opening Satisfactory pak files. If you don’t see 4.26 as an option, you are running an older version of UModel
and you should download it again from the link above. You can find a brief tutorial on how to track down an asset for export on the
Reusing Game Files page. Once you have found the asset you want to export, open it in UModel’s UE Viewer
and use Note that not all of the content you can extract in this manner is directly useful.
For example, directly exporting an
Outdated directions for using UModel:
Tools
→ Export Current Object
and you will be presented with
some options for export.
We suggest exporting as Static Meshes as glTF 2.0
so that software such as Blender can open them easily.FGItemDescriptor
is not really helpful.
Extracting Specific Models or Textures
If you’re looking to use parts of base game machines such as item and fluid ports, power connectors, or more, consider taking a look at AngryBeaver’s ModelingTools. |
This section explains how to use FModel to extract specific static meshes, skeletal meshes, and textures. Make sure you have set up FModel using the directions above before continuing.
The FModel Documentation explains its various UI elements and how to navigate through the pak file.
To test your settings, select the FactoryGame pak in the Archives tab,
which will take you to the Folders tab,
then navigate to
FactoryGame/Content/FactoryGame/Resource/Parts/AIlimiter/Textures
and attempt to open the TX_AiLimiter_BC.uasset
file.
This will take you to the Packages tab, and will open a two-pane display with text on the left and an image on the right.
To export a file, such as this texture, right click it in the Packages tab’s list
and select the relevant option, in this case Save Texture
.
A message "[INF] Successfully saved TX_AiLimiter_BC.png" should appear in the log at the bottom of the window.
This will export the file to your Output directory, which is configured in the Settings
> General
menu.
You can control what file format assets will be exported in via the Settings
> Models
menu.
You can click on the text TX_AiLimiter_BC.png
in the log to open your system file browser to the containing folder.
Opening a mesh asset, such as
FactoryGame/Content/FactoryGame/Equipment/JetPack/Mesh/SK_Jetpack_01.uasset
,
will cause a 3D Viewer window to appear.
Extracting Sounds/Music
This section explains how to use FModel to extract sound files. Make sure you have set up FModel using the directions above before continuing.
Because Satisfactory uses the Wwise sound system, game sound files are stored in a manner different from many other Unreal Engine games.
FModel can be used to extract sound files to the WAV format via its Audio Player.
Unfortunately, Wwise sound files viewed in this manner are not logically organized and do not have "nice" names, meaning that finding the sound you want through this system involves digging around through hundreds of files. Furthermore, the sound files are stored in their unmixed forms, meaning that the sound is lacking additional audio effects that are applied real-time in-game.
Thankfully, another tool exists to help with this problem. wwiser is capable of viewing data in Wwise bnk files, allowing you to connect a Wwise sound event with a human-readable-name to the sound files it references.
Locating the Bnk File
Bnk files contain information about what sound files are used by the game when a sound event is triggered. We can extract this file and use it in wwiser to find the sound files we care about.
Wwise audio event names are human-readable and can be found in subfolders of the pak’s
FactoryGame/Content/WwiseAudio/Event/
folder.
Using FModel’s Package Search functionality is beneficial here.
Once you have found the bnk you want to extract
(for example, FactoryGame/Content/WwiseAudio/Event/19/Play_EQ_JetPack_Activate.bnk
)
right click on it and select Export Raw Data (.uasset)
,
which will export the bnk file despite the tooltip option claiming it will be a uasset.
You can click on the text
(ex. Play_EQ_JetPack_Activate.bnk
)
in the log to open your system file browser to the containing folder.
Extracting sourceIDs with wwiser
You will need Python installed to utilize wwiser. Python 3.8.10 is known to work, and pyenv is the suggested method of install.
Download the latest copy of wwiser from its releases page.
You’ll want both wwiser.pyz
and wwnames.db3
Use a zip extracting program of your choice to extract the files from wwiser.pyz
and place the wwnames.db3
file in the same directory as the extracted files.
To open the wwiser interface, run python .\wwiser.py
in a terminal in that folder.
Next, select Load banks…
and select the bnk file you extracted earlier.
After the file loads, select Generate TXTP
which will create a folder in the same directory as the bnk file
containing a txtp file which can be opened with a text editor.
(ex. Play_EQ_JetPack_Activate {s} {m}.txtp
)
If the bnk is linked to any sound files,
their sourceID numbers will be displayed at the top of the file
(ex. wem/633850317.wem
has the sourceID number 633850317
)
along with additional audio information.
Take note of the sourceIDs of the sound file you want to extract, as you will likely need to review a few sounds to find the exact one you’re looking for.
Extracting Sound Files
Now that we have a sourceID, we can use FModel to extract the sound file.
All game audio can be found in subfolders of the pak’s FactoryGame/Content/WwiseAudio/Media/
folder.
First, locate the sound file via its sourceID, which will be its package file name. Using FModel’s Package Search functionality is beneficial here.
To extract a sound file, first open its Package in the main window, which will cause an Audio Player window to appear. After optionally previewing the sound file in the player, right click on it in the playlist and select Save, prompting a system dialog to select a save location.
Generating a Complete Starter Project
The Starter Project provided on the SML releases page excludes game models, textures, etc. for copyright and download size reasons. In their place, the Starter Project includes empty "placeholder" assets that, at runtime, will be resolved into the correct assets if you were to reference them, or simply excludes the asset from the project (which is the case for many textures).
It is possible to create a personal version of the Starter Project that includes most of these base game files accessible from within the editor. This version of the project would include models, textures, and other resources instead of their placeholder versions, allowing you to view them in-editor.
Generating this special project file takes a significant amount of time and additional disk space. If you’d like to do this, check out the page on the Asset Toolkit.