Packaging and Publishing
The most preferred way to publish PEAK mods is through Thunderstore, where the community also hangs out.
Before uploading your mod, you need to have built it into a .dll
.
Packaging With TCLI
Section titled “Packaging With TCLI”The PEAK BepInEx Template comes with Thunderstore packaging built-in, using TCLI.
If you used the template, you can build Thunderstore packages by running:
dotnet build -c Release -target:PackTS -v d
The built package will be found at artifacts/thunderstore/
.
Once you have the ZIP package, you can jump straight into Uploading to Thunderstore!
Manual Packaging
Section titled “Manual Packaging”Create a new folder. Here we want to create a few files and one folder.
Your new mod folder should look like this:
- LICENSE (optional)
- manifest.json
- README.md
- CHANGELOG.md
- icon.png
Directoryplugins
- com.github.YourAccount.YourMod.dll
manifest.json
Section titled “manifest.json”Your manifest is crucial — without it, your mod won’t work on Thunderstore.
Here’s an example of what it should look like:
{ "name": "Your_mod_name", "version_number": "1.0.0", "website_url": "https://peakmodding.github.io", "description": "A mod description", "dependencies": []}
The manifest is fragile. Use this tool to validate it:
Thunderstore Manifest Validator
Notes:
- Underscores in
name
will appear as spaces on the site. version_number
must increase with every release.website_url
is optional, but linking your GitHub page is recommended.- You can include any number of dependencies.
Example with dependencies:
{ ... "dependencies": [ "MonoDetour-MonoDetour_BepInEx_5-0.6.6", "MonoDetour-MonoDetour-0.6.6" ]}
Dependency strings can be found on the individual mod’s page on Thunderstore.
README.md
& CHANGELOG.md
Section titled “README.md & CHANGELOG.md”README.md
becomes your mod’s description on Thunderstore.CHANGELOG.md
is optional, but useful for showing update history.
Both files support Markdown formatting. Example:
Amazing feature 1
- This is an amazing feature for only the best.
Amazing feature 2
Helpful resource: Markdown Cheat Sheet
icon.png
Section titled “icon.png”Your icon must be exactly 256x256 pixels.
LICENSE
Section titled “LICENSE”Choosing a license can feel overwhelming, but here’s a simple guide:
- Do you want others to use your code in their mods?
- Do you want credit for your work?
- Do you care if others use it in commercial/closed-source projects?
Common license options:
- MIT License — Very permissive. Others can reuse your code with attribution, even commercially.
- GPL-3.0 — Requires others to also open-source their projects if they use your code.
- CC0 / Unlicense — No rights reserved. Anyone can use your code however they want, no credit needed.
Generate one here: choosealicense.com
Making a ZIP
Section titled “Making a ZIP”Now zip up your contents.
Do NOT zip the folder itself.
Instead, select all files inside and compress them.
On Windows:
- Select all files
- Right-click → Send to → Compressed (zipped) folder
Uploading to Thunderstore
Section titled “Uploading to Thunderstore”To upload a mod, first create a Thunderstore team by logging in and going here:
https://thunderstore.io/settings/teams/create/
Then go to: Thunderstore Upload Page
- Upload your
.zip
- Select your team
- Choose PEAK as the community
- Select relevant categories
- Submit!
If your mod is NSFW, make sure to mark it.
Get the Modder Role
Section titled “Get the Modder Role”Want that shiny Modder role in the PEAK Modding server?
Just do the following:
- Join the server
- Go to
#mod-releases
- Post your mod
- Wait for the role to be assigned (if applicable)