Structuring your Thunderstore package - ebkr/r2modmanPlus GitHub Wiki
Note: The required files in a Thunderstore package are:
- A README.md
- An icon.png
- A manifest.json
Should you need to load resources from a specific folder, use Path.Combine(Path.GetDirectoryName(Plugin.Info.Location), "MySubDirectory", "MyImage.png")
.
By default all folders are ignored and the files in them are installed under /BepInEx/plugins
. Files ending with .mm.dll
are installed under /BepInEx/monomod
instead.
The following override folders are a way of circumventing this and installing files in specific folders:
- config
- core
- patchers
- plugins
- monomod (
.mm.dll
will implicitly install to a subdirectory within this folder) - Sideloader (H3VR only. Not for Outward.)
- SlimVML (Designed for use with Valheim.)
- Maps (Timberborn only)
- UMM Mods (Ultrakill only)
- Assets (GTFO only)
- Note that this has install behaviour similar to MelonLoader.
- Files are tracked and are not placed under a subdirectory.
- GameData (GTFO only)
Every folder aside from /config
are installed under a subfolder following the format of Author-ModName
. This is to prevent file conflicts.
An example zip structure:
# mod.zip
- <required files>
- patchers
- my_patcher.dll
- random_folder
- test.dll
- other_random_folder
- other_test.dll
- plugins
- monomod
- example_pm.dll
- monomod
- my_monomod.dll
will resolve to the following installation:
# <profile>/BepInEx/
- patchers
- <Author-ModName>
- my_patcher.dll
- plugins
- <Author-ModName>
- <required files>
- test.dll
- other_test.dll
- monomod
- example_pm.dll
- monomod
- <Author-ModName>
- my_monomod.dll
Important
This section applies only to the following games: Backpack Hero, BONELAB, BONEWORKS, HardBullet, Patch Quest, and RUMBLE. For other MelonLoader games, see the next section.
Each of these games have custom installation rules tailored to their needs. Generally speaking pre-configured file extensions determine where the files are installed. Check the game specific configurations for more details:
Mod-specific subfolders aren't used: mods containing identical file names cause conflicts.
Important
MelonLoader v0.7.0 or higher is required.
Everything under UserData
will be installed under UserData/<Author-ModName>/
. Everything else will be installed under Mods/<Author-ModName>/
. Plugins and user libs need to be placed in respective subfolders to be loaded properly by MelonLoader. Regular dlls can be placed under Mods
or the root of the zip file.
Example:
# mod.zip
- <required files>
- Mods
- my_first_mod.dll
- Plugins
- my_plugin.dll
- UserLibs
- helper_lib.dll
- UserData
- <custom folders and files>
- my_second_mod.dll
will resolve to the following installation:
# <profile>/
- Mods
- <Author-ModName>
- Mods
- my_first_mod.dll
- Plugins
- my_plugin.dll
- UserLibs
- helper_lib.dll
- my_second_mod.dll
- <required files>
- UserData
- <Author-ModName>
- <custom folders and files>
- GDWeave (e.g. WEBFISHING)
- ReturnOfModding (e.g. Hades II and Risk of Rain Returns)
- Shimloader (e.g. Palworld and Panicore)