Minecraft Tutorials

How to Install Addons on Your Minecraft Bedrock Server

Install behavior packs and resource packs on your Minecraft Bedrock server, configure the pack JSON files, and fix common addon loading errors.

Last updated: March 5, 2026

4.9

482+ Satisfied Customers

Install addons (behavior packs and resource packs) on your Minecraft Bedrock server by uploading the pack folders, registering each pack in the world’s JSON configuration files, and ensuring the server is pointed at the correct world.

Step 1 — Upload Your Pack Folders

  1. Connect to your server using SFTP or open the File Manager in the Game Control Panel
  2. Upload each behavior pack folder to /behavior_packs/ on your server
  3. Upload each resource pack folder to /resource_packs/ on your server

Each pack should be a single folder containing a manifest.json file directly inside it — not nested in a subfolder.

Step 2 — Find the Pack UUID from manifest.json

Each pack has a manifest.json file. Open it and find the uuid listed under the header section — this is the value you need for your pack JSON files.

{
  "format_version": 2,
  "header": {
    "name": "My Addon",
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",   use this one
    "version": [1, 0, 0]
  },
  "modules": [
    {
      "uuid": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",   NOT this one
      "type": "data",
      "version": [1, 0, 0]
    }
  ]
}

Step 3 — Register Packs in the World JSON Files

Inside your world folder (found under /worlds/ on the server), there are two files that tell BDS which packs to load:

  • world_behavior_packs.json — lists your behavior packs
  • world_resource_packs.json — lists your resource packs

Each file must be a valid JSON array with one entry per pack:

[
  {
    "pack_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "version": [1, 0, 0]
  },
  {
    "pack_id": "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz",
    "version": [2, 1, 7]
  }
]

The pack_id must be the header UUID from Step 2. The version must match the version array in the pack’s manifest.json header.

Common JSON errors that prevent packs from loading

ErrorWhat to fix
// comment in the fileJSON does not support comments — remove any // or /* */ lines
Missing , between entriesEvery } that closes an entry (except the last one) needs a trailing ,
Period instead of comma (}.)Change }. to },
Leading space in pack_id valueThe UUID must start immediately after the " — remove any spaces
Mismatched entry countEvery pack_id must correspond to a folder that actually exists in behavior_packs/ or resource_packs/ — remove entries for packs that aren’t uploaded

Use a JSON validator (such as our JSON Validator tool) to check your files before starting the server if you’re unsure.

Step 4 — Verify level-name Matches Your World Folder

Open server.properties and check the level-name value. It must exactly match the name of your world folder inside /worlds/, including any spaces or capitalisation.

# server.properties
level-name=My World   ← must match the folder name exactly

If level-name=MyWorld but your folder is named My World, BDS auto-creates a blank MyWorld folder and loads that instead — your pack registrations in My World are never read.

Step 5 — Enable Beta APIs (if packs use the Script API)

Some addons use the Bedrock Script API (for custom gameplay logic, UI, or entity behaviour). These require the Beta APIs experiment to be enabled on the world. If this toggle is missing, those packs will fail with errors referencing @minecraft/server or @minecraft/server-net.

To enable Beta APIs:

  1. Download your world folder from the server
  2. Place it in your Bedrock client’s saves folder
  3. Open the world settings and enable Beta APIs under Experiments
  4. Re-upload the world to the server (replacing the existing folder)

See Enabling Experimental Features for the full upload steps.

Step 6 — Start the Server and Check the Console

Start your server and watch the console output. A working addon load looks like:

[INFO] Loading resource pack: My Addon v1.0.0

If a pack fails, the console shows which pack and why. Common messages:

Console messageCause
broken resource manifestmanifest.json is missing, malformed, or uses an incorrect UUID
Pack not foundThe pack_id in your world JSON has no matching folder in behavior_packs/ or resource_packs/
Script module failed to loadBeta APIs experiment is not enabled on the world
block definition errorThe pack uses block definitions incompatible with your current BDS version — check for a pack update

Frequently Asked Questions

The most common causes are: the pack isn't registered in world_behavior_packs.json or world_resource_packs.json, the level-name in server.properties doesn't exactly match the world folder name (including spaces), or the pack requires Beta APIs which must be enabled on the world in the Bedrock client before uploading.

Use the uuid listed under the 'header' section, not the one under 'modules'. The pack_id in your world JSON files must match the header UUID.

Yes. Stop the server before making any changes to pack config files, then start it again once your edits are saved.

The level-name in server.properties doesn't match your world folder name. If your folder is named 'My World' (with a space), level-name must be set to exactly 'My World' — not 'MyWorld'.