Local and Dev Mods
Use a loadout’s local directory for third-party mods and development builds.
GameRoot/loadouts/<name>/local/+-- Mods/MyMod.dll+-- UserLibs/MyMod.Shared.dll+-- Plugins/<explicit loader plugin>+-- UserData/ +-- i18n/mymod/en.yaml +-- Anomaly/Modules/MyManagedMod.dll +-- Anomaly/Modules/MyManagedMod.dll.anomaly.jsonLocal files are layered into the selected loadout’s runtime. Use Mods for ordinary MelonLoader mods and UserData/Anomaly/Modules for managed modules.
Iteration loop
Section titled “Iteration loop”- Build Release/x64 against the matching SDK and selected game references.
- Copy your DLL and private dependencies into the appropriate local directories.
- Launch the loadout and exercise the feature.
- Stop the game before replacing loaded files, then rebuild and repeat.
The development launch policy uses audit mode. The Launcher inventories executable files, and rebuilt local DLLs do not require a new hash approval. This policy does not isolate mod code: load only assemblies you trust.
Selecting the Anomaly core
Section titled “Selecting the Anomaly core”For ordinary mod development, use the matching official Anomaly core. Latest-compatible tracking selects a signed core; disabling tracking requires an explicit official version pin. Local files cannot replace or remove verified files belonging to that official package.
For Anomaly core development, local/Mods/Anomaly.Client.dll selects the local core instead of a catalog version. Stage the matching API, Shared, Bootstrap, and required dependencies together. The materialized loadout reports anomaly-client@local; this also supports a development game slot such as latest.
When an official package is selected, its signatures, hashes, package contents, compatibility, and anti-downgrade checks still apply. Audit mode for executable trust does not bypass official-package integrity verification.
Managed-module sidecars
Section titled “Managed-module sidecars”Keep the .anomaly.json sidecar beside its DLL. Update the assembly SHA-256 for every build and declare the supported game versions. The module runtime validates this metadata before assembly loading even when the Launcher uses audit mode. See Managed Modules.
Return to Architecture Choices.