Package format requirements

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: a-z A-Z 0-9 _

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