Easy To Use Command Line Modding Utility For Unreal Engine Games 4.0-5.5
Automates creation, and placement, of mod archives, and other various actions.
For an in editor menu version check out UnrealAutoModInEditor
UnrealAutoModExample.mp4
- Supports Unreal Engine versions: 4.0-5.5
- Supports loose file modding (unreal assets, not in a mod archive, like a .pak)
- Supports modding iostore games
- Automatic mod creation and placement
- Automatic engine cooking, and packaging
- Automatic game running
- Automatic editor running
- Event management system
- Process management events
- Window management events
- Automatic script/exec running events
- Supports creation of mod archives, through unreal_pak, repak, and engine made archives
- Ability to add launch params to various script/exec running
- Supports games with alternative packing structures (example game: Kingdom Hearts 3)
- Supports packing edited files, through the persistent_files dir, or through the Event Management System
- Easily configure what files end up in your final mod(s) and how with the Mod list within the config
- Supports loading from json file, so you can have multiple projects easily
- Logging
- Colorful printouts
- Ability to run in the background, with no windows
- Download and unzip the latest release.
You can keep the program anywhere you'd like.
Most users will only need to edit a few settings, which can be done with a text editor. In the JSON file, you typically need to update the following:
-
Unreal Engine
.uproject
File Path
Specify the path to your Unreal Engine project file. -
Unreal Engine Directory
Define the directory where Unreal Engine is installed. -
Game's Win64 Executable Path
Set the path to the game's Win64 executable. Ensure that the path is valid:- Correct Example:
"D:\SteamLibrary\steamapps\common\Zedfest\KevinSpel\Binaries\Win64\Zedfest.exe"
- Incorrect Example:
"D:\SteamLibrary\steamapps\common\Zedfest\KevinSpel.exe"
- Correct Example:
-
Steam App ID
If using the Steam launch method (as opposed to the executable method), enter the Steam App ID. -
Window Title Override String
Specify the string for the launched game's window label.
After configuring these settings, you can proceed to configure the mod list.
- Configure the mod list:
You can include any number of mod entries in the list.
{
{
"mod_name": "MapKit",
"pak_dir_structure": "~mods",
"mod_name_dir_type": "Mods",
"use_mod_name_dir_name_override": false,
"mod_name_dir_name_override": null,
"pak_chunk_num": null,
"packing_type": "repak",
"compression_type": "Zlib",
"is_enabled": true,
"manually_specified_assets": {
"asset_paths": [],
"tree_paths": []
}
},
{
"mod_name": "ExampleLevel",
"pak_dir_structure": "~mods",
"mod_name_dir_type": "Mods",
"use_mod_name_dir_name_override": false,
"mod_name_dir_name_override": null,
"pak_chunk_num": null,
"packing_type": "repak",
"compression_type": "Zlib",
"is_enabled": true,
"manually_specified_assets": {
"asset_paths": [],
"tree_paths": []
}
}
-
mod_name
: This will be the final mod archive's file name, e.g.,mod_name.pak
. -
pak_dir_structure
: Specifies the folder structure within the game'sContent/Paks/
directory. Common values are~mods
andLogicMods
. -
mod_name_dir_type
: Determines the built-in auto-include directory.Mods
will include files fromGame/Mods/ModName/
.CustomContent
will include files fromGame/CustomContent/ModName/
.
-
use_mod_name_dir_name_override
: Set totrue
if you want your final mod name to include a suffix (e.g.,_P
), but not the internal project name. Example:Content/Paks/~mods/ExampleName_P
vs.Game/Mods/ExampleName
. -
mod_name_dir_name_override
: Specifies the folder to use instead of the default. Usually themod_name
without any suffix. -
pak_chunk_num
: Used only if you are using the engine packing enum. Set this to match what you configured inside Unreal Engine. -
packing_type
: Specifies the packing method:repak
for general use.engine
for iostore games.loose
for games using loose file modding.unreal_pak
for when you want to pak using unreal_pak, from your game engine install, usually not ever needed.
-
compression_type
: Determines the compression method for the mod archives. Not applicable for loose file modding. -
is_enabled
: Set tofalse
to disable packaging of the mod and uninstall it if it exists in the specified mod directory. -
manually_specified_assets
: Lists additional assets to include:asset_paths
: Direct paths to specific files (e.g.,test.uasset
,test.uexp
).tree_paths
: Include all files in subfolders within specified directories.
- For JSON paths, use forward slashes (
/
) instead of backslashes (\
). Make sure your paths match this format when editing the JSON file. - Settings Json Reference
- Faq
- Run the application:
Once everything is set up, you can proceed to the Running Steps.
You can use these to run the default config, with the test_mods_all arg, or use it as a base and edit it. There is also a version to run it headless (windowless).
The program itself, supports various command line parameters. Here are some examples of how you would use it.
UnrealAutoModCLI.exe -h
UnrealAutoModCLI.exe command -h
UnrealAutoModCLI.exe settings.json test_mods_all
UnrealAutoModCLI.exe settings.json test_mods <mod_name> [<mod_name> ...]
__main__.py -h
__main__.py command -h
__main__.py settings.json test_mods_all
__main__.py settings.json test_mods <mod_name> [<mod_name> ...]
- To setup the virtual env, UnrealAutoMod uses uv, you must have a valid python and git install, for git, you may need your ssh keys setup
- Download the Development.zip from the latest release.
- Unzip to wherever you'd like, and run the setup bat file
- There are several other bat files to help ease development
- To learn more about using uv check out the documentation
- Python