Command Line Interface (CLI)

CLI usage information

automod
./automod
Auto Modding Script v3.2.1

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

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

  • As mentioned above, UAssetCLI call parallelization is disabled (-p) on Linux or arm64, but .uasset JSON object patching is always parallelized as it is executed on the JVM.

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