Command Line Interface (CLI)

CLI usage information

automod
./automod
Auto Modding Script v4.0.0

Usage: automod [-s] opt* [ <mod-name> option*
                         | .batch option*
                         | .demo.[sb|soa]
                         | .diff[.into] <from-path> <to-path> <out-path>
                         | .search[.flat] <paths-input>.sam <out-path>
                         | .setup[.vscode [ <path-to-vscode> ]]
                         | .toml[.all] <out-path>
                         | .ttmapgen <args...>
                         | .upgrade
                         ]

 -s                   Disable Scala CLI server

opt:
 -g <game-id>         Active game identifier (default: SB)
 -l <num>             Maximum task logs to keep (default: 30)
 -p                   Disable parallelization
 --pak                Force legacy .pak output even for zen games
 -c <license-path>    Include license file(s) in the generated mod

option:
 --dry-run            Disable actual mod generation and just test patches
 --include-patches    Include patches in the generated mod
 --no-code-patching   Disable code patching
 --ultra-compression  Use 7z ultra compression

.batch                Generate a mod for each sub-folder in patches/<game-id> 
.demo.sb              Generate all Stellar Blade demonstration mods
.demo.soa             Generate Sands of Aura demonstration mod
.diff                 Recursively diff JSON files and write jd and TOML patch files
.diff.into            Use .diff between <from-path> with each sub-folder of <to-path>
.search               Query UAssetAPI JSON files using the JSONPaths in <paths-input>
.search.flat          Same as .search but without resolved paths in a single array result
.setup                Only set up modding tools
.setup.vscode         Set up modding tools and VSCode extensions
.toml                 Merge existing patch files in patches as TOML patch files
.toml.all             Merge script code patches with patch files in patches as TOML
.ttmapgen <args...>   Run the asset4j ttmapgen CLI (ttmap generator)
.upgrade              Upgrade automod to the latest version
  • Disabling the Scala CLI server (-s) reduces the number of dependencies that Scala CLI downloads, thus saving bandwidth. However, it will be slower to use because of the Java Virtual Machine (JVM) cold boot time.

  • Game identifier is the folder name immediately containing Content\Paks for Unreal Engine games. For Unity games it is the game’s data directory (e.g., WarmSnow_Data); set the game’s unity flag in .config.json to use asset4j modding (see Unity Modding).

  • .uasset JSON conversion and patching are always parallelized, as they run on the JVM.

  • --pak forces legacy .pak output (via repak) even for zen games. This is useful for zen games that read certain files (e.g., raw files like databases) through their legacy .pak system instead of the zen containers (see Raw File Patching).

  • .batch generates a mod for every enabled sub-folder of patches\<game-id> (Unreal Engine and Unity games alike); dot-prefixed folders (e.g., .easy-mode) are skipped, so enabling a mod is just removing the leading dot.

  • .ttmapgen runs the asset4j ttmap generator (tthm/dll/il2cpp), used to (re)generate Unity ttmap schemas.

  • --ultra-compression packages the mod as a .7z archive instead of .zip.

  • Unity mods embed an install.py installer (requires Python 3 on the installing machine, optional — files can be copied manually): python3 install.py installs (backing up originals) and python3 install.py -r restores them.

  • Game information (e.g., game directory) is stored in .config.json