Skip to content

Manifest and permissions ​

Every plugin package contains fledge-plugin.json. API version 1.

Fields ​

FieldRequiredNotes
idyes2–49 characters: lowercase letters, digits, hyphens
name, description, author, licenseyesPlain text. description up to 400 characters
versionyes1.2.3 or 1.2.3.4, optional -suffix
apiVersionyes1
homepagenohttps:// URL
minPanelVersion, minAgentVersionnoThe panel refuses to install on older versions
permissionsnoSee below. At most 20
settingsnoList of fields, see below. At most 30
catalogsno{ id, label, kind, description? }, at most 4. kind is mod or plugin for the Minecraft templates, or any word your own templates use
hooksnoEvents the plugin wants to be told about. Needs the hooks permission
paymentsnoMakes the plugin a payment provider: { id, label, intervals, currencies, features }. Needs the payments permission. See the payments contract
notificationsnoMakes the plugin a message formatter for a channel kind: { channel: "discord", styles: [{ id, label, description? }] }. Needs the notifications permission. See Notification styles

Permissions ​

PermissionMeaning
network:<host>May make HTTPS requests to that host (api.example.com) or a wildcard (*.example.com). IP addresses, localhost, *.local, *.internal and bare TLD wildcards are rejected. The same hosts are the only hosts the panel lets a node download add-on files from for this plugin.
servers:readReceives the target server's game type, loaders and Minecraft version when the catalog is used. Required for catalogs.
servers:files.writeThe panel may install files into servers on the plugin's behalf (only after a user confirms an install).
storageA small private key-value store (256 KB).
hooksMay be notified about server and add-on events.
paymentsTakes payments and manages subscriptions through one provider. It sees order details and customers' email addresses and holds your API keys. Only for payment plugins
notificationsReads the text of notifications to lay them out as rich messages. It cannot send anything anywhere and never sees the webhook address. Only for notification formatters

Administrators see these in plain language and must approve them. An update that asks for more permissions needs approval again.

Settings fields ​

json
{ "key": "releaseChannel", "label": "Release channel", "type": "select",
  "default": "release", "options": [{ "value": "release", "label": "Stable" }],
  "help": "…", "required": false }

Types: string (pattern, placeholder), number (min, max), boolean, select, secret (encrypted at rest, never shown again; null/missing keeps the stored value). Values reach the plugin as host.settings.

Released under the AGPL-3.0-only license.