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" }]
}