install.json
install.json tells the OpenMods Manager desktop app how to lay your release files into the player's game folder. It's optional — without it, the Manager extracts the release archive straight into the game root.
folder Where to put it
Preferred location is .openmods/install.json. A root-level install.json is also accepted as a fallback. The file ships in your release artifact (zip), so the Manager can read it without re-fetching the repo.
data_object Schema
Two optional fields, both relative to the player's game install root:
path
string · optionalBase directory where the contents of the release should be unpacked. If set on its own, every file in the archive lands here.
custom-path
object · optionalPer-file or per-folder mapping. Each key is a path inside the archive; each value is the destination relative to the game root. Trailing slashes mark folder copies.
Example:
"path": "BepInEx/plugins/MyMod",
"custom-path": {
"src/plugin.dll": "BepInEx/plugins/",
"config/": "BepInEx/config/MyMod/"
}
}
rule Default behavior
- check_circle
No
install.json→ release contents are copied into the game root, skippinginstall.jsonitself and any.openmods/folder bundled in the zip. - check_circle
Only
pathset → everything goes under that directory. - check_circle
Only
custom-pathset → mapped files/folders go to their destinations; anything not listed is dropped at the game root. - check_circle
Both set →
custom-pathwins for the entries it covers; the rest fall underpath.
Forgiving parser
Comments (//) and trailing commas are tolerated, so you can leave notes for collaborators directly inside the file. The Manager records every file it copied, which lets it cleanly uninstall the mod later.
Ready to distribute your mods?
Join hundreds of other developers using OpenMods to deliver their creations to players faster.