Install Minecraft Bedrock Add-ons on a Dedicated Server
Minecraft Bedrock Dedicated Server (BDS) uses behavior packs for logic and resource packs for textures, sounds, and other client assets. These are not Java .jar mods. The server needs the extracted pack folders and the active world needs to reference the pack UUID and version from each manifest.json.
Before changing the world
- Stop the server and download the full active world folder.
- Confirm the add-on supports your current Bedrock version.
- Use packs from a source you trust; behavior packs can materially change a world.
- Keep behavior and resource packs that belong together on matching releases.
Microsoft's Bedrock Dedicated Server guide documents top-level and world-specific behavior_packs and resource_packs folders. Its behavior-pack guide explains the manifest structure.
Method 1: enable the add-on locally, then upload the world
This is usually the least error-prone method for a downloaded .mcaddon or .mcpack:
- Import the package into Minecraft Bedrock on a PC.
- Create a new test world or copy the intended world.
- Enable the behavior and resource packs in that world's settings. Enable experimental features only when the add-on explicitly requires them.
- Enter the world once and confirm the add-on works.
- Export or locate the complete world folder, then stop the dedicated server.
- Upload the world under the BDS
worldsdirectory and setlevel-nameinserver.propertiesto the folder name. - Start the server, inspect the console for pack errors, and join with a test account.
This workflow lets the Bedrock client write the world pack-registration files and any required world settings. It also gives you a disposable place to discover that an add-on is outdated before touching the live world.
Method 2: register extracted packs manually
1. Extract and place the packs
An .mcpack or .mcaddon is a package, not the final server directory. Extract it and locate each pack folder containing its own manifest.json. Put behavior-pack folders in behavior_packs and resource-pack folders in resource_packs. BDS also supports world-specific pack folders inside the active world directory.
2. Read the manifest header
Open each pack's manifest.json. Register the UUID and version from the header, not a dependency or module UUID. A simplified header looks like this:
{
"header": {
"name": "Example Pack",
"uuid": "743f4c0a-1111-2222-3333-0123456789ab",
"version": [1, 0, 0]
}
}
3. Register the pack to the active world
In the active world folder, add behavior packs to world_behavior_packs.json:
[
{
"pack_id": "743f4c0a-1111-2222-3333-0123456789ab",
"version": [1, 0, 0]
}
]
Add resource packs in the same shape to world_resource_packs.json. Keep valid JSON: use commas between multiple objects, no trailing comma after the last object, and version numbers that exactly match the manifest header.
4. Decide whether clients must accept resources
In server.properties, this setting requires players to accept the server's resource pack before joining:
texturepack-required=true
It does not register a missing pack or repair a bad manifest; it only changes the client-download requirement for resources the world already loads.
Common add-on failures
| Symptom | Likely cause | Fix |
|---|---|---|
| Pack does not appear in the console | Wrong folder depth or no manifest.json at the expected pack root | Remove the extra wrapper directory and restart. |
| Missing dependency | A behavior pack expects a paired resource pack or library | Install the matching package and version listed in the manifest dependencies. |
| Invalid pack UUID/version | The world JSON uses a module UUID, typo, or old version | Copy the header UUID and version exactly. |
| Clients loop on “Loading resources” | Large, corrupt, or incompatible resource pack | Test one pack at a time and inspect both server and client logs. |
| World opens but features are absent | Pack is not activated for that world, or required experiments are missing | Use the local-world method and enable only the documented experiments. |
| World breaks after an update | Add-on targets an older Bedrock build | Restore the backup and wait for a compatible pack release. |
Marketplace and Realms are different
BDS can run user-created behavior and resource packs, but it is not a drop-in replacement for every Marketplace product. Realms Plus is Mojang's native route for the included Marketplace Pass catalog. Check the license and export behavior of a Marketplace world or add-on before assuming it can be copied to a third-party BDS instance.
Related Bedrock guides
- Fix Bedrock UDP port 19132 and connection errors
- Understand Java, Bedrock, Realms, and cross-platform limits
- Compare free Bedrock hosting with always-on options
- Compare Bedrock hosts, Realms, free hosting, and DIY
Host a Minecraft Bedrock server with Supercraft if you want managed BDS, world uploads, file access, and backups.