Skip to content
Coritan Docs

Manage Bedrock packs

Import, turn on, turn off and delete behavior and resource packs on a Bedrock Dedicated Server.

View as Markdown

A Bedrock add-on is made of one or more packs. A behavior pack changes how the world plays, and a resource pack changes how it looks and sounds. A Bedrock Dedicated Server keeps behavior packs in behavior_packs and resource packs in resource_packs, but the world loads only the packs on its own list. The Packs panel on a server's Software tab imports packs, turns them on and off in the world, and deletes them.

Every change on the panel applies the next time the server starts.

  • The panel is there for a Bedrock Dedicated Server only. To let Bedrock players join a Java server instead, see Let Bedrock players join a Java server.
  • Take a snapshot before you add packs to a world you care about. Some packs change the world in ways you cannot undo by turning them off.
  • On a server someone shared with you, the Install software permission lets you import packs, turn them on and off, and choose whether resource packs are required. Deleting a pack needs software.delete, which the dashboard's permission list does not offer, so the owner can grant it only through the API.

To open the panel:

  1. In the dashboard, go to Container Apps and open the server, then the Software tab.
  2. Select Packs.

The line at the top names the world, such as Bedrock level. The world is the one level-name names in server.properties, and its lists of packs are in worlds/Bedrock level/world_behavior_packs.json and world_resource_packs.json.

The Behavior packs and Resource packs cards list the packs in each folder and count how many are on. Packs that are on come first, then the ones that are off, each in name order. Each row shows the pack's name and version, its description and its folder. A badge tells you more:

Off
The pack is in the folder, but the world does not load it.
Runs scripts
The pack carries scripts. A pack like this may need the Beta APIs experiment turned on in the world before the world loads.

The cards list only folders with a manifest.json at their top level. Select Refresh to read the folders again.

  1. Upload the pack file to the server root or to the uploads folder in the Files tab. It must end in .mcaddon, .mcpack or .zip.
  2. On the Packs panel, find the file on the Import a pack card.
  3. Select Import pack next to it.

The import runs as a job, which appears in the jobs card at the top of the Software tab, and the file shows Queued until the job starts. The job unpacks the file and reads each pack's manifest.json to decide whether it is a behavior pack or a resource pack. It moves each pack into the right folder and turns it on in the world. When the job finishes, the panel lists the new packs.

The import uses up the file you uploaded, even when it fails, so keep a copy.

A few more rules apply:

  • A file can hold up to 25 packs.
  • A pack that is already on the server, with the same ID in its manifest, is replaced by the new build in its existing folder.
  • Skin packs, world templates and other packs a server does not load are skipped.
  • When the world has not been created yet, we create its lists, so the packs load when the server first creates the world.

You can also copy a pack's folder into behavior_packs or resource_packs yourself. It appears on the panel with Off, and you turn it on as the next section describes.

The Marketplace can search for add-ons too: choose bedrock_addon or bedrock_resource_pack in its kind list. A Marketplace install imports the file in the same way and turns its packs on.

  1. On the Packs panel, find the pack's row.
  2. Turn the switch at the end of the row on or off.

We add the pack to the world's list or remove it from the list. The pack's folder stays on the server. A message such as "More Furniture" turned on. The world loads it on the next start. confirms the change. Restart the server from the console when you are ready.

When a pack stops the server from starting, turn off every pack at once:

  1. On the Packs panel, select Turn off all packs….
  2. Select Turn off all packs.

We empty both of the world's lists, so the world starts on vanilla content the next time the server starts. The pack folders stay. Start the server, then turn the packs back on one at a time, restarting after each, to find the one that breaks the world. Delete that pack, or import a build that works with your server's version.

Under the Resource packs card, the Require resource packs switch sets texturepack-required in server.properties:

  • On: players who decline the resource packs cannot join.
  • Off: players who decline join without the resource packs.

Restart the server to apply the change.

  1. On the Packs panel, select the bin icon at the end of the pack's row.
  2. Select Delete pack.

We remove the pack from the world's list and delete its folder from the server. You cannot undo this. To keep the pack's files, turn it off instead.

Each change shows a message, such as "More Furniture" deleted. or Resource packs set to required. It takes effect on the next start. After the next start, the world loads the packs that are on. Updating the Bedrock server software keeps the pack folders and the world's lists.

The pack file is not on the Import a pack card
The card lists files in the server root and in uploads only, and only files ending in .mcaddon, .mcpack or .zip. Move the file there in the Files tab, then select Refresh.
Could not load the packs
We could not read the server's files. Check that the server is installed, then select Try again.
The import job fails with No pack was found in that file: a pack needs a manifest.json at its top level
The file holds no pack that we can find. A .mcpack must have manifest.json at its top level. A .mcaddon must hold .mcpack files at its top level, or pack folders at its top level or one folder down. Upload a file laid out that way.
The import job fails with No pack could be installed from that file: …
Every pack in the file was skipped, and the message gives the reasons, such as manifest.json is missing or invalid, or a pack type that a server does not load.
The import job fails with That archive holds more than 25 packs
Split the add-on into smaller files.
The import job fails with That file is no longer on the server
Someone moved or deleted the file after it was listed. Upload it again and select Refresh.
The server does not start after you added a pack
Follow Recover a world a pack broke. Check the console for the pack it names.
A pack that is on has no effect
Restart the server: the world reads its lists only when it starts. If the pack shows Runs scripts, the world may need the Beta APIs experiment turned on.
Too many requests for this action. Please wait and try again.
A server accepts 8 software actions, imports included, from one account in 10 minutes. The response says how many seconds to wait.

The paths below are relative to /api/v1/client/servers/{uuid}/software. A pack's {pack_uuid} is the ID in its manifest, which the list returns as uuid.

Request What it does
GET /bedrock/packs Lists the packs, the world and the files you can import.
POST /bedrock/packs/import Queues an import of a file on the server.
POST /bedrock/packs/{pack_uuid}/active Turns a pack on with {"active": true} or off with {"active": false}.
POST /bedrock/packs/disable-all Turns off every pack in the world.
POST /bedrock/packs/{pack_uuid}/remove Deletes a pack.
PUT /bedrock/texturepack-required Requires resource packs with {"required": true}, or not with {"required": false}.

Import a file you uploaded:

Shell
curl -X POST https://api.coritan.com/api/v1/client/servers/$SERVER/software/bedrock/packs/import \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"path": "/uploads/more-furniture.mcaddon"}'

path is required. The optional kind is bedrock_addon, the default, or bedrock_resource_pack; the manifests decide where each pack goes either way. The response is the install job, as Install plugins, mods and modpacks describes. When the job finishes, its status is succeeded, or succeeded_with_warnings when a pack was skipped, runs scripts or went into a world that did not exist yet. Its detail lists the imported packs and any warnings.

GET /bedrock/packs returns:

level_name and world_dir
The world, and its folder, such as /worlds/Bedrock level.
behavior and resources
The packs in each folder. Each has uuid, name, description, version_string, pack_type, has_scripts, folder, path and active. tracked is true when an import or the Marketplace installed the pack, with its record_uuid.
active_count
How many packs are on.
texturepack_required
Whether resource packs are required.
archives
The files you can import, each with filename, path, size_bytes and modified_at.

Turning a pack on or off returns the pack with active and restart_required. disable-all returns how many packs it turned off in disabled, as behavior and resources counts. remove returns {"deleted": true} with the pack's uuid, name, path and pack_type. texturepack-required returns texturepack_required and restart_required.

A refused request answers 400 with the reason, such as path is required, active is required, required is required, Only .mcaddon, .mcpack and .zip files can be imported as packs, That pack is not installed on this server or Bedrock packs only apply to a Bedrock Dedicated Server. Deleting while a job that replaces the server's files is running answers 409. Only imports count towards the limit of 8 software actions in 10 minutes.

On a server shared with you, listing needs software.read. Importing, turning packs on or off, disable-all and texturepack-required need software.install, and deleting needs software.delete.

API operations on this page

MethodPathWhat it does
GET/api/v1/client/servers/{uuid}/software/bedrock/packsBehavior and resource packs on disk, which are active in the world, and importable uploads
POST/api/v1/client/servers/{uuid}/software/bedrock/packs/disable-allEmpty the world's activation lists so it boots on vanilla content; folders stay
POST/api/v1/client/servers/{uuid}/software/bedrock/packs/importQueue an import of an uploaded .mcaddon / .mcpack / .zip already on the server
POST/api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/activeAdd a pack to, or drop it from, the world's activation list
POST/api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/removeDeactivate a pack, delete its folder, and drop its tracking row
PUT/api/v1/client/servers/{uuid}/software/bedrock/texturepack-requiredTexturepack-required: players must accept the resource packs to join