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. |
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, legacy install rules are automatically used. As of January 2024, the mod managers don't yet use this field for anything. Documentation will be updated with more details once an implementation exists. Documentation for the default (legacy) behavior is currently maintained as a wiki page on the r2modmanPlus wiki This field should either contain a list of at least one valid installer declarations or be omitted entirely. This field will become mandatory in the future. |
[ { "identifier": "foo-installer" } ] The installer referred above does not actually exist, this is for illustrative purposes only. |
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" ] }