Creating your first asset HAT mod
This will be a guide to show you how to replace a few different assets in the game. For a great example of a more complete asset mod, check out FezSonez.
Unpacking your game assets
One you have HAT installed and setup. The first thing that is needed is FezRepacker so we can see the directory structure, file names and file content which we need to match for the asset mod.
Run FezRepacker.exe to unpack all the FEZ assets into a local folder. Find your FEZ install directory and go into the folder Content/
. Now run:
FEZRepacker.exe --unpack-fez-content . Unpacked
Creating your new assets
Now navigate around the Unpacked
folder to get a feel for where everything is. For this mod we'll modify a few example files to just demonstrate the approach.
Mayor McMayor's hat isn't green enough. Let's make it green. Go to character animations/mayor mcmayor/
and we'll want to modify each of the .gif
files contained to have the hat be green. This can be done through your image editor of choice, but LibreSprite has a lot of really nice stuff for pixel art and animation so I'd recommend it. Hold onto those files for now, we'll add them to our mod in the next step.
The mice in Villageville keep running away from Gomez, but he's friend-shaped, so let's change that. Go to character animations/mouse/metadata.feznpc.json
and change AvoidsGomez
's value to false
.
The back wall of Gomez's room is a bit too empty. Let's spice it up by modifying background planes/gomez_house_c.png
and add some cool decoration.
The sound when you enter a door doesn't communicate how great of an achievement it is. Let's replace it with something more happy like the happy sound when Gomez gets his fez. Replace sounds/gomez/enterdoor.wav
with sounds/collects/collectfez.wav
. Make sure to keep the name enterdoor.wav
since that will tell HAT what asset to replace.
Making your asset mod
Create a new directory for your asset mod. Start by creating your Metadata.xml
for HAT. Here is one for this example:
<Metadata>
<Name>ExampleAssetMod</Name>
<Description>Example asset mod.</Description>
<Author>Gomez</Author>
<Version>1.0</Version>
<LibraryName></LibraryName>
<Dependencies>
<DependencyInfo Name="HAT" MinimumVersion="1.0"/>
</Dependencies>
</Metadata>
Within this directory create a folder called Assets/
which is where HAT will look for game assets to replace when loading in. Now lets move all those assets we created over here. If you are just copying the above, your whole mod should look something like:
ExampleAssetMod/
├── Metadata.xml
└── Assets/
├── background planes/
│ └── gomez_house_c.png
├── character animations/
│ ├── mayor mcmayor/
│ │ ├── idle.gif
│ │ ├── panic.gif
│ │ ├── talk.gif
│ │ └── walk.gif
│ └── mouse/
│ └── metadata.feznpc.json
└── sounds/
└── gomez/
└── enterdoor.wav
Now copy this folder over to the Mods/
folder in your FEZ install directory (doesn't matter if it's zipped or not). Now run MONOMODDED_FEZ.exe
and you should be able to see your mod in the Mods
menu option and (if everything went right) all your changes in-game.
Sharing your asset mod
Create a github repository for your mod and commit your folder to it. Give it a README.md
to tell others what it's about.
Tag your commit with a release number matching what's in Metadata.xml
. Make a new release from that tag, add the version number in the title and some information on changes if this is not the first release. Then add a zip file of your mod folder (e.g. ExampleAssetMod.zip
) to the Assets
section of the release page and publish it.
Once all that's done, drop a message in the modding section of the Fez Community Discord to share your work with others.