Bedrock Edition powers the version of Minecraft that runs on Xbox, PlayStation, Nintendo Switch, iOS, Android, and Windows — and it uses a completely different server binary than Java Edition. If you've tried to point a Bedrock client at a Java server, you already know it fails silently: the two editions are not network-compatible without a proxy layer like Geyser. A dedicated Bedrock Dedicated Server (BDS) is Mojang's own official server binary, and it's what you need if your friend group is mostly on consoles or mobile rather than PC.

Most of the confusion first-time Bedrock hosts run into traces back to reusing Java-focused tutorials without realizing how different the two servers are under the hood — different ports, a different protocol (UDP instead of TCP), a different customization model (data-driven add-ons instead of compiled plugins), and different account/permission handling tied to Xbox Live identity rather than a Mojang username. Getting these differences straight up front saves hours of debugging a "server won't show up" problem that's really just a firewall rule copied from the wrong guide.

This guide covers the BDS binary specifically: how it differs from Java in configuration and resource use, the exact ports and firewall rules consoles need to connect, add-on installation, Xbox Live/account linking quirks, and the troubleshooting steps that resolve 90% of "can't connect" tickets.

What Is a Bedrock Dedicated Server?

BDS is a free, official server executable Mojang publishes for Windows and Linux that runs the same core engine as the Bedrock client — meaning multi-threaded chunk and entity processing, unlike Java's largely single-threaded tick loop. In practice this means:

  • Bedrock servers generally handle higher player counts on similar hardware more gracefully than Java, since work spreads across cores
  • There is no Spigot/Paper/Forge equivalent ecosystem — customization comes from Mojang's official add-ons (behavior packs and resource packs) rather than Java-style plugins/mods
  • Cross-play works natively between Windows, mobile, Xbox, PlayStation, and Switch clients connecting to the same BDS instance
  • Third-party tools like PocketMine-MP and Nukkit exist for plugin-style customization but run a reimplementation of the protocol, not the official binary

System Requirements and Pricing

BDS is lighter on RAM per player than a heavily-plugin-loaded Java server, but its multi-threaded design means it benefits more from additional cores than Java does.

Player CountRAMCPUStorageTypical Monthly Price
2-5 (family/friends)2-4 GB2 vCPU15-20 GB NVMe$6-$12
6-15 (small community)4-6 GB2-4 vCPU25-40 GB NVMe$14-$28
16-30 (public server, add-ons)6-10 GB4-6 vCPU50-80 GB NVMe$32-$55
30+ (large cross-play community)10-16 GB6-8 vCPU100-150 GB NVMe$60-$100

Because console players are especially latency-sensitive (input lag stacks with network lag differently than on PC), pick a data center region close to the majority of your playerbase over squeezing a few extra dollars of savings from a farther-away location.

Why Bedrock Scales Differently Than Java Per Dollar

Because BDS spreads chunk and entity processing across multiple cores rather than leaning on one fast core the way Java does, a mid-tier multi-core VPS plan often hosts more Bedrock players comfortably than the same plan would host Java players. This doesn't mean core count matters more than clock speed outright — a modern high-clock CPU with several cores still outperforms an older many-core-but-slow-clock CPU — but it does mean you have a bit more flexibility in CPU selection for Bedrock than for Java, where a single slow core caps your whole server regardless of how many other cores sit idle.

Step-by-Step Setup

1. Download the Bedrock Dedicated Server Binary

Download the Linux bedrock-server zip directly from Mojang's official Bedrock download page (matching the version your players' clients are on — Bedrock auto-updates on consoles and mobile, so check the current release before downloading). Unzip it into its own directory, e.g. /opt/bedrock/, and make the binary executable with chmod +x bedrock_server.

2. Install Required Libraries

The Linux BDS build depends on specific shared libraries (libcurl and OpenSSL versions in particular). On Ubuntu: sudo apt install -y libcurl4 libssl-dev. If the binary fails to launch with a "shared library not found" error, this is almost always the cause — check with ldd bedrock_server to see which library is missing.

3. Configure server.properties

Bedrock's server.properties shares some keys with Java but has Bedrock-specific ones too:

KeyRecommended ValueNotes
server-nameyour server nameShown in the in-game server list
gamemodesurvivalsurvival, creative, or adventure
difficultynormal or hardSame semantics as Java
max-playersmatch your planBDS handles higher counts more gracefully than Java per core
view-distance16-24Bedrock's multi-threaded chunk loading tolerates a higher view-distance than Java before lag appears
server-port / server-portv619132 / 19133IPv4 and IPv6 UDP ports — both must be open
allow-cheatsfalseEnable only for testing/creative builds
default-player-permission-levelmemberUse operator sparingly and only for trusted admins
texturepack-requiredfalseSet true only if you're distributing a required resource pack
tick-distance4-10Separate from view-distance — controls how far the server actively simulates rather than just streams terrain to clients
compression-threshold1Controls the packet size above which compression kicks in; lower values trade CPU for bandwidth savings
content-log-file-enabledtrueKeeps a log of add-on content errors, invaluable when a behavior pack silently fails to apply

Bedrock vs Java: Quick Reference for Switchers

If you've hosted Java before and are setting up your first Bedrock server, these are the differences that trip people up most:

AspectJava EditionBedrock Edition
ProtocolTCPUDP
Default port2556519132 (IPv4) / 19133 (IPv6)
CustomizationCompiled plugins (Paper/Spigot) or mods (Forge/Fabric)Data-driven behavior/resource packs (add-ons)
Player identityMojang account username/UUIDXbox Live gamertag/XUID
Remote adminBuilt-in RCON protocolConsole commands only, no native RCON
Threading modelMostly single-threaded world tickMulti-threaded chunk/entity processing

4. Open the Correct Ports (UDP, Not TCP)

This is the single biggest difference from Java hosting and the top cause of "server not showing up" tickets: Bedrock uses UDP, not TCP, on ports 19132 and 19133. If your firewall rule is written for TCP (a common copy-paste mistake from Java guides), consoles and mobile clients will simply time out with no useful error message. With UFW: sudo ufw allow 19132/udp and sudo ufw allow 19133/udp.

5. Run BDS as a Persistent Service

Same principle as Java: don't run it in a bare SSH session. Use a systemd unit with Restart=on-failure, running as a dedicated non-root user, with LimitNOFILE raised if you expect high player counts (BDS opens more file descriptors per connection than you'd expect under load).

6. Add Behavior Packs and Resource Packs

Drop pack folders into behavior_packs/ and resource_packs/, then reference their UUID and version in world_behavior_packs.json and world_resource_packs.json inside the world folder. Unlike Java plugins, packs are data-driven (JSON/JS-based add-ons) rather than compiled code, which means most add-ons are safe to install without worrying about server-breaking bugs — but also means the customization ceiling is lower than a full Java plugin.

7. Set Up Whitelisting and Permissions

Edit allowlist.json to restrict who can join by Xbox Live gamertag or account name, and permissions.json to grant operator status to trusted players by their XUID (Xbox User ID) — not just their display name, since display names can change.

7a. Understand the Permission Levels

BDS supports three permission tiers in permissions.json: visitor (can look around but not build or interact with most objects — useful for a spectator/trial account), member (the default, full building and interaction rights), and operator (full admin commands including world settings and player management). Grant operator sparingly; unlike a Java ops list where you can quickly demote someone, a compromised or careless operator account on Bedrock can do a surprising amount of damage to a shared world before anyone notices.

8. Tune Server-Side Performance Flags

BDS exposes a handful of performance-relevant keys beyond the obvious ones: tick-distance (a separate, often-overlooked setting from view-distance that governs how far the server actively simulates rather than just streams terrain), max-threads (set to 0 to let BDS auto-detect available cores, or pin a specific count if you're co-locating other services on the same box), and compression-threshold for tuning network packet compression versus CPU trade-off on bandwidth-constrained connections.

9. Set Up a Custom Domain for Console Players

Unlike Java, most Bedrock clients enter a server by typing the address directly into the "Add Server" screen, so a memorable domain (via a simple A record) is genuinely useful, especially for communities with players who aren't comfortable typing a raw IP correctly on a controller. Point an A record at your server's public IP and share the domain instead of the numeric address.

Common Issues and Troubleshooting

Console Players Can't Find the Server

Console and mobile clients typically join via direct IP entry in the "Servers" tab rather than LAN discovery, since LAN broadcast doesn't cross the internet. Double-check players are entering the correct public IP and port 19132, and that outbound NAT/firewall rules on your host aren't blocking the UDP handshake.

"Failed to Connect: Timed Out"

Almost always a UDP firewall issue, not a server problem. Verify with sudo ss -lun | grep 19132 that the process is actually listening, then confirm the cloud firewall (in addition to the OS firewall) allows inbound UDP on that port.

Xbox Live Account Linking Issues

If a player's Xbox Live account isn't properly linked to their Microsoft account used for Minecraft, they may see generic connection errors unrelated to your server config at all — this is a client-side account issue, not something you can fix server-side.

Chunk Pop-In or Rubber-Banding on Console

Lower view-distance first; console hardware (especially older Xbox One/PS4 generations still in use) renders fewer chunks client-side regardless of what the server sends, so an aggressively high view-distance just wastes server CPU and bandwidth without improving what the player sees.

World Won't Load After a BDS Version Update

Bedrock world format changes occasionally between major versions. Always back up the worlds/ folder before updating the binary, and check Mojang's release notes for breaking world-format changes before upgrading a live server.

Add-On Behavior Pack Not Applying In-World

Check that the pack's UUID and version array in world_behavior_packs.json exactly match the pack's own manifest.json — a version mismatch between the two files is the single most common reason a correctly-installed pack silently fails to activate.

Players Get Kicked With "Disconnected: Timeout"

This can be a genuinely underpowered box struggling to keep up with tick processing under load rather than a pure network issue on Bedrock, since BDS behaves poorly (rather than just slowing down) once CPU is fully saturated. Check CPU usage during peak hours before assuming it's purely a firewall or routing problem.

Inconsistent Performance Between Console Platforms

Older console hardware (base Xbox One, PS4) renders and processes client-side physics differently than a Series X/PS5 or PC client, so the same server can feel smoother on newer hardware even with identical server-side settings — this is a client hardware ceiling, not something you can tune away server-side.

Troubleshooting Reference Table

SymptomLikely CauseFix
Server not visible to any platformUDP 19132/19133 blockedVerify with ss -lun that BDS is listening, then check both OS and cloud firewall rules
PC/Windows players connect but consoles can'tConsole-specific NAT/UPnP quirk or platform account restrictionConfirm the player's platform multiplayer privacy settings allow joining external servers
Add-on visuals missing for some playersResource pack not marked requiredSet texturepack-required=true if the pack is essential to gameplay clarity, not just cosmetic
Server crashes after several hoursMemory growth from long uptime with many loaded chunksSchedule a daily restart during low-traffic hours
Permissions not applying to a playerpermissions.json keyed by display name instead of XUIDRe-add the entry using the player's XUID, which doesn't change if they rename their gamertag

Common Mistakes to Avoid

The most frequent Bedrock-hosting mistake is copy-pasting Java firewall instructions and opening TCP 25565 instead of UDP 19132/19133 — the two editions share almost nothing at the networking layer, so a Java-focused tutorial will actively mislead you here. A second common mistake is assuming behavior packs work like Java plugins and expecting compiled-code-level customization; Bedrock add-ons are data-driven, so certain deep gameplay changes simply aren't possible without a proxy layer like a PocketMine-MP reimplementation. A third mistake is never rotating server logs — BDS log files can grow surprisingly large on a busy public server over weeks of uptime, quietly eating into your storage allocation until a backup or update fails for lack of space.

Buyer's Checklist

  • Confirm the host supports UDP traffic on custom ports — some budget shared hosts restrict this
  • Check that the plan gives you shell/SSH access to edit allowlist.json and permissions.json directly, not just a limited web panel
  • Pick a data center region close to your actual playerbase — console players notice latency more than PC players typically report
  • Verify NVMe storage for smoother chunk streaming to multiple simultaneous clients
  • Ask whether the provider auto-updates BDS or requires manual binary swaps — automatic updates can break add-ons if not tested first
  • Check DDoS protection specifically for UDP floods, which are a common attack vector against game servers

BDS vs Minecraft Realms for Console-Heavy Groups

Before committing to self-hosted BDS, it's worth an honest look at Minecraft Realms, Mojang's official subscription hosting — because for some groups, Realms genuinely is the simpler answer. Realms requires zero server administration, works identically across every Bedrock platform, and handles updates automatically. What you give up is control: no shell access, no custom permission tiers beyond the basic operator toggle, a hard player cap, no ability to install arbitrary community add-ons outside the curated Marketplace content, and no way to schedule your own backups or restarts on your own terms.

FactorMinecraft RealmsSelf-Hosted BDS
Setup effortNone — subscribe and inviteRequires Linux/Windows admin work up front
Player capFixed low cap per subscription tierConfigurable, limited only by your hardware
Add-on freedomCurated Marketplace content onlyAny behavior/resource pack you can install yourself
Admin controlBasic operator toggle, no consoleFull console, allowlist, permissions.json, logs
BackupsAutomatic, limited restore controlFully scriptable on your own schedule
Custom domain / fixed addressNot applicableYes, via your own A record

The practical rule: if your group is under the Realms player cap, wants zero maintenance, and is happy with Marketplace-only content, Realms is a fine choice. The moment you want more players, community add-ons, granular permissions, or real backup control, self-hosted BDS pays for the extra setup effort within the first month of ownership.

Performance Tuning Walkthrough

If your server already runs but feels rough at peak hours, work through these steps in order rather than changing several settings at once — you want to know which change actually fixed the problem.

Step 1: Establish a Baseline

Record CPU and RAM usage during a normal busy evening with htop or your host's monitoring panel, and note whether complaints cluster around specific activities (large redstone contraptions, mob farms, several players exploring fresh chunks simultaneously). Chunk generation during exploration is the single most expensive routine activity on most Bedrock servers, and knowing whether that's your trigger changes which fix applies.

Step 2: Tune View-Distance and Tick-Distance Together

Drop view-distance by 4 and tick-distance by 2, restart, and observe for a full day before adjusting further. Because tick-distance governs active simulation while view-distance only streams terrain, cutting tick-distance usually buys more CPU headroom per unit of visual impact — most players never notice a tick-distance reduction, but they will notice fog creeping closer from an aggressive view-distance cut.

Step 3: Right-Size max-threads for Your Box

Leave max-threads at 0 (auto-detect) if BDS is the only serious workload on the machine. If you co-locate other services — a website, a second game server — pin it to your core count minus one or two so BDS doesn't starve everything else during chunk-generation bursts.

Step 4: Verify Under Real Load

Re-check your baseline metrics at the next peak session. If CPU is now comfortable but players still report rubber-banding, the remaining issue is more likely network path or client hardware (older consoles especially) than server tuning — which saves you from endlessly twisting server-side knobs that were never the bottleneck.

Real-World Scenario: A Cross-Play Family Server

A typical BDS use case looks like this: six players spread across a Switch, two phones, an Xbox, and two Windows PCs, playing a shared survival world a few evenings a week. A 2 vCPU / 4 GB VPS handles this comfortably with view-distance at 16 and tick-distance at 4. The admin sets up the allowlist with each player's gamertag, grants operator only to one adult account by XUID, schedules a nightly restart with a worlds/ backup beforehand, and points a family domain name at the server so nobody has to type an IP on a controller. Total monthly cost lands under ten dollars — cheaper than most subscription alternatives once you pass a handful of players — and the world survives console upgrades, phone replacements, and every platform's auto-updates because the single source of truth lives on the server, not on any one device.

Frequently Asked Questions

Can Bedrock and Java players play together?

Not natively. You need a proxy like Geyser (with Floodgate for account handling) running alongside a Java server to translate the Bedrock protocol — a standalone BDS instance only accepts Bedrock clients.

Do Xbox and PlayStation players need anything special to join?

No extra software — Bedrock cross-play is built into the platform. They just need the server's public IP and port entered under "Servers" in the game, and (if you've enabled console-to-console multiplayer settings) the appropriate platform account permissions enabled.

How much lower is Bedrock's hardware cost compared to Java for the same player count?

Generally 20-30% less RAM for the same player count, mostly because there's no plugin ecosystem adding overhead — though this varies heavily with how many add-ons and how large the world is.

Can I run BDS on Windows instead of Linux?

Yes, Mojang publishes both Windows and Linux BDS builds, but Linux is almost always cheaper to host and lower-overhead for a 24/7 dedicated server since you avoid GUI/desktop licensing and resource overhead entirely.

Why does my Bedrock server show as "outdated" to some players?

Bedrock clients auto-update quickly across platforms, and BDS must match the protocol version of connecting clients closely. If you're running an older BDS binary against newly auto-updated mobile/console clients, they may be blocked from joining until you update the server.

Does BDS support world backups the same way Java does?

Yes conceptually — stop the server or use the save hold/save resume console commands to get a consistent snapshot, then copy the worlds/ directory. The underlying region file format differs from Java's, so tools built for Java world editing (like some map viewers) won't open a Bedrock world without a conversion step.

Can I run add-ons and a proxy like Geyser on the same server at once?

Not on the same instance — Geyser runs alongside a Java server to translate Bedrock clients into that Java world, while official BDS add-ons only work on a native Bedrock world. Pick one architecture: native BDS with add-ons for a Bedrock-only or console-heavy community, or Java-plus-Geyser if you want the deeper Java plugin ecosystem with Bedrock clients able to join too.

How do I know which BDS version matches my players' clients?

Check the version number shown in the Bedrock client's main menu or store listing against Mojang's official Bedrock server download page before updating — mismatched major versions are the most common cause of sudden "outdated server" errors after a client-side auto-update rolls out.

Is there an equivalent to Java's RCON for remote Bedrock administration?

BDS doesn't ship a built-in RCON console the way Java servers commonly do; most admin tasks happen via server console commands directly or through third-party wrapper tools that read the server's standard input/output — factor this into your automation plans if you're used to scripting Java servers via RCON.

What happens if I set tick-distance higher than view-distance?

The server will simulate more area than it visually streams to clients, which wastes CPU without any visible benefit to players — keep tick-distance at or below view-distance, and in most cases meaningfully below it, since simulation is the more expensive of the two operations per chunk.

Do I need different hardware for a survival server versus a creative building server?

Creative servers generally need less CPU since there's no hostile mob AI or combat simulation running constantly, but can still need generous RAM if players build very large, detail-heavy structures that push entity and block-state counts up — don't assume "creative equals lightweight" without checking your actual build sizes.

Bedrock's UDP-based, multi-threaded design makes it a genuinely different beast to host than Java, and getting the firewall rules right up front saves hours of "why can't my friends connect" debugging. WebsNP's VPS hosting plans support custom UDP port configuration out of the box, and our Linux dedicated servers give you full root access for larger cross-play communities — reach out if you want help sizing a plan for your expected player count. If your group is split between Java and Bedrock, our Minecraft Java dedicated server guide covers the Geyser-compatible side, and our SteamCMD guide is useful if you're also running Steam-distributed survival titles on the same box.