Skip to content

Mod Build Tools/Automation scripts for unreal engine modding supports 4.0-5.5

License

Notifications You must be signed in to change notification settings

Mythical-Github/UnrealAutoMod

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UnrealAutoMod

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

Project Example:

UnrealAutoModExample.mp4

💪 Features

  • 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

🛠️ Installation Steps:

  1. Download and unzip the latest release.
    You can keep the program anywhere you'd like.

2. Configure the Default JSON File

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"
  • 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.

  1. 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": []
    }
  }

Configuration Details

  • 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's Content/Paks/ directory. Common values are ~mods and LogicMods.

  • mod_name_dir_type: Determines the built-in auto-include directory.

    • Mods will include files from Game/Mods/ModName/.
    • CustomContent will include files from Game/CustomContent/ModName/.
  • use_mod_name_dir_name_override: Set to true 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 the mod_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 to false 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.

Additional Notes

  • 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

  1. Run the application:
    Once everything is set up, you can proceed to the Running Steps.

🏃 Running Steps:

The release version, has some included bat files.
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> ...]

💻 Building UnrealAutoMod

  • 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

💻 References

💻 Built with

  • Python

🛡️ License:

license