A valid package is a zip file that contains the following files:
icon.png | PNG icon for the mod, must be 256x256 resolution. |
README.md | Readme in markdown syntax to be rendered on the package's page. |
CHANGELOG.md (optional) | Changelog in markdown syntax to be rendered on the package's page. |
manifest.json | JSON file with the package's metadata. |
For mods, the file structure should be as follows (everything is optional):
app/ | The game directory (where the executable is) |
option/ | The option directory |
post_load.ps1 | Script executed by the mod launcher |
(see: Harmony modules (CW: vore))
Additionally, the manifest.json must contain the following fields:
Key | Required | Description | Example value |
---|---|---|---|
name | ✔ |
Name of the mod, no spaces. Allowed characters: Underscores get replaced with a space for display purposes in some views on the website & mod manager. Important: This will become a part of the package ID and can not be changed without creating a new package. |
"Some_Mod" |
description | ✔ | A short description of the mod, shown on the mod list. Max 250 characters. | "Hello world" |
version_number | ✔ | Version number of the mod, following the semantic version format Major.Minor.Patch. | "1.3.2" |
dependencies | ✔ | List of other packages that are required for this package to function | [ "MythicManiac-TestMod-1.1.0", "SomeAuthor-SomePackage-1.0.0" ] |
website_url | ✔ | URL of the mod's website (e.g. GitHub repo). Can be an empty string. | "https://example.com/" |
installers | ❌ |
A list of installer declarations. Installer declarations can be used to explicitly
control how a mod manager should install the package. If omitted, This field should either contain a list of at least one valid installer declarations or be omitted entirely. Valid declarations are:
|
[ { "identifier": "rainycolor" } ] |
Example manifest.json content:
{ "name": "TestMod", "version_number": "1.1.0", "website_url": "https://github.com/thunderstore-io", "description": "This is a description for a mod. 250 characters max", "dependencies": [ "MythicManiac-TestMod-1.1.0" ], "installers": [{ "identifier": "rainycolor" }] }