Skip to main content

SWF Modding.

HUD and menu modding

The ability to mod DOOM Eternal's HUD and menus is limited, but is possible, thanks to idStudio. The layout of DOOM Eternal's HUD is rendered by a custom flash interpreter, so in some cases this can be changed by editing the source SWF file. The various shapes of HUDs and menus actually come from textures files. Some menus may be populated by a decl file. Depending on what you want to change, you want to edit other files in combination with modified SWFs, or SWF files may not need to be edited at all.

Extracting SWF files

Open idStudio, go to Mods, Package browser. In that window, go to File, Open. Navigate to your DOOM Eternal installation, then idStudio/base and open common_s000.wad7. Then open the SWF folder and extract the SWF file you think you want to modify. If you're not sure, you can simply extract all of them, not much space will be used in doing so.

Ignore the generated/cswf folder, this contains SWFs compiled for use in-game and cannot be edited by external tools.

Alternatively, you can use Eternal Resource Extractor to pull all SWF files from common_s000.wad7.

Editing SWF files with an external program

While there is no offical tool for editing SWF files for the purposes of DOOM Eternal modding, you can download software that can open normal shockwave flash files, such as Free Flash Decompiler.

While the functionality of the game's HUD is, for the most part, hardcoded and not particularly flexible, you can at least change the layout by deleting, moving, or resizing sprites. Adding elements may not work as expected. Usually, the bottom sprite will contain the entire HUD element. When inspecing elements within sprites (or elements inside of frames inside of sprites), read the child element ID to find what sprites are contained in that item, until you find the object you want to edit or remove.

Additionally, a small set of actionScript functions exist in Eternal's flash intepreter, including a function of set console variables.

Recreate the directory structure in an the base folder of an idStudio mod, and save or copy your modified SWF file to the correct folder. idStudio will generate a cooked SWF file on startup, or upon loading a map. You can force compile SWFs with the cookSWFs console command if you add a SWF while idStudio is running, but if you want to test it within idStudio, you might need to restart the map. When you want to package your mod for uploading to the mod portal, you will want to check generated/cswf

Packing SWF files for the mod injector

If you want to use the modded SWF file in a mod injector ZIP archive, do not package the generated bswf file, it will not work. Use Eternal Resource Extractor to obtain the Eternal SWF file from the bwsf container. Also, note that targetting the mod injector instead of the mod portal does not remove the need to use idStduio; is it is still necessary to generated the SWF files in Eternal format. This format is not readable by SWF editing software, hence why you must extract SWF files from idStudio and not from the retail game package.