Skip to main content
← All Guides
Server Setup

How to Set Up a Bedrock Dedicated Server

The official bedrock_server boots in seconds and listens on UDP 19132. Unzip it, tune server.properties, forward one UDP port, and bridge Java players with Geyser.

bedrock_server.exe, UDP 19132ONLINE
PS C:\bedrock> .\bedrock_server.exe
[INFO] Starting Server
[INFO] Version: 1.21.40 (Bedrock Dedicated Server)
[INFO] Level Name: Bedrock level
[INFO] Game mode: 0 Survival
[INFO] Difficulty: 1 EASY
[INFO] opening worlds/Bedrock level/db
[INFO] IPv4 supported, port: 19132
[INFO] IPv6 supported, port: 19133
[INFO] Server started.
[INFO] Geyser bridge: Java clients connect via :25565
Steve joined the game
>
UDP, not TCP, the one thing people miss

Bedrock uses the RakNet protocol over UDP. When you forward port 19132 on your router, the rule must be UDP (or both), never TCP-only. If players outside your network time out while LAN players connect fine, the forward is wrong or the firewall is blocking UDP 19132.

Quick answers

+What port does a Bedrock server use?
Bedrock Dedicated Server listens on UDP port 19132 for IPv4 and 19133 for IPv6. It is UDP, so a TCP-only port forward will not work.
+Can Java players join a Bedrock server?
Not directly. Install Geyser (a proxy that translates the Bedrock protocol) so Java clients connect on 25565 while Bedrock players stay on 19132.
+Does Bedrock Dedicated Server support plugins?
The vanilla bedrock_server does not. For add-ons use behavior packs, or run a fork like PocketMine-MP or Nukkit if you need plugin-style features.
+How do I make myself an operator?
Use the op command in the console, or set the player's permission to operator in permissions.json, then restart the server.
+Why can my friends not connect?
Almost always UDP 19132 is not forwarded or is blocked by a firewall. Confirm the rule is UDP, not TCP, and that you shared your public IP.
+What is the allow-list?
Setting allow-list=true in server.properties restricts joins to names listed in allowlist.json, the Bedrock equivalent of a whitelist.
+Can a Bedrock server use mods or data packs?
No. Data packs and Java mods do not load on bedrock_server. The supported route is behavior packs and resource packs, placed in the world's behavior_packs and resource_packs folders and listed in that world's world_behavior_packs.json and world_resource_packs.json.
+How much RAM does a Bedrock server need?
Far less than Java. A 5 to 10 player vanilla world runs fine in 1 to 2 GB. There is no JVM, so you do not set -Xmx flags. Most load comes from view-distance and chunk generation, not from a heap size you tune.
+What does online-mode do and should I disable it?
online-mode=true (the default) verifies players against Xbox Live so names and accounts are authentic. Set it to false only on a fully isolated LAN. With it off anyone can spoof any gamertag, including your operators.
+How do I back up a Bedrock world safely?
Stop the server first, or run the save hold, save query, then save resume sequence in the console so the world files are flushed and consistent before you copy the worlds folder. Copying while the server writes can corrupt the level.dat.
+Why is my Bedrock server lagging with few players?
Usually view-distance is too high. Each step past 8 to 10 chunks raises CPU and bandwidth sharply. Lower view-distance in server.properties, and lower tick-distance, which is the Bedrock simulation distance (4 to 12), since redstone and mob ticks scale with it.

server.properties settings people get wrong

Most failed Bedrock setups are one wrong line in server.properties, not a broken server. These are the keys that cause the most support questions.

  • allow-cheats and gamemode
    allow-cheats=true lets operators run commands; it is separate from gamemode. Setting gamemode=creative in server.properties only changes the default for new players, it does not flip existing players, so use /gamemode for those already on the world.
  • Default-permission for operators
    default-player-permission-level controls what every joiner gets (visitor, member or operator). Leave it at member. Granting operator by default hands console-level commands to anyone who connects.
  • Texture pack delivery
    texturepack-required=true forces clients to download the world's resource pack before they spawn. If players get stuck on Receiving Resource Pack, the pack's manifest.json version array does not match what world_resource_packs.json lists.
  • Run a second instance
    To host two worlds on one machine, copy the whole server folder and change server-port to 19133 (and server-portv6 to a free port) in the second copy, then forward that UDP port too. Two instances cannot share port 19132.
Hosting
Skip the setup
Get a managed server with one click instead of configuring it all yourself.
Database
Bedrock block & item IDs
Look up exact Bedrock item and block identifiers for commands, give and behavior packs.