automod docs

automod

Creating Unreal Engine game mods is tedious, error-prone, and time-consuming. To help with the process, automod can automatically generate a mod with patched .uasset properties from succinct TOML patch files, which may include embedded regular expressions and Scala, TypeScript, JavaScript, Kotlin, and/or Python patchlets.

Unity games are supported the same way: automod patches asset bundles and raw files using class-scoped TOML or script patch files, and packages the result with an embedded installer. This enables complex patching tasks with significantly lower manual effort, all with patch auto-merging support.

How automod works

Unreal Engine mods

For each mod you define, automod produces a <mod-name>.zip (or .7z) archive containing the patched .utoc/.ucas/.pak files, ready to be uncompressed into the game’s Content\Paks\~mods folder. Under the hood it runs a fixed pipeline:

  1. Extract the target .uasset/.uexp files from the game’s Paks directory using retoc/repak.
  2. Convert them to UAssetAPI’s .json format in-process using uasset4j (the JVM port of UAssetAPI).
  3. Patch the JSON: automod loads all TOML patch files from the patches directory in order (see the TOML Patch File Schema and Patch Auto-Merging), optionally followed by your custom code patches.
  4. Regenerate the patched .uasset/.uexp files in-process using uasset4j.
  5. Repack them into .utoc/.ucas/.pak using retoc/repak, and package everything into a <mod-name>.zip (or .7z) archive.

Unity mods

Unity mods patch the game’s serialized asset files (*.assets) and raw files (e.g. Assembly-CSharp.dll) in place, packaged with an embedded installer:

  1. Decode the target bundles with asset4j (the JVM port of AssetsTools.NET) using the game’s ttmap schema (see the Unity Modding guide).
  2. Patch the decoded objects via class-scoped TOML (ClassName@bundle.toml, .@ JSONPath) or script patches (.kt, .js, .py, etc.), and raw files via whole-file script patches (v.orig/v.current).
  3. Re-encode the bundles in-process with asset4j.
  4. Package everything into a <mod-name>.zip (or .7z) archive that embeds the install.py installer, which copies the files into the game’s data directory, backing up the originals for --restore/-r.

You only write the patch files; everything else is automated. The Getting Started section walks through the setup, while the Guide explains the patching concepts in detail.


Changelog

Release changelog

Getting Started

Prerequisites, setting up automod, and using its VSCode extension

Guide

TOML patch file schema, patch file auto-merging approach, automatic patch extraction from existing mods, patch file merging/unification, JSONPath experimentation, raw file patching, and Unity modding support

Games

Supported games and known compatible/incompatible ones