The easiest and most fail-proof sort of mod for Unreal games in general, and AEW: Fight Forever in specific, involves simply replacing some of the textures used in-game. In this example mod, we will find and extract relevant textures for the Stinger Energy Drink that appears on the table on the main menu screen, and replace it with another logo.
Note that this tutorial assumes that you have already set up your development environment, and that you have set up FModel.
You CAN perform a texture swap without using the custom UProject that's obtained in the setup tutorial if you wish, but ensure you've enabled IOStore compression, pakchunk assignment, and are cooking in the Production environment. All of this is automatically configured for you with the custom UProject for your convenience.
First, from having explored the game files already, I happen to know the in-game model used for the energy drinks on the table are called EnergyCan, so in FModel, we'll search for EnergyCan via the Packages menu > Search, or Ctrl-Shift-F:
Interestingly, this is one of the few models that spawns in the locker room that comes from the Stadium Stampede content. Its path is AEWFightForever/Content/GameData/Resources/SSMode/models/Prop/160_EnergyCan/
, and this folder contains a Textures subfolder with several variant textures of the can. We know the one that shows up on the title screen is the red one, which we can verify with FModel by double-clicking each texture _col file to determine which one that is: specifically, Texture/T_EnergyMAX03_col
.
If you're trying to find something else, it's best to figure out first what the model is called in-game, which you can find using UE4SS' Live View (tutorial forthcoming). Then you can generally find the textures in a subfolder of the place the model is stored.
While it's possible to use FModel to extract .png files, it's very likely that you will lose information in the file if an alpha channel is present or it's used for masking. For this reason we switch to UModel_Materials by Spiritovod.
Now we switch to UModel_Materials, which you should have already set up in a previous tutorial.
Here, we browse to the model's Textures folder, find the file in question and extract it:
Doubleclick on T_EnergyMAX03_col and it will open in the 3D viewer.
Press Ctrl-X to extract the file, then click on Tools > Open exports folder to quickly browse to where the .tga was created.
Now, in Unreal, you can create the folder structure to match -- Content\GameData\Resources\SSMode\models\Prop\160_EnergyCan\Texture
. Once created, you can right-click on the Texture folder on the left pane and choose Show In Explorer to get to the project's folder quickly.
Now, in Explorer, NOT in Unreal, copy the .tga into the Unreal project folder you've created. By doing this, you're providing the .tga as a "working copy" to be imported into the Unreal project as a .uasset. Now, you can edit the .tga file in this folder, and Unreal will in the background detect any changes to the file and ask if you'd like to reimport it.
If you prefer, you may instead drag the .tga into the Unreal editor directly in the content pane, but note that this means the copy of the .tga that you need to edit and reimport will be sourced from that folder, e.g. the UModel exports folder if you've been following along exactly. It is preferable to have your source image in your project directory, for your own sanity's sake!
Here I have crudely pasted the Progress Pride flag over the Stinger texture, offset slightly to avoid showing the seam. If you'd like to download this file instead of doing the texture swap yourself, feel free: t_energymax03_col.tga
After editing the file, Unreal again recognizes the change and prompts to reimport:
Clicking Import will show the changes in Unreal, but the changes are not actually yet saved to the .uasset, as denoted by the star in the corner of the thumbnail. Click the Save All button to save your changes.
Next we package the mod and test it before distribution. Packaging is an expansive topic deserving its own page, to avoid duplication here for other mod types.