How to Make a Minecraft Bedrock Dedicated Server With Addons

Running your own Minecraft Bedrock dedicated server gives you full control over the world, the rules, and the gameplay experience. The official Bedrock Dedicated Server (BDS) is a free, lightweight server application from Mojang that runs on Linux and Windows. But where most guides stop at “it’s running,” the real power comes from addons: behavior packs and resource packs that change mobs, items, recipes, and entire game mechanics.

This guide walks through the complete process: downloading and extracting BDS, configuring `server.properties`, opening the correct ports, and—critically—installing and enabling addons the right way so they actually load into your world.

Key Takeaways
• The Bedrock Dedicated Server (BDS) is a free official server from Mojang for Linux and Windows.
• Core configuration lives in `server.properties` (level name, gamemode, allow-list, ports).
• Bedrock uses UDP port 19132 by default—this must be open in your firewall and router.
• Addons go into the world’s `behavior_packs` and `resource_packs` folders.
• Dropping packs in a folder is not enough—you must reference them in `world_behavior_packs.json` and `world_resource_packs.json` with the correct UUID and version.

What Is the Bedrock Dedicated Server (BDS)?

The Bedrock Dedicated Server is the official server software for the Bedrock edition of Minecraft—the version that runs on Windows 10/11, mobile, consoles, and VR. Unlike a LAN world hosted from the game client, BDS runs as a standalone process that can stay online 24/7, accept many simultaneous players, and apply custom server-side configuration and addons.

BDS is distributed as a simple `.zip` archive. There is no installer—you extract it, edit a few text files, and run the executable. This simplicity makes it ideal for a VPS or dedicated server where you want full root control.

System requirements

BDS is lightweight compared to a modded Java server, but addons and player count both increase the load. As a practical baseline:

  • RAM: 1 GB minimum for a small world; 2–4 GB is comfortable for several players plus addons. Large worlds with many entities benefit from more.
  • CPU: Minecraft server tick processing is largely single-threaded, so per-core performance matters more than core count. A modern CPU with strong single-thread speed keeps the tick rate stable.
  • Storage: An SSD dramatically improves world chunk loading and saving versus a spinning disk.
  • Network: Low latency and stable bandwidth matter more than raw throughput. A reliable connection keeps gameplay smooth.

How Do You Download and Extract BDS?

Download the latest BDS archive from the official Minecraft website (link in the sources below). Choose the build matching your operating system.

On Linux:

“`bash

mkdir -p ~/bedrock-server && cd ~/bedrock-server wget https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-VERSION.zip

unzip bedrock-server-VERSION.zip “`

On Windows (PowerShell):

“`powershell

Expand-Archive -Path .\bedrock-server-VERSION.zip -DestinationPath C:\bedrock-server “`

After extraction you will see the server executable (`bedrock_server` on Linux, `bedrock_server.exe` on Windows), plus `server.properties`, `allowlist.json`, `permissions.json`, and `behavior_packs` / `resource_packs` folders.

How Do You Configure server.properties?

The `server.properties` file is plain text—one `key=value` per line. These are the settings most worlds need to set first:

Setting Example value What it does
`server-name` `My Bedrock Server` Name shown in the server list
`gamemode` `survival` Default mode: `survival`, `creative`, or `adventure`
`difficulty` `normal` `peaceful`, `easy`, `normal`, or `hard`
`level-name` `Bedrock level` Folder name of the world under `worlds/`
`level-seed` (blank) Seed for generating a new world
`allow-list` `true` If `true`, only players in `allowlist.json` may join
`online-mode` `true` Requires authenticated Xbox Live accounts
`server-port` `19132` IPv4 UDP port clients connect to
`server-portv6` `19133` IPv6 UDP port
`max-players` `10` Maximum concurrent players
`view-distance` `10` Chunk render distance (higher = more CPU/RAM)

`level-name` is especially important for addons: it tells BDS which folder under `worlds/` is the active world, and that is exactly the folder where your addon JSON manifests must live.

If you set `allow-list=true`, add players to `allowlist.json` so they can connect:

“`json [ { “name”: “PlayerOne” }, { “name”: “PlayerTwo” } ] “`

How Do You Open the Ports and Firewall (19132 UDP)?

Bedrock networking runs over UDP, not TCP—this trips up a lot of first-time hosts. The default port is 19132 (IPv4) and 19133 (IPv6). You must allow this traffic on the server’s firewall, and if players connect from the internet, forward it on your router or open it in your cloud provider’s security group.

Linux (ufw):

“`bash sudo ufw allow 19132/udp sudo ufw allow 19133/udp “`

Windows (PowerShell, as Administrator):

“`powershell New-NetFirewallRule -DisplayName “Minecraft Bedrock” -Direction Inbound ` -Protocol UDP -LocalPort 19132 -Action Allow “`

On a cloud VPS or dedicated server, also add an inbound UDP rule for 19132 in the provider’s network firewall or security group—otherwise the OS-level rule alone will not let players in.

How Do You Run the Server?

From inside the server directory:

Linux:

“`bash

LD_LIBRARY_PATH=. ./bedrock_server “`

Windows:

“`powershell .\bedrock_server.exe “`

On first launch BDS generates the world (using `level-name` and `level-seed`), prints `Server started`, and begins listening on port 19132. To keep it running after you disconnect from a Linux server, run it inside a `screen` or `tmux` session, or wrap it in a `systemd` service.

How Do You Add Addons (Behavior and Resource Packs)?

This is the part that separates a vanilla server from a customized one. A Bedrock addon is one or both of:

  • Behavior packs — change *logic*: mob AI, loot tables, recipes, custom entities, gameplay rules.
  • Resource packs — change *visuals and audio*: textures, models, sounds, UI.

Addons are distributed as `.mcpack` (a single pack) or `.mcaddon` (a bundle of packs, often one behavior + one resource pack). Both are just renamed `.zip` files.

Step 1: Get the pack files into the server folders

Each pack is a folder containing a `manifest.json`. Place them in the server’s top-level pack directories:

“` bedrock-server/ ├── behavior_packs/ │ └── MyAddonBP/ │ └── manifest.json ├── resource_packs/ │ └── MyAddonRP/ │ └── manifest.json └── worlds/ └── Bedrock level/ ← matches level-name ├── world_behavior_packs.json └── world_resource_packs.json “`

If you have a `.mcaddon` or `.mcpack`, rename it to `.zip`, extract it, and copy the resulting behavior/resource pack folders into the matching directories above.

Step 2: Read the UUID and version from each manifest

Open the pack’s `manifest.json`. The `header.uuid` and `header.version` are what the world uses to identify the pack:

“`json { “format_version”: 2, “header”: { “name”: “My Addon Behavior Pack”, “uuid”: “a1111111-2222-3333-4444-555555555555”, “version”: [1, 0, 0], “min_engine_version”: [1, 21, 0] }, “modules”: [ /* … */ ] } “`

The detail almost every beginner misses: dropping a pack into `behavior_packs` or `resource_packs` does not activate it. Those folders are just a library of available packs. A pack only loads when the specific world references its UUID and version in `world_behavior_packs.json` (for behavior packs) or `world_resource_packs.json` (for resource packs). If your addon “isn’t working,” 90% of the time it’s because this manifest reference is missing, has a mismatched UUID, or the wrong version array.

Step 3: Enable the addon in the world’s JSON manifests

Inside the world folder (the one matching `level-name`), create or edit these two files.

`world_behavior_packs.json`:

“`json [ { “pack_id”: “a1111111-2222-3333-4444-555555555555”, “version”: [1, 0, 0] } ] “`

`world_resource_packs.json`:

“`json [ { “pack_id”: “b6666666-7777-8888-9999-000000000000”, “version”: [1, 0, 0] } ] “`

The `pack_id` must exactly match the `header.uuid` from each pack’s `manifest.json`, and the `version` array must match `header.version`. List multiple packs by adding more objects to the array—order matters for resource packs, since later entries override earlier ones.

Step 4: Restart and verify

Stop and restart BDS. On startup it reads the world manifests, loads each referenced pack, and reports any pack it cannot find or whose UUID/version does not match. Watch the console output—a missing or mismatched UUID will be logged there, which is your fastest debugging signal.

A quick reference for the folder-and-manifest relationship:

Layer Location Purpose
Pack library `behavior_packs/` and `resource_packs/` Stores available packs (not yet active)
Pack identity each pack’s `manifest.json` → `header.uuid` + `version` Unique ID the world references
World activation world’s `world_*_packs.json` Lists `pack_id` + `version` to actually load

DarazHost provides the VPS and dedicated server hosting that a Bedrock server with addons needs to run well around the clock. You get full root access to install BDS, edit `server.properties`, and manage your own UDP firewall rules—including direct control over port 19132. Our servers pair generous RAM and high-clock CPUs (ideal for Minecraft’s single-thread-heavy tick loop) with SSD storage for fast chunk loading and a reliable, low-latency network that keeps gameplay smooth for players worldwide. With 24/7 support and the resources to keep your world online continuously, DarazHost is built for hosting game servers, not just websites.


Tips for a Stable Bedrock Server With Addons

  • Match `min_engine_version` in each addon to your BDS version. An addon built for a newer engine may fail silently on an older server.
  • Back up the world folder before adding or updating addons—a bad manifest can prevent the world from loading.
  • Update BDS and addons together. When you upgrade BDS, re-check that addon versions still match.
  • Keep allow-list on while testing so random players don’t join an unfinished setup.
  • Watch the console on every restart; it is the single best source of truth for whether packs loaded.

Frequently Asked Questions

Why isn’t my addon showing up even though it’s in the behavior_packs folder? Because the folder is only a library. The world must reference the pack’s UUID and version in `world_behavior_packs.json` (behavior) or `world_resource_packs.json` (resource). Add the correct `pack_id` and `version` entry, then restart.

What’s the difference between a behavior pack and a resource pack? A behavior pack changes game logic—mob behavior, recipes, loot, custom entities. A resource pack changes how things look and sound—textures, models, audio, UI. Many addons ship both together as a `.mcaddon`.

Do I need to open TCP ports for Bedrock? No. Bedrock uses UDP. Open 19132/UDP (IPv4) and 19133/UDP (IPv6) on the OS firewall, the router, and any cloud security group. Forgetting the UDP protocol is the most common connection failure.

How much RAM does a Bedrock server with addons need? Start with 1–2 GB for a small world and light addons. Add more for higher player counts, larger view distances, and addons that spawn many custom entities. 2–4 GB is a comfortable range for most small communities.

Can I host BDS on a normal home PC instead of a server? You can for testing, but for 24/7 availability you need a machine that stays on, has a stable connection, and lets you control the UDP firewall. A VPS or dedicated server with root access and a low-latency network is the reliable choice for a public, always-on world.

About the Author

Leave a Reply