Asset catalog generator for MechWarrior 5: Mercenaries.
Latest release · Report a problem · Request a feature
Scarab is a standalone Windows asset catalog generator for MechWarrior 5: Mercenaries. It reads a local MW5 installation and the mods enabled by the game, then generates structured item, mech, stock-template, and trait catalogs for save editors and other compatible tools.
JJ's MechWarrior 5: Mercenaries Save Editor is Scarab's primary integration, but Scarab may also be run directly.
This repository contains the Scarab source code. Starting with v1.9.8, each release tag retains the exact public source snapshot used to build that published version.
Scarab v1.9.8 generates catalogs from the MW5 base game, manually installed mods, and supported Steam Workshop installations. It can also use an existing trusted catalog bundle as its base layer before merging enabled mods.
Scarab reads game and mod data only. It does not modify the MW5 installation,
mod files, modlist.json, or mod configuration, and it does not create a
persistent cache.
Download the current release from the Latest Scarab release.
For the executable directly:
Scarab is distributed as a standalone Windows x64 executable. No installer is required. Each release contains:
scarab.exescarab.exe.sha256scarab.exe.virustotal.jsonTHIRD_PARTY_LICENSES.html
THIRD_PARTY_LICENSES.html contains the dependency notices recorded in this
source tree together with the consolidated Rust standard-library notice from
the exact toolchain that built that executable.
Download scarab.exe to a location where it is allowed to create its output
directory.
Note
JJ's MW5 Save Editor users normally do not need to run Scarab themselves, and should not need to read any further instructions. The editor handles the Scarab command and catalog paths automatically. Use the Scarab version supported by the editor rather than assuming the newest standalone release is compatible with every editor version.
Run Scarab from PowerShell, Command Prompt, or another program that launches executables.
Basic usage:
.\scarab.exe --mw5-dir <MW5 game directory> --output <relative output directory>Example:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output jj-catalog--output must be relative. Scarab creates the output directory relative to
the folder containing scarab.exe.
--mw5-dir <MW5_DIR>
--output <OUTPUT>
--catalog-input-dir <CATALOG_INPUT_DIR>
--exclude-base-game
--exclude-mods
--exclude-mod <EXCLUDED_MOD_FOLDERS>
--catalog-format <CATALOG_FORMAT>
--build-report
--overwrite-input-catalogs
--catalog-format accepts json-gz, json, or python. The default is
json-gz.
--exclude-mod <folder> may be supplied more than once. It only subtracts
matching folder identifiers from the mods already enabled by MW5.
Use .\scarab.exe --help for the command's built-in help.
Generate the default compressed JSON catalogs from the base game and enabled mods:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output jj-catalogGenerate plain JSON catalogs using only the base game:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output base-json --exclude-mods --catalog-format jsonGenerate Python-compatible catalogs:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output python-catalog --catalog-format pythonUse a trusted catalog bundle as the base layer, then merge enabled mods:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --catalog-input-dir "D:\JJ Editor\catalogs" --output generated-catalogGenerate catalogs and a diagnostic build report:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output diagnostic-catalog --build-reportGenerate catalogs from enabled mods without the base game:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output mods-only --exclude-base-gameExclude specific enabled mod folders:
.\scarab.exe --mw5-dir "D:\MW5 Mercs\MW5Mercs" --output filtered --exclude-mod SomeModFolder --exclude-mod AnotherModFolderThe default json-gz format generates:
item_catalog.json.gz
mech_catalog.json.gz
trait_catalog.json.gz
stock_templates.json.gz
Scarab always generates the complete catalog set.
With --catalog-format json, the item, mech, and trait files become:
item_catalog.json
mech_catalog.json
trait_catalog.json
With --catalog-format python, those three files become:
item_catalog.py
mech_catalog.py
trait_catalog.py
stock_templates.json.gz remains compressed JSON in every format. Stock
templates retain their factory armor allocation and separately include
per-location chassis limits in maxArmor when those values are available from
the final mech data.
The diagnostic build report is off by default. Add --build-report to also
generate:
catalog_build_report.json
--catalog-input-dir <catalog directory> uses an existing trusted catalog
bundle as the base layer instead of rescanning the MW5 base-game pak. The
directory must contain:
item_catalog.json.gz
mech_catalog.json.gz
trait_catalog.json.gz
stock_templates.json.gz
For item, mech, and trait catalogs, Scarab also accepts the matching plain
.json file when the preferred .json.gz file is absent.
stock_templates.json.gz is always required.
With a catalog input directory:
- Scarab loads and validates the bundle as the base layer.
- Scarab does not scan the base-game pak for a second base layer.
- Enabled mods are still discovered from MW5 and merged normally.
--catalog-input-dir cannot be combined with --exclude-base-game, because
the catalog bundle already supplies the base layer.
Use a separate output directory for normal operation. By default, Scarab
refuses to use the same resolved directory for both --catalog-input-dir and
--output, protecting the trusted input bundle from accidental replacement.
Same-directory output is allowed only when the caller explicitly supplies:
--overwrite-input-catalogs
This flag applies only to the input/output same-directory check. It is not a general force option. Scarab loads and validates the complete input bundle before writing replacement output.
Without --catalog-input-dir, Scarab includes the MW5 base-game pak unless
--exclude-base-game is supplied.
Scarab includes mods unless --exclude-mods is supplied. It reads
MW5Mercs\Mods\modlist.json and includes only entries the game currently marks
as enabled.
For manually installed mods, Scarab resolves each enabled folder beneath the normal Mods directory:
<MW5 installation>\MW5Mercs\Mods\<mod folder>
When the supplied MW5 path is inside a Steam library, Scarab also checks the optional Workshop root:
<Steam library>\steamapps\workshop\content\784080\<Workshop item ID>
The normal Mods directory is checked first. A missing Workshop directory is normal and does not cause an error. Scarab does not use the Steam API or require access to a Steam account.
For each included mod, Scarab reads mod.json, scans its pak files, and merges
its catalog data using the mod's load order.
Scarab includes reviewed catalog-presentation support for Yet Another
Legendary Mech 3.6.8, build 1000, including Steam Workshop item
3048850100.
For that exact version and build, Scarab corrects supported chassis grouping, displayed tonnage association, and explicit Hero names. It does not change variant or MDA identities, stock-template data, items, traits, load order, or merge winners.
Other YALM versions are still scanned and merged normally without these
version-specific presentation adjustments. When --build-report is used, the
report records that the compatibility adjustment was skipped.
On Windows, install the current stable Rust toolchain, then run:
git clone https://github.com/FiendishDrWu/Scarab.git
cd Scarab
cargo build --locked --releaseThe executable is written to:
target\release\scarab.exe
Published Scarab executables are Authenticode signed and RFC 3161 timestamped. Windows users can inspect the executable's Digital Signatures tab or run:
Get-AuthenticodeSignature .\scarab.exe |
Format-List Status, StatusMessage, SignerCertificate, TimeStamperCertificateWith normal certificate trust and revocation checks available, the signature
should report Valid.
Every release includes scarab.exe.sha256. Calculate the downloaded
executable's SHA-256:
Get-FileHash .\scarab.exe -Algorithm SHA256The result must exactly match the digest in scarab.exe.sha256 and on the
GitHub release.
Every release also includes scarab.exe.virustotal.json, which records the
completed release-time VirusTotal analysis, report URL, and exact executable
SHA-256. Publication requires the analysis to report:
0 malicious
0 suspicious
A VirusTotal result is additional release-time evidence, not a guarantee that software is malware-free.
Scarab releases are published as immutable GitHub Releases. The release tag resolves to the exact public source commit used for the build, and GitHub protects the published tag and assets from later replacement. GitHub also provides a release attestation containing the release identity and cryptographic asset digests.
Use the bug report form for reproducible Scarab problems.
Include the Scarab version, MW5 installation source, command or options used,
relevant mod names and versions, expected result, actual result, and useful
console output. If practical, rerun with --build-report and attach
catalog_build_report.json.
Do not upload copyrighted MW5 game assets, complete commercial game pak files, or third-party mod files you do not have permission to redistribute.
Use the feature request form for focused improvements to MW5 catalog generation or compatible integrations.
Scarab is not intended to become a general pak explorer, asset browser, mod manager, or standalone save editor.
Do not disclose suspected security vulnerabilities in a public issue. Follow the private reporting instructions in SECURITY.md.
Scarab is licensed under the MIT License.
Scarab uses permissively licensed third-party software. Copyright and license
notices for the exact locked dependency set and incorporated JJ editor helpers
are collected in THIRD_PARTY_LICENSES.txt.
Published executable releases include those notices and the exact build
toolchain's Rust standard-library notices in THIRD_PARTY_LICENSES.html.
Scarab's original branding artwork is copyright © 2026 FiendishDrWu and is distributed under the same MIT License.
Scarab is an independent community tool and is not part of JJ's MechWarrior 5: Mercenaries Save Editor.
