Plugin Manifest

The plugin manifest is the manifest.json file at the root of your plugin directory. It identifies the plugin and references its extensions, themes, locales, and presets.

Fields

FieldTypeRequiredDescription
idstringYesUnique identifier. Format: @scope/plugin-name. Must be lowercase; letters, numbers, and hyphens only.
namestringYesDisplay name shown in the Plugins list.
versionstringYesSemantic version (X.Y.Z).
descriptionstringNoShort description.
authorstringNoPlugin author. Format: "Name <email>".
homepagestringNoURL to project homepage or repository.
categorystringNoMarketplace category slug.
licensestring or objectNoLicense identifier ("MIT") or file reference ({ "$ref": "LICENSE.md" }).
acknowledgementsstring or objectNoCredits text or file reference.
iconobjectNoPlugin icon: { "$ref": "assets/icon.png" }.
compatibleVersionstring or objectNoOverseer version compatibility. Semver range ("^1.0.0") or { "min": "^1.0.0", "max": "^2.0.0" }.
visiblebooleanNoWhether the plugin appears in the Plugins list. Default: true.
extensionsarrayNoExtension manifests: [{ "$ref": "path/to/manifest.json" }].
datasetsarrayNoDataset manifests: [{ "$ref": "path/to/dataset.json" }]. See Datasets.
themesarrayNoTheme definitions: [{ "id": "...", "label": "...", "src": { "$ref": "..." } }]. See Themes.
localesarrayNoLocale definitions: [{ "id": "...", "label": "...", "src": { "$ref": "..." } }]. See Locales.
presetsarrayNoPreset manifests: [{ "$ref": "path/to/manifest.json" }]. See Presets.

Examples

Minimal plugin

{
  "id": "@yourname/session-timer",
  "name": "Session Timer",
  "version": "1.0.0",
  "extensions": [
    { "$ref": "extensions/session-timer/manifest.json" }
  ]
}

Plugin with multiple content types

{
  "id": "@yourname/gm-toolkit",
  "name": "GM Toolkit",
  "version": "1.0.0",
  "author": "Your Name",
  "description": "A dice roller, initiative tracker, and dungeon theme.",
  "homepage": "https://github.com/yourname/gm-toolkit",
  "extensions": [
    { "$ref": "extensions/dice-roller/manifest.json" },
    { "$ref": "extensions/initiative-tracker/manifest.json" }
  ],
  "themes": [
    {
      "id": "dark-dungeon",
      "label": "Dark Dungeon",
      "src": { "$ref": "themes/dark-dungeon.css" }
    }
  ],
  "locales": [
    {
      "id": "de",
      "label": "Deutsch",
      "src": { "$ref": "locales/de.ftl" }
    }
  ]
}