Introduction
In this guide we will go over steps to create your very own mod to replace the in-game UI font with a font of your own.Unreal Engine is very flexible with its file system and allows you to replace the game’s content with your own. This is often used to mod games or parts of games that don’t have official mod support. This can be used to replace textures, models or even game logic but here we are going to be replacing the fonts the game uses with our own, which is one of the easiest things to mod this way.
We will be replacing the Noto Sans font that the game uses the same way Comic Relief Font mod does.
Prerequisites
- Installed Unreal Engine 4.27 editor
- Installed and configured Automation SDK
- A font of our choosing (either downloaded online from a safe source or one taken from Windows installed at
C:\Windows\Fonts)
Notes before we start
- All font mods must be manually installed into the Mods directory in the game’s files, Unreal Engine will not correctly load the font replacement when activated as a Steam Workshop mod
- If you plan to share the mod first make sure the font you want to use has a license that allows reproduction and redistribution. Make sure to hold onto the license as you will have to include it with the mod as well.
Creating the replacement
Set up a new Unreal Engine project
The first thing you want to do is open Unreal Engine and create a new blank project. Choose not to add starter content, simply create a blank project, this will be used to create a custom package for the replacement files.Now set up the directory structure in a way that mimics the structure of the game’s files we are going to replace. For that, open the Content Browser and under Content create a folder called UI, inside that folder create another one called Fonts.
Preparing the font files
Now we need to prepare the font files themselves. The default Noto Sans font comes in the following variations: Regular, Bold, Italic, BoldItalic. If the font you want to use does not have all of them you can duplicate the existing files the fill in the missing ones.
It is recommended to rename the font files now. You can rename them in Unreal Engine later but it is easier to rename them before importing into the editor. You will need files named as follows:
NotoSans-BoldNotoSans-BoldItalicNotoSans-ItalicNotoSans-Regular
Now you can drag and drop those files into the Unreal Engine editor into our Fonts folder we created earlier. In the popped up dialog box click Yes to all. Your Content Browser should look like this now:
Now in the top left corner of the editor window navigate to Files > Cook Content for Windows.
This will create the files we need to create a new Unreal Engine package.
Building the Unreal Engine package
Now that we have our files prepared for packaging we need to set up the packaging. Now we need to create a new text file to set up packaging paths. We will call it FileList.txt. You can place it anywhere you want but it’s preferable to keep it in the directory of the Unreal Engine project you’ve created.
FileList.txt contains pairs of space-delimited paths, the first path is the global path to the files that were generated by cooking content, the second path mimics the game’s path to the file we are replacing. Set up the file the following way:
FileList.txt
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Bold.uasset" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Bold.uasset"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Bold.uexp" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Bold.uexp"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Bold.ufont" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Bold.ufont"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-BoldItalic.uasset" "../../../AutomationGame/Content/UI/Fonts/NotoSans-BoldItalic.uasset"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-BoldItalic.uexp" "../../../AutomationGame/Content/UI/Fonts/NotoSans-BoldItalic.uexp"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-BoldItalic.ufont" "../../../AutomationGame/Content/UI/Fonts/NotoSans-BoldItalic.ufont"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Italic.uasset" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Italic.uasset"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Italic.uexp" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Italic.uexp"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Italic.ufont" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Italic.ufont"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Regular.uasset" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Regular.uasset"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Regular.uexp" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Regular.uexp"
"Drive:\path\to\project\MyFontMod\Saved\Cooked\WindowsNoEditor\MyFontMod\Content\UI\Fonts\NotoSans-Regular.ufont" "../../../AutomationGame/Content/UI/Fonts/NotoSans-Regular.ufont"
Make sure the left hand side paths match your project correctly.
Now you need to open the command line and navigate to the directory where you have Unreal Engine itself installed and into the engine binaries directory for Win64, for example C:\UnrealEngine\UE_4.27\Engine\Binaries\Win64
This directory should contain an executable called UnrealPak.exe, this is used to create the package.
Decide on the filename for the package we are going to create. You can change the name later if you want but a conventional name should be something like MyFontModpakchunk0-WindowsNoEditor_P.pak.
Most importantly note the _P at the end, this tells Unreal Engine to treat this package as a patch to make sure it replaces the game’s files with the ones we are providing.
Now run the command for building the package, adjusting it to your project: UnrealPak.exe "Drive:\Path\To\Output\MyFontModpakchunk0-WindowsNoEditor_P.pak" -Create="Drive:\Path\To\FileList.txt". This will create the package file at the provided path.
Creating the mod
Now you can switch to the Automation SDK project in Unreal Engine. Once opened, at the top center panel click Mods > Create Mod. Close the editor and open it again so the new mod is correctly registered by the editor.
Once reloaded click Mods > Share Mod, choose your mod and select a separate directory to put the mod into. Once built, navigate to it in the explorer like so: Drive:\Path\To\Mod\MyFontMod\WindowsNoEditor\AutomationGame\Mods\MyFontMod\Content\Paks\WindowsNoEditor. You can delete the .pak file that is already there, now copy the .pak we created in the previous section here. Now is the time to make sure it is named correctly, ending with _P.
If you plan on sharing the mod make sure to put the license file into the Mods\MyFontMod folder of your mod or somewhere further deeper within that folder.
Installing the mod
Once the files have been set up, copy that Mods folder into the install directory of Automation like so: Drive:\Path\to\Steam\steamapps\common\Automation\UE427\AutomationGame, so Mods is inside AutomationGame, and the folder with your mod name is inside Mods. Now you can launch the game and if everything was installed correctly your font should now be replacing the vanilla one.
Note that the process of moving the Mods folder must be manually repeated for every user that downloads the mod via Steam Workshop as workshop mods are not loaded the same way that allows this to work.








