DEternal_loadMods – A script to mod DOOM Eternal’s .resources files
A python script (EXE version available) that can add/replace files in DOOM Eternal’s .resources files. This cannot be used on its own, and requires some patches to the game’s EXE in addition to a rehashing tool for the game to load the modded .resources. All dependencies are provided in description.
A command line application for loading mods into .resources files
This was initially a script, but the version provided here is an EXE compiled using pyinstaller. Source code can be found here.
To extract game resources (only if you want to make mods) use one of the following tools: Unpacker tool from XeNTaX or quickBMS script from ZenHAX.
This script can replace/add any file in DOOM Eternal’s gameresources.resources and warehouse.resources (other .resources files currently not supported). The script takes a single argument which is the path to the game folder (the folder that contains DOOMEternalx64vk.exe). If it’s not provided, the script will use a default path instead: “C:\Games\DOOMEternal”
Mods must be placed in a “Mods” folder in the same directory as the script (Create the folder and put it next to the script). The script will load all loose files and ZIPs in the ‘Mods’ folder. You can also add new files to the .resources if you want, the game won’t crash unless you used them incorrectly. Loose files MUST be placed in a directory with the name of the .resources file it’s supposed to be placed into.
“Mods/generated/decls/anyfile” will not work
“Mods/gameresources/generated/decls/anyfile” will place the files in gameresources.resources
“Mods/warehouse/generated/decls/anyfile” will place the files in warehouse.resources
You can load mods from a ZIP file if it’s placed inside the ‘Mods’ folder. The ZIP file’s contents have to follow the same format as those of the ‘Mods’ folder. Only ZIP files can still have “generated” as the base directory to provide compatibility with old mods, which will load the files into gameresources.resources. All mods created from now on should specify the .resources file it needs to replace files into.
“Fists_Mod.zip/generated/decls/anyfile” is correct, and will load the files into gameresources.resources by default
“Fists_Mod.zip/Mods/generated/decls/anyfile” is not correct
“Fists_Mod.zip/warehouse/generated/decls/anyfile” is correct, and will load the files into warehouse.resources
DEternal_loadMods.exe “C:\Program Files (x86)\Steam\steamapps\common\DOOMEternal”
Use quotes for game path if it contains spaces.
THIS SCRIPT WILL NOT BACKUP YOUR FILES! So you should make a backup of the following files:
meta.resources (Modifed by idRehash)
build-manifest.bin (Modified by the game after applying the EXE patches)
idRehash by emoose (link)
EXE patches by emoose (link)
idRehash must be put in “DOOMEternal\base\” (next to .resources files) and MUST be run after each time you use the script (or just once before running the game, if you used the script).
For the game to load after modding the .resources files, you MUST apply 3 hex patches to your game EXE. This needs to be done only once, but you may have to apply the patches again if the game gets updated (from steam/bethesda launcher, not after installing mods). All you need to do is replace some hex strings in DOOMEternalx64vk.exe with modded code.
If you don’t know how to do hex editing, look up a guide. HxD Editor is beginner-friendly, just press Ctrl+R and paste in the hex lines that need to be replaced and the modded lines and click “Replace”. Do this for each of the 3 patches one at a time.
I am not responsible for whatever you do with this script. This script is intended to be used when offline, although it works fine online and nobody until now (about 5 testers during a month) have received a warning. This script may allow you to modify some game files used for online content, which may risk you a ban. I am not responsible for any bans that may be possible, and I’m not responsible for any illegal activity you may do, such as unlocking costumes you do not own, modifying EXP rewards, or making the game unfair for other players in multiplayer modes.