Manage installed addons
Turn plugins, mods and datapacks on or off, update them to newer builds and remove them from your server.
In the dashboard
The Installed addons panel on a server's Software tab lists every plugin, mod and datapack in the folders your server loads from. It shows the ones you installed from the Marketplace and the ones you uploaded yourself. From the panel you can turn an addon off without deleting it, update it to a newer build and remove it.
The panel is there for Java software. A Bedrock server manages its content on the Packs panel instead: see Manage Bedrock packs.
Before you begin
Section titled Before you begin- The server must be installed, because the panel reads the files on it.
- On a server someone shared with you, the Install software permission lets you see the list, turn addons on or off and update them. Removing an addon or forgetting a record needs
software.delete, which the dashboard's permission list does not offer, so the owner can grant it only through the API.
The folders the panel reads depend on the server's software:
| Software | Folders |
|---|---|
| Plugin servers, such as Paper, Purpur and Spigot | plugins and the world's datapacks |
| Mod loaders: Fabric, Quilt, Forge and NeoForge | mods and the world's datapacks |
| Arclight, Mohist and Magma, which load both | plugins, mods and the world's datapacks |
| Vanilla | The world's datapacks |
| Proxies, such as Velocity and BungeeCord | plugins |
The world's datapack folder follows level-name in server.properties: world/datapacks by default, or survival/datapacks for a world called survival.
Read the list
Section titled Read the list- In the dashboard, go to Container Apps and open the server, then the Software tab.
- Select Installed addons.
Each kind of addon has a card, Plugins, Mods or Datapacks, that names its folder and counts the files in it. Addons that are on come first, in name order, then the ones that are off. Each row shows the addon's name, the version when the Marketplace installed it, its path, its size and when it last changed.
The panel lists only files the server loads: .jar files for plugins and mods, and .zip files and folders for datapacks. A plugin's own data folder, such as plugins/LuckPerms, and any other file in the folder are left out. Manage those in the Files tab.
A badge on a row tells you more:
- Disabled
- The file name ends in
.disabled, so the server does not load it. - Uploaded by hand
- The Marketplace did not install this file. Files you upload or copy in yourself, over SFTP or an import, show this badge, and so do the mods a modpack brings. We cannot check them for updates.
- Update available
- A newer build fits your server. The badge names the version when it can, such as
Update to 2.11.0. - Files missing
- The Marketplace installed this addon, but its file is no longer in the folder. Someone deleted or renamed it outside this panel.
The bar above the cards counts the updates, such as 2 updates available. The refresh button next to it reads the folders again.
Turn an addon off or on
Section titled Turn an addon off or on- On the Installed addons panel, find the addon's row.
- Turn off the switch at the end of the row. Turn it on again to switch the addon back on.
We rename the file: EssentialsX-2.20.1.jar becomes EssentialsX-2.20.1.jar.disabled, and the server skips it. A running server keeps what it loaded, so the change applies the next time the server starts. Restart it from the console when you are ready.
A datapack folder has no switch, because the game loads a folder with a pack.mcmeta whatever it is called. To be able to switch it off, replace the folder with the datapack's .zip file.
Update an addon
Section titled Update an addonWe check the addons the Marketplace installed against their source. An update is a build that fits your server's software and Minecraft version and is newer than the one on disk. We prefer release builds over beta and alpha builds when the source has both.
- On the Installed addons panel, find a row with an update badge.
- Select Update.
We queue an install job, which appears in the jobs card at the top of the Software tab. The job removes the old build's file and downloads the new build in its place. An addon you had turned off stays off after the update. The new build loads the next time the server starts.
To update several addons at once, or to see every update across the server, use the Updates tab.
Remove an addon
Section titled Remove an addon- On the Installed addons panel, select the bin icon at the end of the addon's row.
- Select Remove addon.
We delete the file. For an addon the Marketplace installed, we delete every file that install wrote and drop our record of it. The addon's data folder, such as plugins/EssentialsX, stays: delete it in the Files tab if you no longer need its settings.
Removing does not stop the server. A running server keeps the addon loaded until it restarts.
Forget a missing addon
Section titled Forget a missing addonA row with the Files missing badge has a Forget button in place of the switch. Select Forget to drop our record of the install. Nothing on the server changes, and the row disappears from the list.
Result
Section titled ResultA message confirms each change, such as EssentialsX turned off for the next start., EssentialsX removed., Record dropped. or Updating to 2.11.0. An update's job shows as Queued, then Running with its progress, then Succeeded or Failed.
Troubleshooting
Section titled Troubleshooting- No addon folders
- The server's software loads no plugins, mods or datapacks, as with some proxies. To add some, change the software.
Could not read the addon folders. Check that the server is installed.- We could not list the server's files. Check that the server finished installing and is not suspended, then try again.
A datapack folder loads whatever it is named; delete it or zip it to be able to switch it off- Datapack folders cannot be switched off by renaming. Remove the folder, or replace it with the datapack's
.zipfile. EssentialsX-2.20.1.jar.disabled already exists; remove one copy first- The folder holds the same file both on and off. Remove one of the two copies.
That file is no longer on the server- Someone moved or deleted the file since the list loaded. Select the refresh button to read the folder again.
Cannot uninstall while a replace, wipe, or software change is in progress. Wait for it to finish or cancel it first.- A job that replaces the server's files is running. Wait for it in the jobs card, or select Cancel job there, then remove the addon.
That software is currently being installed. Cancel the install first, or wait for it to finish.- The same addon has an install or update job running. Let it finish, or cancel it, then try again.
Could not delete installed files under /plugins: …- The server refused the deletion. We keep the record so you can try again, or delete the files in the Files tab.
This record has no removable files; delete them in the file manager instead- Our record of the install does not name its files. Delete them in the Files tab, then select Forget on the row, or refresh the list.
- The update job fails
- The job's row in the jobs card shows the reason. Select Try again to queue the same update again. A source that no longer offers the build fails with a message from that source.
Too many requests for this action. Please wait and try again.- A server accepts 8 software actions from one account in 10 minutes. Updates count towards that, along with installs and software changes. The response says how many seconds to wait.
Related
Section titled RelatedWith the API
Section titled With the APIGET /api/v1/client/servers/{uuid}/software/addons returns the inventory for every addon kind the server loads. Add ?kind=plugin, mod or datapack for one kind. Under kinds, each kind has its directory, its items and the missing records whose files are gone. supported_kinds lists the kinds the server loads.
{
"kinds": {
"plugin": {
"kind": "plugin",
"directory": "/plugins",
"items": [
{
"kind": "plugin",
"name": "LuckPerms",
"filename": "LuckPerms-Bukkit-5.4.137.jar",
"path": "/plugins/LuckPerms-Bukkit-5.4.137.jar",
"directory": false,
"size_bytes": 1432118,
"enabled": true,
"can_toggle": true,
"tracked": true,
"missing": false,
"record_uuid": "5b1f7a0e-2c4d-4e8a-9b3f-6d2a1c0e7f45",
"version_name": "5.4.137"
}
],
"missing": []
}
},
"supported_kinds": ["plugin", "datapack"]
}
An item also carries modified_at, and for a tracked addon source_uuid, source_name, identifier, display_name, version, icon_url and project_url. An untracked item has tracked set to false and null in those fields. Asking for a kind the server does not load returns empty kinds and names it in unsupported.
Turn an addon off, or on with "enabled": true:
curl -X POST https://api.coritan.com/api/v1/client/servers/$SERVER/software/addons/toggle \
-H "Authorization: Bearer $CORITAN_TOKEN" \
-H "Content-Type: application/json" \
-d '{"path": "/plugins/EssentialsX-2.20.1.jar", "enabled": false}'
The response gives the new path, the previous_path, enabled, changed and kind. A file that is already in the state you asked for answers with changed set to false. The path must name a file directly inside one of the server's addon folders; any other path answers 400 with That path is not inside an addon folder on this server.
| Request | What it does |
|---|---|
POST /software/addons/remove |
Deletes the addon at {"path": "…"}. A tracked addon goes through the uninstall and the response has deleted, uuid, identifier, path, kind and tracked. |
DELETE /software/addons/records/{record_uuid} |
Drops the record and leaves the files alone. Returns {"forgotten": true, "uuid": "…"}. The file, if it is still there, then lists as uploaded by hand. |
GET /software/updates |
Checks the tracked addons for updates. Returns updates and available, the number with an update. Add kind for one kind, and include_current=true to list addons already on the newest build too. |
POST /software/{record_uuid}/update |
Queues the update. Send {"version": "…"} with a version id from latest_version, or leave the body out for the newest build. Returns the install job. |
The paths are relative to /api/v1/client/servers/{uuid}. The Updates tab page describes each entry in updates. Server software and modpacks are never listed there, and updating one answers 400: change them from Server software instead.
The install job has a uuid, kind, mode (update), status, stage, progress from 0 to 100, requested_version, resolved_version once known, and error when it fails. Follow it with GET /software/installs/{install_uuid}, as Change the server software explains. Sending the same update while one is queued or running returns the job already in progress.
A missing record answers 404 with Installed software not found. A job that blocks the change answers 409 with the messages under Troubleshooting. Any other refusal answers 400.
On a server shared with you, listing and checking for updates need software.read, toggling and updating need software.install, and removing and forgetting need software.delete.
API operations on this page
| Method | Path | What it does |
|---|---|---|
GET | /api/v1/client/servers/{uuid}/software/addons | Every addon in the folders the server loads from, tracked or hand-uploaded |
DELETE | /api/v1/client/servers/{uuid}/software/addons/records/{record_uuid} | Drop a tracking record whose files are gone, without touching the disk |
POST | /api/v1/client/servers/{uuid}/software/addons/remove | Delete one addon from disk, through the tracked uninstall when it has a record |
POST | /api/v1/client/servers/{uuid}/software/addons/toggle | Switch one addon file on or off (Foo.jar <- Foo.jar.disabled) |
GET | /api/v1/client/servers/{uuid}/software/updates | Newer compatible builds for the addons the marketplace installed |
POST | /api/v1/client/servers/{uuid}/software/{record_uuid}/update | Queue an in-place update: the old file is removed, the new build installed |