Tools You Will Need
- EternalResourceExtractor by PowerBall253 - Download
It is essential that you extract all of the game’s files when working on skins as doing so will allow you to see all of the true file extensions for texture files in the game’s stream database (more on this later), have access to all decl files of all kinds, and be able to see any and every file path to get a greater understanding of where everything is located, which will save you hours of time down the road.
- VEGA by DTZxPorter - Download
This is needed to extract both textures (for simpler mods) and models (for more complex ones).
- Photoshop - Buy / GIMP - Download
You can primarily edit just the texture images if you choose, but even if you are doing more advanced work, you will need to modify and export normal maps through either of these programs before they will work in game.
- Blender (optional) - App Download or Steam Download
If you are going to modify normal maps, you will need to properly ‘bake’ them in blender before injecting them back into the game. Not doing so will cause them to break the lighting and not function properly.
- Substance Painter (optional) - Buy
To customize skins at maximum potential, Substance Painter is the route to go for sure. However, it can be expensive, so it will not be essential for making texture mods at base.
- Auto Heckin’ Texture Converter by PowerBall253 - Download
All texture files will need to be converted to .TGA with this tool before they can be injected. Self explanatory.
BEFORE GOING ANY FURTHER: Make sure you have uninstalled all mods by deleting them all from your Mods folder and then verifying the integrity of your game files in order to restore them to their vanilla forms. If you do not, then Eternal Extractor will extract the modded versions of any and all files injected instead of their vanilla versions, which is what you will need.
Extract the files from the Eternal Extractor zip file directly to your DOOMEternal root directory and run ‘Eternal Extractor.bat.’ Specify an output directory when prompted and it will extract every game file where you want. Done! Just know that the total file size of the files extracted will be identical to the size of your DOOMEternal installation directory and make sure enough disk space is available.
Extract everything from the VEGA zip file also into your DOOMEternal root directory for the sake of organization. From here, you will need to know a few important folder paths for finding resource libraries to extract from. The most common ones will be gameresources, gameresources_patch1, gameresources_patch2, and warehouse. There are located in this folder path:
Nice and simple. However, if you need to extract files from individual mission libraries, that will be a little more complicated. Those are located here:
There won’t be many reasons to do this simply for texture modding, but it’s good to know anyway.
Next, you should configure VEGA appropriately. Click on the Options button to set your export preferences. Make sure that VEGA is always looking for just Images and Models. Nothing else will be relevant. If you are working only in GIMP or Photoshop, you can select the DDS image format. You can edit DDS images directly in both apps and since you will eventually be converting DDS images to TGA for injection, doing so will save time. If you are working in Substance Painter, export them as PNG always.
Finally, you will need to be able to know what skin you’re looking for. Files for weapon skins are in folders with keyword identiications, such as “gold” or “astro.” However, all Slayer and Battlemode demon skins are identified by set number.
Slayer textures, regardless of resources library, will be in the following directories:
Weapons textures, regardless of resources library, will be in the following directory:
art/weapons/[weapon name]/skins/[skin name]
All base campaign demon textures are located in:
The overwhelming majority of skins are located in warehouse.resources, but there are still several that you may want to work with located throughout the three gameresources libraries, which is why running the Eternal Extractor will make it much easier for you to find what you’re looking for. Make sure to download the text document from #resources that details all the set numbers before continuing (insert link here). Once extracted, VEGA will put all image files in the exported_files/images folder and all models in the exported_files/models folder. Now, let’s go into a little more detail for each type of skin.
For Slayer skins, you will need a total of three sets of textures:
- All textures with _hq in their name from the appropriate folder.
- All textures without _hq in their name from the same folder.
- All 1st person textures from the appropriate doomslayer_1p set folder.
The textures with and without _hq in their name will be visually identical, but different in purpose. HQ textures are used specifically for cut scenes, whereas the corresponding textures without _hq in their names are used for Photo Mode. Both sets should be replaced.
The 1st person textures are, obviously, used in-game from the first person view while you play. On base Slayer-style skins, they will all appear visually different (unique UV wrapping) and will need to be modified separately. For certain skins, such as the Cultist Slayer or Maykr and their variants, most of these files will be identical to the others, but some will still need to be modified separately in order to have a complete mod.
The model files for the 3rd person/cut scene textures of slayer skins are obvious. They will always be named doomslayer_cine_[set number]. You can ignore the _3p variant as it’s basically a redundant version of the same model but with less detail. However, the 1st person model is a bit different and confusing. All 1st person models, regardless of skin, will be called ‘marine’ instead of ‘doomslayer.’ They will not have 1p in the name. You will just need to remember that doomslayer means 3rd person and marine means 1st person. They will, instead, have the formatting marine_[set number]. If you are working in Substance Painter, make sure you extract both.
For the weapons, each skin will have all the files specifically altered for that skin, which will not necessarily be every file. Instead, for the majority of skins, certain textures remain the same as default and will be located only in the default skin’s original folder. This generally applies to:
- Shotgun Sticky Bomb Grenade and Full Auto Shells
- Heavy Cannon Precision Bolt Scope Emissive
- Plasma Rifle Glass
- Rocket Launcher Rocket
- Super Shotgun Shells and Hammers (named “mastery;” visually disabled by default)
- Ballista String
- Chaingun Bullets
There will be exceptions, such as the Hot Rod Shotgun, which includes its own orange Sticky Bomb grenade textures, but generally, if you can’t find any necessary files located in the skin folder you wish to use, you will need to replace the ones in the default weapon folder:
These are mostly straightforward, since almost every in-game demon skin is located in the single directory specified above. However, there are a few exceptions. The textures for the Doom Hunter and Dread Knight are pulled natively from each and every individual mission library for that specific mission. Additionally, all of the green textures for the Cyber Mancubus operate the same way. As such, since you will need to inject your modified textures into each and every mission resources library if you decide to create skins for those demons, having the full directories for them extracted with the Eternal Extractor will help immensely when creating your folder paths.
Preparing Your Files for Injection
Once you have your finished texture files in DDS format, drag and drop them onto the Auto Heckin’ Texture Converter batch file and they will be automatically converted to .tga. You will then need to create your own clone file paths so that Mod Injector will inject the textures and replace the corresponding files in the correct location. Here are some examples:
Example: Plasma Rifle skin
I want my files to replace the textures for the Specter skin, which is in warehouse.resources. First, I make sure that all my new modified image files match the file names of the originals. Then, I create my own empty directory of folders that matches warehouse/art/weapons/plasma/skins/specter. I then put all my converted texture files in the specter folder for injection. I also decided to modify and tint the glass textures, so I create another directory to match where those are located: gameresources/art/weapons/plasma and I put the .tga glass files there. I then take both of those folders, put them in a .zip file, and they’re ready to test!
Example: Slayer Skin
I’m going to have my Slayer skin replace Galaxy Sprinkles, which is set58 and is located in warehouse.resources. Once all my images are converted to .tga, I’ll create this directory:
In the ‘characters’ folder, I will make two more folders: doomslayer and doomslayer_1p. In both of those folders, I will create a set58 folder, so that within the characters folder, I will have these two file paths:
I will then put all the _hq and photo mode images in the
doomslayer/set58 folder and all the 1p images in the doomslayer_1p/set58 folder. I will then make a zip file out of the warehouse folder and the mod will be ready to test!
This concludes the basic guide on how to extract, find, and then prepare images for mod injection. Continuing on, there will be a much more advanced guide on adding custom assets and how that process works, complete with a comprehensive explanation of so-called ‘true’ file formats work and which ones you will need to know. Additionally, there will soon be tutorial videos on how to use Substance Painter and Blender for creating custom skins. Thanks and good modding!