Skip to content

Minecraft Bedrock server.properties: The Complete Key Reference

Every server.properties key for Bedrock Dedicated Server 1.26.44.3 — values, defaults and effects — plus the Java keys that do nothing on Bedrock.

Updated August 19, 2026
Minecraft

Bedrock Dedicated Server (BDS) reads a file called server.properties, the same filename Java Edition uses. That is where the similarity ends. The two editions ship completely different key sets, and only eleven key names appear in both. Every other Java setting you paste into a Bedrock server.properties is read, not recognised, and silently ignored — no error, no warning, no effect.

This page documents every key the current Bedrock Dedicated Server accepts: name, valid values, default, and what it actually changes. For first boot, connecting and day-to-day operation see Setting up your Bedrock Minecraft server. For the Java Edition file, which is a different document entirely, see Minecraft server.properties: The Complete Reference.

This reference is current for Bedrock Dedicated Server 1.26.44.3

Every value below was read out of the server.properties and bedrock_server_how_to.html files shipped inside the official BDS 1.26.44.3 archive, the build served by Mojang's download API as of 18 August 2026. It corresponds to Bedrock Edition 26.44, released 14 August 2026. Bedrock adds and removes keys frequently, so check the comments in your own copy of the file if a key here is missing on your server.

1. How the File Works

The format is one key=value per line, and lines starting with # are comments. The server.properties inside Mojang's own BDS download is heavily commented — every key carries a short description and its allowed values — and that copy is worth keeping open while you work.

The file on your server here will not look like that

Our Bedrock egg generates server.properties fresh when the server installs, so the copy you open in the File Manager arrives with 41 active lines and no comments at all. Nothing is missing and nothing is broken — the keys are simply bare. Use this page, or the commented copy inside Mojang's BDS download, rather than expecting your own file to explain itself.

The file holds 68 recognised keys in total:

Where it appears Count Meaning
Active lines in the shipped file 41 Set to their default; edit in place
Commented out in the shipped file 25 Optional. Uncomment to use, otherwise the default applies
Documented but not present at all 2 enable-packet-rate-limiter and server-authoritative-block-breaking. Add the line yourself

A commented-out key is not a disabled key. It is a key running on its default. Uncommenting #enable-profiler=true and leaving the value alone changes nothing; you have to uncomment it and set the value you want.

Bedrock has no /reload — every change needs a restart

Java's /reload has no working equivalent on BDS. The server has to be restarted for a server.properties change to take effect. The single exception is the console command changesetting, which can flip allow-cheats and difficulty on a running server — and it does not write your choice back to the file, so the value reverts on the next restart unless you also edit the file.

Most keys are read on every startup. level-seed is the exception: it is only consulted when the world is first generated, so changing it on an existing world does nothing.

2. World and Gameplay

Key Values Default Effect
level-name Any string, no semicolon and no characters illegal in a filename Bedrock level Names the world, and names its folder under worlds/
level-seed Any string (empty) World generation seed. Empty means random. Read at world creation only
gamemode survival, creative, adventure survival Game mode new players start in
force-gamemode true, false false When false, the server never overrides the game mode saved with the world, even if you change gamemode afterwards. Set true to make a post-creation gamemode change actually apply
difficulty peaceful, easy, normal, hard easy World difficulty
allow-cheats true, false false Whether commands can be used at all. With this off, even an operator cannot run slash commands
texturepack-required true, false false Forces clients to accept the world's texture packs before joining

allow-cheats is the setting people miss

Making somebody an operator does not give them commands if allow-cheats is false. It is a world-level switch that sits above the permission system, and it is off by default. If /gamemode returns nothing at all for an operator, this is almost always why.

3. Players and Access

Key Values Default Effect
max-players Any positive integer 10 Player cap. Higher values cost performance
online-mode true, false true Requires every player to be authenticated with Xbox Live. Clients connecting to a remote (non-LAN) server are always required to authenticate regardless of this setting
allow-list true, false true Restricts joining to players listed in allowlist.json
default-player-permission-level visitor, member, operator member Role assigned to a player joining for the first time
allow-player-joining true, false true When false, nobody can join unless a script explicitly permits it via AsyncPlayerJoinBeforeEvent. Commented out by default
player-idle-timeout Any non-negative integer (minutes) 30 Kicks players idle for this long. 0 disables the timeout
chat-restriction None, Dropped, Disabled None Dropped silently discards chat and tells players the feature is off. Disabled hides the chat UI entirely from non-operators
disable-player-interaction true, false false Tells clients to ignore other players when interacting with the world. Not server-authoritative
disable-custom-skins true, false false Blocks skins made outside Minecraft's own store and in-game assets — the usual lever against offensive custom skins
disable-persona true, false false Marked "Internal Use Only" in Mojang's own documentation. Leave it alone

allow-list now defaults to true — a fresh server locks everybody out

This default changed. Bedrock Dedicated Server shipped allow-list=false for years and flipped to allow-list=true in the 26.30 release; BDS 1.26.23.1 still shipped false, and 1.26.30.5 shipped true. On a current build, an untouched server accepts nobody until you add them. Players who try get "You're not invited to play on this server." The fix is to add yourself, not to disable the list — see Bedrock Allowlist and Permissions.

4. Networking and Ports

Key Values Default Effect
server-port Integer 1–65535 (values under 1024 are reserved in practice) 19132 IPv4 port
server-portv6 Integer 1–65535 19133 IPv6 port. Ignored when transport=nethernet
transport raknet, nethernet raknet Network transport. See below
server-ip An IPv4 or IPv6 literal, or empty (empty) Local bind address. Empty binds all interfaces. Only used when transport=nethernet
server-udp-ports See below (empty) Constrains the UDP port window and can publish a NAT mapping. Only used when transport=nethernet
enable-lan-visibility true, false true Responds to LAN server discovery
compression-threshold Integer 0–65535 1 Smallest raw network payload that gets compressed. A CPU-versus-bandwidth trade
compression-algorithm zlib, snappy zlib Network compression algorithm
enable-packet-rate-limiter true, false false Applies the per-packet-type rate limits configured in packetlimitconfig.json. Not present in the shipped file — add the line

Bedrock is a UDP game. Java is TCP. That single difference explains most of the port confusion between the two editions.

enable-lan-visibility grabs 19132 and 19133 even when you moved the port

With transport=raknet, leaving LAN visibility on makes the server bind the default ports 19132 and 19133 as well as the ones you set in server-port and server-portv6. On a shared host that is a port conflict waiting to happen, and it is the reason two Bedrock servers on one machine can refuse to start even with different ports configured. Turn it off if you are not relying on LAN discovery.

The nethernet transport

transport selects how clients reach the server, and the two values behave very differently:

  • raknet — the traditional Bedrock UDP transport, and the default. The server listens directly on server-port and server-portv6, and clients connect to that address and port. This is how every earlier release worked.
  • nethernet — a WebRTC-based transport. The server opens a single dual-stack TCP socket on server-port for an HTTP-based signalling handshake, then negotiates a separate UDP connection with each client for gameplay traffic.

server-ip and server-udp-ports only do anything in nethernet mode. server-udp-ports either restricts the local UDP allocation window (49152-49200) or publishes a NAT mapping in the form [ip:]external[-external]:internal[-internal], for example 19132-19232:32000-32100 to bind locally on 32000–32100 while advertising 19132–19232 to clients. Ranges on both sides of the colon must be the same length. Multiple entries can be comma-separated, and the key may appear on more than one line to accumulate entries.

Because the NetherNet handshake speaks HTTP over TCP, Mojang's own documentation recommends putting a reverse proxy in front of server-port on an internet-facing server to enforce request and rate limits; only signalling traffic passes through it, while gameplay flows directly over the negotiated UDP connection.

5. Performance

Key Values Default Effect
view-distance Integer, 5 or greater 32 Maximum chunks a player can see. The single biggest performance lever
tick-distance Integer 4–12 4 How many chunks around each player actually simulate
max-threads Any positive integer 8 Thread cap. 0 or removing the key lets the server use as many as it can
client-side-chunk-generation-enabled true, false true Lets clients generate visual chunks beyond interaction distance, offloading work from the server
server-build-radius-ratio Disabled, or 0.01.0 Disabled Disabled lets the server decide dynamically how much of the player's view it generates. A fixed ratio overrides that regardless of client hardware. Only meaningful with client-side chunk generation on
block-network-ids-are-hashes true, false true Sends hashed, stable block network IDs instead of sequential ones

Lower view-distance first, tick-distance second

The shipped default of view-distance=32 is generous — it is a rendering distance, and dropping it costs players very little while saving a great deal of bandwidth and CPU. tick-distance is capped at 12 and defaults to the minimum of 4 already, so there is far less to reclaim there. Its Java counterpart is simulation-distance, not view-distance.

6. Server-Authoritative Movement and Anti-Cheat

This group replaced the old movement keys entirely (see section 8). All of it is about how strictly the server second-guesses the client, and every one of these settings is a latency trade: stricter settings catch more cheating and send more position corrections to honest players on bad connections.

Key Values Default Effect
server-authoritative-movement-strict true, false false Stricter about player position, less willing to accept the client's version. Clients get more corrections. Noticeable around moving blocks at high latency
server-authoritative-dismount-strict true, false false Stricter about dismount position. Corrects the client's dismount at higher latency
server-authoritative-entity-interactions-strict true, false false Stricter about entity interactions. Affects players interacting with each other at higher latency
player-position-acceptance-threshold Any positive float 0.5 Tolerance for client/server position disagreement before a correction is sent. Raise it to stop correcting honest players who were knocked back or pushed by a piston; values above 1.0 measurably increase the chance of missing a cheater
player-movement-action-direction-threshold Float in [-1.00, 1.00] 0.85 How far a player's attack direction may differ from their look direction, as the cosine of the angle between them. 1 demands they match exactly, 0 allows anything in front of the player, -1 allows anything
server-authoritative-block-breaking true, false false Server computes block mining in sync with the client and verifies the client should be able to break what it claims. Cannot be combined with client-authoritative movement and is disabled if that is set. Not present in the shipped file
server-authoritative-block-breaking-pick-range-scalar Float above 1.0 1.5 Extends block-breaking range. Squared, then multiplied by the default range. Only applies when the key above is true

7. Logging, Diagnostics and Scripting

Bedrock's add-on scripting API brings a block of keys Java has no analogue for. Nearly all of them are commented out in the shipped file.

Content logging — content errors are add-on and pack errors, the Bedrock equivalent of a plugin stack trace:

Key Values Default
content-log-file-enabled true, false false
content-log-console-output-enabled true, false false
content-log-level error, warning, info, verbose info

Script debuggerallow-outbound-script-debugging and allow-inbound-script-debugging (both false) gate the debugger's connect and listen modes. script-debugger-auto-attach (disabled, connect, listen) attaches at world load, using script-debugger-auto-attach-connect-address (host:port) in connect mode or force-inbound-debug-port (default 19144) in listen mode. script-debugger-auto-attach-timeout sets how long to wait at load, and script-debugger-passcode makes VS Code prompt for a passcode.

Script watchdog — enabled by default, and it is what stops a runaway add-on taking the server down. script-watchdog-enable, -enable-exception-handling, -enable-shutdown and -hang-exception all default to true; script-watchdog-hang-threshold is 10000 ms for a single-tick hang; -spike-threshold (100) and -slow-threshold (10) produce warnings and are disabled unless set. script-watchdog-memory-warning (100 MB, max 2000, 0 disables) logs a content warning, and script-watchdog-memory-limit (250 MB, max 2000, 0 disables) saves and shuts the world down.

Diagnostics and telemetrydiagnostics-capture-auto-start (false) starts a capture at world load, cycling through diagnostics-capture-max-files (5) files of diagnostics-capture-max-file-size (2097152 bytes) each. sentry-rate-limit-window (60 seconds) and sentry-max-events-per-window (10) throttle scripting errors reported to Sentry. enable-profiler turns on profiler support and enable-editor-network-metrics enables live network metrics in the debugger.

Editor and client renderingconvert-world-to-editor-project (false) upgrades a vanilla world to an Editor project, but only when the server is launched with the Editor=true command-line flag. disable-client-vibrant-visuals tells clients to fall back to the next best graphics setting instead of Vibrant Visuals.

8. Removed Keys That Guides Still Tell You To Set

Five movement keys are still quoted all over the internet, including in configuration generators. None of them exists any more. Setting them does nothing at all.

Dead key Last seen in Replaced by
server-authoritative-movement BDS 1.21.62.01 — gone from 1.21.70 onward server-authoritative-movement-strict
player-movement-score-threshold Present in BDS 1.20.30.02, gone by 1.20.81.01 Nothing directly
player-movement-distance-threshold Present in BDS 1.20.30.02, gone by 1.20.81.01 player-position-acceptance-threshold covers the same job
player-movement-duration-threshold-in-ms Present in BDS 1.20.30.02, gone by 1.20.81.01 Nothing directly
correct-player-movement Present in BDS 1.20.30.02, gone by 1.20.81.01 The server-authoritative-*-strict family

server-authoritative-movement also had three named values — client-auth, server-auth and server-auth-with-rewind — and those are gone with it. The current model is always server-authoritative, and the -strict keys only choose how tightly it is enforced.

9. Same Job, Different Name

These are the keys most likely to waste an hour. The behaviour exists on both editions; only the spelling changed.

Java Edition Bedrock Edition Notes
white-list allow-list Renamed in Bedrock 1.18.10. The file was renamed too: whitelist.json became allowlist.json
network-compression-threshold compression-threshold Same job. Bedrock adds compression-algorithm, which Java has no equivalent for
simulation-distance tick-distance Java's default is 10; Bedrock's is 4 and it is capped at 12
require-resource-pack texturepack-required Forces clients to accept the world's packs
motd server-name Not a true equivalent. server-name is the server's name; BDS has no way to set an MOTD line at all, even though Bedrock clients display one
ops.json permissions.json Different file, different format, different concept — see Bedrock Allowlist and Permissions

10. Java Keys With No Bedrock Equivalent

If a guide tells you to set one of these on a Bedrock server, the guide is about Java. The gaps that matter most operationally:

Missing on Bedrock Consequence
enable-rcon, rcon.port, rcon.password BDS has no RCON. There is no supported way to send console commands remotely
enable-query, query.port No Query protocol, so Query-based status tooling cannot see the server
motd No message of the day, as above
op-permission-level, function-permission-level Bedrock has no numeric permission level in its config. It uses three named roles
spawn-protection No spawn-protection radius
allow-flight No server-side flight check of this kind
hardcore No hardcore flag
level-type, generate-structures, generator-settings World generation is not configurable from server.properties
max-world-size No world border set from the properties file
resource-pack, resource-pack-sha1, resource-pack-prompt Bedrock serves packs from the world, not from a URL. Use texturepack-required plus the world's pack folders. The Java URL-and-SHA-1 workflow these keys belong to is in How to Install Datapacks and Resource Packs
pause-when-empty-seconds Bedrock does not pause an empty world
enforce-secure-profile, enable-status, hide-online-players, prevent-proxy-connections No equivalents
max-tick-time No tick watchdog. The script watchdog covers add-ons only

There is also no Bedrock equivalent of Java's -Xmx and -Xms. BDS has no JVM and no way to set an initial or maximum memory value; it takes what it needs.

11. The Eleven Keys Spelled the Same

These are the only key names that appear in both editions' server.properties:

difficulty · force-gamemode · gamemode · level-name · level-seed · max-players · online-mode · player-idle-timeout · server-ip · server-port · view-distance

Even here, three behave differently. server-ip is ignored on Bedrock unless transport=nethernet. view-distance defaults to 32 on Bedrock against Java's 10, and on Bedrock it is purely a view distance because ticking is governed by tick-distance. And server-port is a UDP port on Bedrock, a TCP port on Java.

12. A Sensible Starting Point

For a small private survival server on a managed host, this is the set worth changing from the defaults:

server-name=My Server
gamemode=survival
difficulty=normal
allow-cheats=true
max-players=10
online-mode=true
allow-list=true
view-distance=16
tick-distance=4
player-idle-timeout=0
enable-lan-visibility=false
default-player-permission-level=member
server.properties

allow-cheats=true is there because without it no one can run a command, operator or not. enable-lan-visibility=false avoids the default-port grab described in section 4. view-distance=16 is still generous and roughly halves the chunk streaming of the stock 32.

Leave the port keys to your control panel

On a managed Minecraft server, server-port and server-portv6 are set from the allocation in the panel's Network tab and are re-applied on boot. Editing them by hand either gets overwritten or binds a port that is not routed to you. If you need a different or extra port, take it from the Network tab.

Sources


Made with 💜 by GameServerKings

Need a Minecraft server?

Deploy an instantly-provisioned Minecraft server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $4.80 /month