So without modding support, MW5 is way less modding friendly than MWO. Almost everything is stored in binary .uasset files, and homebrew mods seem to be installable only by file replacement (delete original file, add a new one), not file overriding (create a new folder, easy to remove).
PGI has announced modding support for MW5, however I am uncertain how far that modding support will go, and wanted to explore myself for a bit the file structures and edit-ability of what already exists. There are a few layers, but I have figured out setting up the client and substituting .dds textures.
Thanks to u/Arjohann for sharing how to extract the big pak file. The .pak can easily be extracted using QuickBMS, and the Unreal Tournament 4 script for that software.
After extraction, the original .pak file can be moved/removed, and the extracted files can be merged into the root folders MW5Mercs and Engine. MW5 will still run. The .uasset files inside can be viewed and modded.
The .uasset is still a largely unknown file type. Going through some samples with a hex editor (I like HxD), the files seem to consistently have in order :
-
A header.
-
Some file paths to related assets.
-
Some unknown bytes.
-
The actual asset, like the image in an image-uasset.
The actual asset within image-uassets are in the following format :
-
X bytes. A string. One of “PF_DXT1”, “PF_DXT5”, “PF_B8G8R8A8”, and probably others, indicating the type of image.
-
33 unknown bytes, image size might be in here.
-
X bytes, the image data.
-
28 unknown bytes.
Pilot images are stored as DXT5 .dds files. By creating my own DXT5 image of the same size (256×256), and copying its image data to the image data of the desired image-uasset, I was able to mod in my own pilot image.