VGKAMI
Advertise Get listed

Game Guides

How to Install Mods on a Minecraft Bedrock Server

October 26, 2026 11 min read

On a Minecraft Bedrock server, “mods” are Add-Ons: behavior packs, resource packs, or a paired set of both. To install one on Bedrock Dedicated Server (BDS), extract the creator’s .mcpack or .mcaddon, place each pack in the matching server folder, register its manifest header UUID and exact version in the active world’s JSON file, then restart the server. Java Edition .jar mods and Java loaders are not compatible with this process.

The most reliable installation has three matching links: a correctly extracted pack folder, the right BDS directory, and registration entries for the world named by level-name in server.properties. Back up the world before changing files, and verify client, server, and pack versions before anyone joins.

What are “mods” on a Minecraft Bedrock server?

Bedrock uses Add-Ons rather than Java-style mods. An Add-On can contain one or both of these pack types:

Pack type What it changes Folder on BDS World registration file
Behavior pack Gameplay rules, entity behavior, recipes, components, and mechanics behavior_packs/ world_behavior_packs.json
Resource pack Textures, sounds, models, UI assets, and other client-visible assets resource_packs/ world_resource_packs.json

A resource pack is the visual and audio side of an Add-On; a behavior pack supplies the game logic. Many creator downloads include both, and both must be installed and registered for the complete feature to work. A Java .jar file, Forge/Fabric loader, or Java-only configuration cannot be placed in these folders to make it run on Bedrock.

What does a new Bedrock Dedicated Server installation require?

Download the current Bedrock Dedicated Server package from Minecraft’s official download page. For a new installation, use the current requirements rather than older setup pages:

  • Windows 10 version 10.0.15063 or later, or Windows Server 2016 or later.
  • Ubuntu 22.04 LTS or later. An older Microsoft page lists Ubuntu 18 or later, but the current download page should control a new deployment.
  • At least 4 GB of RAM.
  • Between 180 MB and 1 GB of available storage for the server package and its files, as listed by Minecraft for 2026. Worlds and Add-Ons require additional space.
  • Firewall access for the configured Bedrock ports. The documented defaults are UDP ports 19132 and 19133; use the ports actually configured on your server.
  • File access to the BDS installation, either locally or through the host’s file manager/SFTP service.

Before uploading anything, start BDS once and create or identify the world you intend to modify. Stop the server cleanly before copying packs or editing registration files.

How do I install a Bedrock Add-On directly on BDS?

Direct folder installation is the repeatable method when you can access the server files. Perform the steps in order and change one pack at a time.

1. Stop BDS and make a backup

Stop the server process, then copy the active world folder, existing behavior_packs and resource_packs folders, and the current registration JSON files to a separate backup location. A backup lets you revert a broken pack or a bad JSON edit without losing progress.

2. Extract the creator’s download

Add-Ons commonly arrive as .mcpack or .mcaddon archives. Keep the original download, extract it on your computer, and inspect the extracted folders. Do not upload the archive as if it were the final pack directory unless your host explicitly performs extraction for you.

3. Check the pack’s root and manifest

Open each extracted pack folder. Its manifest.json must be directly inside that folder. If the path is Pack/Pack/manifest.json, move the inner folder up or upload only the inner folder; BDS will not find a manifest hidden by accidental double nesting.

Open manifest.json and record the header.uuid and exact header.version. The registration uses the header UUID, not a module UUID. Preserve every version component exactly, including all three numbers when the manifest supplies them.

4. Copy behavior and resource folders to BDS

Copy behavior-pack folders into the server’s top-level behavior_packs/ directory and resource-pack folders into the top-level resource_packs/ directory. If the Add-On contains both, copy both folders. Keep each pack as its own folder so its manifest remains at that folder’s root.

5. Find the active world directory

Read level-name in server.properties. Open the world directory with that exact name; this is where the registration files must be edited. BDS may contain several worlds, and editing a different world’s JSON has no effect on the world currently running.

6. Register the behavior pack

In the active world directory, open or create world_behavior_packs.json. It must contain a JSON array. Add an object using the behavior pack’s own manifest header UUID and version:

[{"pack_id":"11111111-1111-1111-1111-111111111111","version":[1,0,0]}]

The UUID and version above are an example of the required shape. Replace them with the values from the behavior pack’s header; do not copy values from a module entry or from a different pack.

7. Register the resource pack separately

In the same world directory, open or create world_resource_packs.json and add the resource pack’s own header values:

[{"pack_id":"22222222-2222-2222-2222-222222222222","version":[1,0,0]}]

A resource pack normally has a different UUID from its paired behavior pack. Use the resource manifest’s header UUID and version, not the behavior values. A behavior-only registration can change gameplay while leaving textures, models, sounds, or UI unchanged.

8. Validate and save the JSON

Remove comments and trailing commas. Save the files as plain UTF-8 without an editor-added byte-order mark. The outermost value must be an array, every string must use double quotes, and brackets and braces must be balanced. A JSON validator can catch syntax errors before you restart the server, but it cannot tell you whether you used the wrong UUID or edited the wrong world.

9. Restart BDS

Start the server again after changing registrations. BDS reads the world pack lists during startup; leaving the process running will not reliably apply a newly copied or newly registered pack.

10. Test from a Bedrock client

Join the target world with a Bedrock client and exercise the feature supplied by the Add-On: spawn the custom entity, test the gameplay rule, inspect the model or texture, play the sound, or open the changed UI. Test in a backup or staging copy first when the pack changes important world mechanics.

Should packs go in the server folder or inside the world folder?

Use the top-level directories for packs that may be used by more than one world. A pack placed in the server’s top-level behavior_packs/ or resource_packs/ directory is available to any world, but it still must be registered in the active world’s corresponding JSON file.

Use world-local placement when a pack belongs to only one world. Put the pack folder inside that world’s own pack directory and keep its registration JSON with that world. World-local placement reduces the chance that another world loads an Add-On unintentionally; top-level placement avoids duplicate copies when several worlds genuinely share the same pack.

What is the difference between a behavior pack and a resource pack?

Behavior packs control what the game does; resource packs control what players see and hear. Treat them as separate installations even when a download bundles them together.

Question Behavior pack Resource pack
Primary effect Rules, entities, interactions, recipes, and mechanics Textures, sounds, models, UI, and other assets
Required directory behavior_packs/ resource_packs/
Registration file world_behavior_packs.json world_resource_packs.json
If omitted from a paired Add-On Gameplay may be missing or incomplete Gameplay can work while visuals and audio remain unchanged

When a creator supplies both, register both manifests. Matching filenames are not enough; each side must have its own header UUID and version in the correct list.

How do I choose between direct installation and exporting a world?

Direct installation gives you precise control over folders, registrations, updates, and backups. World export can be easier when Bedrock’s local controls are more convenient than your host’s file tools, but the host must support importing the resulting world.

Factor Direct server-folder installation Single-player world export
File access Requires local file access or a host file manager/SFTP connection. Requires enough local Bedrock access to activate the Add-On and export or save the world, then a host import feature.
Repeatability High: copy the same folders and registration files to another world or backup. Depends on the host’s import process and the exported world state.
Portability between hosts Usually clearer because packs remain separate from the world. Varies by host; import rules and supported world formats differ.
Risk of unwanted settings Limited to the files you copy and register. The exported world can carry its existing settings, enabled packs, and other world state.

Choose direct installation when you administer BDS and want independently managed packs. Choose export only when your host documents world imports and the convenience outweighs carrying the local world’s settings.

How do version compatibility and pack updates work?

Keep the Bedrock client, BDS build, and Add-On version aligned. Microsoft gives examples in which 1.21.0 and 1.20.0 are incompatible and warns that protocol differences can occur between patch versions as well. Check each manifest’s min_engine_version and the creator’s current platform guidance before upgrading.

To update one pack safely:

  1. Stop BDS and back up the world and current pack folder.
  2. Replace only that pack’s folder with the new extracted version.
  3. Open the matching world registration JSON and copy in the new manifest header.version (and UUID if the creator changed it).
  4. Validate the JSON, restart BDS, and test the changed feature.
  5. Update one pack at a time so any regression has a clear cause.

Optional pack optimization can bundle loose files and minify JSON for large custom packs. Microsoft states that optimized packs require client version 1.26.40 or newer, so do not distribute an optimized build to clients below that requirement.

Why does my Bedrock Add-On upload but not load?

Check the failure points in this order. This sequence catches the most common installation mistakes without changing several variables at once.

The archive was never extracted

Confirm that the server contains a folder with manifest.json, not only a .mcpack or .mcaddon file. Extract locally when in doubt and upload the resulting pack folder.

The manifest is nested too deeply

Open the uploaded folder and verify that manifest.json is directly inside it. Correct paths such as behavior_packs/MyPack/manifest.json; incorrect paths include behavior_packs/MyPack/MyPack/manifest.json.

The pack is in the wrong directory

Behavior content belongs in behavior_packs/, while visual and audio content belongs in resource_packs/. An Add-On with both needs both folders.

The registration points to the wrong UUID or version

Compare the world JSON entry character by character with the pack’s header.uuid and header.version. A module UUID, an old version, or the UUID from the paired pack will prevent the intended registration from matching.

You edited a different world

Check level-name in server.properties, then inspect that world’s registration files. Multiple world folders make this mistake easy to miss.

The JSON is malformed

Remove comments and trailing commas, use double quotes, save as plain UTF-8, and validate the complete array. A single syntax error can stop an otherwise correct pack from loading.

BDS was not restarted

Stop and start the server after copying files or editing either registration list. Test only after the new process is running.

Two packs conflict

Conflicting Add-Ons can cause crashes, visual problems, or error messages. Restore the backup or use a staging copy of the world, disable packs one at a time, and restart between tests. For overlapping packs, test different orders and record which order produces the intended result; there is no universal rule that the first or last entry always wins.

Can I use Marketplace Add-Ons on a self-hosted BDS?

Minecraft Help says Add-Ons work in single-player, multiplayer, and Realms, but states that they are not supported on personal, non-Realms servers. Do not assume that a purchased Marketplace item can be copied into a self-hosted BDS installation.

For creator-supplied packs, use the direct-folder workflow above. For Marketplace content, verify the license terms and portability for that exact item before attempting an export or server upload; support can differ by product and platform.

Is self-hosting or managed hosting better for Add-Ons?

Self-hosting gives you full access to the BDS folders, registration JSON, backups, and firewall rules. It also makes you responsible for operating-system updates, port forwarding, crash recovery, storage, and maintaining compatible client and server versions.

Managed hosting can reduce maintenance and may provide a file manager, SFTP, scheduled backups, or one-click pack tools, but features vary by provider. Confirm that the plan permits Bedrock Dedicated Server, exposes both pack directories, allows world JSON edits, and provides a way to restore backups. A one-click installer cannot correct a wrong manifest UUID, an incompatible version, or a pack licensed only for supported Marketplace contexts.

Frequently Asked Questions

Can I install a Java Edition mod file on Bedrock Dedicated Server?

No. Java mods and their loaders target Java Edition’s server and client architecture. Bedrock Dedicated Server expects Add-On folders with Bedrock manifests, so obtain a Bedrock version of the project instead of renaming or uploading a Java .jar.

What does min_engine_version mean in a Bedrock manifest?

It declares the minimum Bedrock engine version the pack was built to support. A server and joining clients should meet that requirement, but satisfying it does not guarantee compatibility when the pack also depends on a particular game or protocol version.

How can I test an Add-On without risking my main world?

Duplicate the world while BDS is stopped, point level-name at the duplicate, and perform the installation and registration there. Keep the original backup untouched until the pack has passed gameplay and visual tests.

Why does a custom entity appear with missing textures?

That symptom commonly means the behavior pack loaded but its matching resource pack did not. Check that the resource folder is in resource_packs/, that its own header UUID and version are listed in world_resource_packs.json, and that you restarted BDS after making the change.