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 _
"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/"

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