Tip: there are multiple versions of this guide, covering different approaches. See the side bar for others.
In this guide we’ll be retexturing Snake’s bionic arm in Metal Gear Solid V: The Phantom Pain from its original red/black to all dark, to suit various black outfit retextures (such as this).
There are a few different ways to retexture game files in MGSV and this guide covers an approach that replaces the texture files from the game’s PFTXS texture archive. Similar steps can also be used for modding other textures.
Pros and cons of this approach
Benefits:
Downsides:
While it’s possible to alternatively package only the modded texture files in a modded vanilla PFTXS what happens if doing so is all other vanilla textures that ordinarily are included are prevented from rendering as quickly.
Let’s get started!
Tip: for those unfamiliar with downloading programs from Github just download the topmost file in the linked pages, with the package/cube icon.
Show steps
Unzip/install the other required tools each to their own directory. Most of the the tools are portable so can be placed anywhere on the drive. SnakeBite is the only tool that comes with an installer.
In my case I’ve chosen to place them all in C:\Modding\MGSV\Tools
.
Next up, note where the game is installed and if you haven’t already, set up SnakeBite mod manager.
It’s also recommended to show all file extensions in Windows, so different filetypes can be distinguished easily.
To get to the necessary files we first have to unpack the game’s data files.
Check out the steps here then return back.
With the files unpacked we can now identify which we’ll need for modding the bionic arm.
Brief explainer about how the game uses PFTXS archives
The parent section explains this but to recap: the game uses PFTXS archives to store texture metadata files (.ftex
) and the lowest resolution versions of textures (.1.ftexs
files).
This is so when the model first loads on screen only the fastest textures are loaded immediately (the lowest resolution mipmaps) to avoid texture flickering/delays. Then the game will search outside the PFTXS for ‘loose’ (standalone) textures (the higher resolution variants, like .2.ftex
and .3.ftexs
).
There can sometimes be multiple PFTXS archives the game uses to store copies of these metadata/low-res texture files. With Snake’s bionic arm there are actually 3 PFTXS files, however we’ll only be modding the main one for simplicity.
These are the locations of the original texture files we’ll be dealing with, within the unpacked game directory:
Assets\tpp\pack\player\fova\plfova_sna0_arm0_v00_pftxs\Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.ftex
Assets\tpp\pack\player\fova\plfova_sna0_arm0_v00_pftxs\Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.1.ftexs
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.2.ftexs
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.3.ftexs
As you can see the first two listed are within a PFTXS that Archive Unpacker auto unpacked earlier (when unpacked a
.pftxs
file becomes a_pftxs
directory). While the last two are the higher resolution mipmaps.
In addition to those specific texture files that we’ll be making copies of to mod we also will need the entire plfova_sna0_arm0_v00_pftxs
parent directory listed above for packing our modded PFTXS later, just to keep in mind.
Our final mod will have two directory structures within the same parent directory:
Assets\tpp\pack\player\fova
Assets\tpp\chara\sna\Pictures
The first path is where we’ll be placing our final packed .pftxs
archive, while the second path is where the loose .2.ftex
and .3.ftex
texture files will go.
So let’s create them and also copy in the relevant directory/files. Follow either the text steps or the video below.
Show steps
Make some new directory on your computer where you’d like your mod project to be. Eg:
C:\Users\Username\Bionic arm mod
Modded
.Modded
and select File Explorer’s path addressbar (the textbox to the left of the searchbox).cmd
and press Enter. This will open a command line at the current location.Copy the following command then paste it in the CMD window by right-clicking in the window once:
mkdir "Assets\tpp\pack\player\fova"
Next do the same but for the following command:
mkdir "Assets\tpp\chara\sna\Pictures"
Done! Now we have both required directory paths in the Modded
directory.
Lastly copy in the following:
Assets\tpp\pack\player\fova\plfova_sna0_arm0_v00_pftxs
directory from the original unpacked game files to the Modded\Assets\tpp\pack\player\fova
directory we just created.
plfova_sna0_arm0_v00_pftxs
directory itself to our new fova
directory within Modded
.Modded\Assets\tpp\pack\player\fova\plfova_sna0_arm0_v00_pftxs
sna0_arm0_def_bsm.2.ftexs
and sna0_arm0_def_bsm.3.ftexs
from the original game files (as listed in the paths from the prior section) to Modded\Assets\tpp\chara\sna\Pictures
.Video
Important things to know about paths
Wherever you decide to have your Modded
directory just remember to not place them too deeply in the drive, since Windows File Explorer still has a ~260 character path limit and we want to avoid exceeding that length to avoid issues.
C:\Users\Username\Bionic arm mod\Modded
would be a decent path length.MGSV is case-sensitive with its directories and filenames. So assets
is different from Assets
.
Obviously the key part of any retexture mod.
Before following the linked steps below first create a temporary directory somewhere and copy the following files from the original unpacked game files to it:
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.1.ftexs
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.2.ftexs
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.3.ftexs
Assets\tpp\chara\sna\Pictures\sna0_arm0_def_bsm.ftex
Video
Then check out the steps here and return back.
Now that we have our modded texture file converted back to .ftex
and .ftexs
files we can place them in the Modded
directories we created earlier.
Follow the text steps or check out the video.
Show steps
For the sna0_arm0_def_bsm.ftex
and sna0_arm0_def_bsm.1.ftexs
files copy them to the following path and overwrite the versions of the files that exist there currently:
Modded\Assets\tpp\pack\player\fova\plfova_sna0_arm0_v00_pftxs\Assets\tpp\chara\sna\Pictures
While for the sna0_arm0_def_bsm.2.ftexs
and sna0_arm0_def_bsm.3.ftexs
files copy them to the following path:
Modded\Assets\tpp\chara\sna\Pictures
These are the higher resolution versions of our texture.
Modded\Assets\tpp\pack\player\fova
directory and drag the entire directory onto AutoPftxsTool.exe
.
This will generate the final PFTXS packaged archive that we need. You’ll see a
.pftxs
file created beside the directory.
plfova_sna0_arm0_v00_pftxs
, leaving just the plfova_sna0_arm0_v00.pftxs
file we generated using AutoPftxsTool.Video
We’re finally ready to package everything for an installable mod!
The mod is almost complete. We just need to package it into a SnakeBite archive so it can be easily installed and shared.
Check out the steps here then return back.
If in the future you’d like to create some new retexture mod based on the same base texture then you can:
plfova_sna0_arm0_v00.pftxs
you modded by dragging it onto AutoPftxsTool.exe
. This will create an unpacked directory beside it.
plfova_sna0_arm0_v00.pftxs
.Generate a new DDS retexture file then convert it to FTEX using FtexTool.
Follow the steps from the above section for copying and overwriting the various sna0_arm0_def_bsm
FTEXS/FTEXS files you’ve newly modded.
Below is the SnakeBite packaged mod using the steps from this version of the guide. For reference.