A valid package is a zip file that contains the following files:

FilenameDescription
icon.pngPNG icon for the mod, must be 256x256 resolution.
README.mdReadme 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.jsonJSON file with the package's metadata.

Additionally, the manifest.json must contain the following fields:

KeyRequiredDescriptionExample 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"
descriptionA short description of the mod, shown on the mod list. Max 250 characters.
"Hello world"
version numberVersion number of the mod, following the semantic version format Major.Minor.Patch.
"1.3.2"
dependenciesList of other packages that are required for this package to function
[
  "MythicManiac-TestMod-1.1.0",
  "SomeAuthor-SomePackage-1.0.0"
]
website_urlURL 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 wikiThis 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.
"https://example.com/"

Example manifest.json content:

{
  "name": "Textarea",
  "version_number": "1.1.0",
  "number": 0,
  "boolean": true,
  "website_url": "https://github.com/thunderstore-io",
  "description": "This is a description for a mod. 250 characters max",
  "dependencies": [
      "Mythic-TestMod-1.1.0"
  ]
}