02. Anatomy of a Modding Set Up - NellsRelo/OMD3-uSDK GitHub Wiki
Anatomy of a Modding Setup
While the uSDK is set up in the right format for creating OMD3 Mods and Maps, you'll want a distinct OMD3 Mods folder, with extracted assets available, and a place to store your completed mods.
Mapping the .pak files
Orcs Must Die 3’s assets are hidden inside .pak files, Unreal Engine’s native archive format. There is a basic .pak map, identifying which files are inside which .paks, to make for easy editing of just what you need.
Preparations
Before you get modding, there are a few things you’ll want to do first.
Set up your Folders
This is effectively done for you if you’re using the Starter Kit. The core of it, though, is that you’ll need a directory for Mods, Tools, and Unpacked Assets. Keeping things organized will save you a lot of time while modding.
Mods Folder
My Mods folder contains subfolders for each mod I’m working on - whether they’re to be released, or just experimental. They have an src\
Subfolder for the .uassets
I’m using in them, as well as Subfolders for any variations I want to make. The root folder has a readme, the .pak
file, and a .zip
file containing both of them.
The src\
folder’s folder structure includes the OMD\Content\
folders.
Tools Folder
The Tools folder contains all of the tools you need for modding, excluding Unreal Engine and your Image and/or 3D model editor of choice. Typically, this will consist of FModel, UnrealPak, UUU, and QuickBMS. You may have other tools you prefer to use, as well.
Assets Folder
The Assets folder contains all unpacked and extracted assets. I like to keep a copy of each version’s .exe file and the unpacked paks as well, but be mindful of your storage space. I have subfolders for the .paks
, the .exe
, the .uassets
, and the extracted assets, each of them containing a subfolder based on version.
Unpack the .Pak files
Now that you have your set-up ready, you’ll need to unpack the .pak
files. You could do this with UnrealPak, FModel, or Asset-Editor, but I generally prefer QuickBMS, as it’s quick and simple to get through each .pak
file in bulk.
FModel
Note: Fmodel can also extract certain files as Serialized .json
, using a similar process.
- Enter each
.pak
file individually - Right click the root folders(OMD, Engine if present)
- Select Export Folder’s Assets Data
- Wait for it to complete
- Repeat the above with every other default
.pak
file - Once complete, Move the contents of
Tools\Output\Saves
to your UAsset folder
QuickBMS
- Execute
QuickBMS.exe
- In the first prompt, navigate to your QuickBMS folder and select
unreal_tournament_4_0.4.26d_paks_only
- In the second prompt, navigate to your
.pak
folder and select every.pak
file - In the third prompt, select an output directory.
5.Wait for a bit, and it’ll unpack the
.uassets
into your output folder.
Asset-Editor
Note: This doesn’t appear to work
- Open Asset-Editor
- Go to
Functions->Extract Pak File
- In the first prompt, navigate to your .pak folder and select every .pak file
- In the second prompt, navigate to an output folder.
Extract content from the .UAssets
Next, we’ll need the assets. FModel can extract some, if not most of the assets, but for this, we’ll want UModel. Open UModel, select your UAssets folder, and check Override Game Detection, picking Unreal Engine 4, and Unreal Engine 4.26 Check Sound under Export-only types. Select OK, and in the “Choose a Package to open” window, right-click “All Packages” and export to your Extraction folder. I typically keep my Texture export as .tga
, and my Static Mesh as pskx
. Note that while the textures are now ready to be imported into the uSDK, the meshes will need to go through another process. This will be detailed later on.
Explore
TODO: Redo these links once wiki pages exist Look through your UAsset folder in Asset-Editor, and check out your models and textures in your extracted assets folder! There’s a wide chunk of things you can do to start off, whether you’re trying to Edit the Localization Files, Create New Textures and Models, or Make Data Changes to affect gameplay, attributes, and more.