Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
VGSources
Blog

Minecraft server.properties Explained: Every Java Edition Setting in 2026

Learn what every Minecraft Java Edition 1.21.9 server.properties key does, which values to change first, how ports and whitelists work, and why four older properties were replaced by game rules.
Length9 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Short answer: server.properties is the Java Edition server’s UTF-8 configuration file. It controls authentication, gameplay defaults, world generation, networking, performance, administration, resource packs, and newer management APIs. Edit the file in the server’s working directory, save it as plain text, and restart the server for changes to take effect.

Version note: The defaults and key list below match the verified Minecraft Java Edition 1.21.9 file. Mojang can add, rename, or remove properties in later releases, and Bedrock Edition uses a different configuration system.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What server.properties is and how it behaves

The file uses Java Properties syntax: one key=value pair per line, with # starting a comment. It is UTF-8 encoded text. Values can contain escaped punctuation; for example, the normal world preset appears as level-type=minecraft:normal.

The server creates server.properties in its working directory. On startup it preserves valid values, fills in missing or invalid keys with defaults, and rewrites the file. That rewrite is why an unsupported option can appear to “reset.” Stop the server before editing, keep a backup, and restart after saving. A running server generally will not reread ordinary property changes.

Safe editing procedure

  1. Stop the Java server cleanly so chunks and the properties file are flushed.
  2. Open the server.properties file in a UTF-8-capable text editor. Do not use a word processor that adds rich-text formatting.
  3. Change only the value after the equals sign. Keep the key spelling, lowercase names, and punctuation intact. Leave a value empty when the documented default is blank.
  4. Save the file as UTF-8 text in the same server directory. Preserve a backup before changing world, security, or networking options.
  5. Start the server and read the startup log. If a key is obsolete or invalid, the server may replace it with a default; use the current release’s documented setting instead.

Access, authentication, and allowlisting

These properties decide who can connect and how the server authenticates them.

Setting 1.21.9 default What it does
online-mode true Authenticates players with Mojang’s account services. Turning it off removes that authentication layer and is unsafe for an Internet-facing server.
enforce-secure-profile true Requires players to present signed profile keys. Compatibility-focused private setups may need to understand the security trade-off before changing it.
white-list false Enables the allowlist. When enabled, only listed players can join.
enforce-whitelist false When true, enforcing the whitelist can remove players who are not listed after a reload or related whitelist change.
prevent-proxy-connections false Blocks connections detected as coming through proxy services. Detection can reject legitimate network arrangements.
accepts-transfers false Controls whether the server accepts incoming transfer packets from another server.
log-ips true Controls whether player IP addresses are written to server logs. Consider privacy requirements before disabling or retaining this data.

Gameplay policy and player experience

Setting Default Effect
difficulty easy Sets the difficulty: peaceful, easy, normal, or hard.
gamemode survival Default mode for new players. Accepted modes are survival, creative, adventure, and spectator.
force-gamemode false When true, players are placed in the configured default mode when they join instead of retaining their previous mode.
hardcore false Applies hardcore rules to newly created worlds. Changing it does not convert an existing world safely.
allow-flight false Allows flight that would otherwise trigger the survival flight check, useful for some mods. It does not itself grant creative mode.
spawn-protection 16 Protects a radius around the world spawn from non-operators. A value of zero disables this protection.
player-idle-timeout 0 Kicks players after the specified number of idle minutes. Zero means no automatic idle kick.
motd A Minecraft Server Message shown in the multiplayer server list. Formatting codes and line handling depend on the client and server version.
bug-report-link empty Optional link presented for reporting server problems.

World selection and generation

World-generation properties matter most when a world is first created. Existing chunks and dimensions are not regenerated simply because you edit these values.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Setting Default Use
level-name world Selects the world directory. Pointing to another directory loads that world if it is a valid save.
level-seed empty Sets the generation seed. Empty lets the server choose a random seed when creating the world.
level-type minecraft:normal Selects a preset such as normal, flat, large-biomes, amplified, or single-biome. Keep the namespace and escaped colon syntax.
generator-settings {} Supplies JSON customization for supported world presets. Invalid JSON can be rejected and replaced.
generate-structures true Controls generation of structures such as villages in newly generated terrain.
initial-enabled-packs vanilla Datapacks enabled when a world is created.
initial-disabled-packs empty Datapacks disabled at world creation.
max-world-size 29999984 Caps the effective world border size. It does not enlarge the game’s practical coordinate limits.
sync-chunk-writes true Writes chunks synchronously. Disabling synchronous writes may alter performance and increases the importance of reliable storage and shutdowns.

Capacity and performance controls

Performance settings interact. Lowering distances reduces work and bandwidth, while compression and pausing trade CPU time against network or hosting costs.

Setting Default Meaning
max-players 20 Maximum concurrent players accepted by the server.
view-distance 10 Approximate chunk radius the server sends to each player. Higher values increase data transfer and memory pressure.
simulation-distance 10 Chunk radius in which entities, crops, redstone, and other game logic continue ticking. It affects server CPU more directly than view distance.
entity-broadcast-range-percentage 100 Scales how far entities are sent to clients. Lower values can reduce traffic while making distant mobs and objects appear later.
network-compression-threshold 256 Packet-size threshold for compression. Lower thresholds save bandwidth but consume more CPU; higher thresholds do the opposite.
max-tick-time 60000 Watchdog limit in milliseconds for a server tick. A value of -1 disables the watchdog, which removes automatic hang detection rather than fixing lag.
max-chained-neighbor-updates 1000000 Limits consecutive block-neighbor updates, helping prevent runaway update chains.
pause-when-empty-seconds 60 Pauses an empty server after the specified number of seconds. Set zero if the world must continue ticking while nobody is connected.
rate-limit 0 Packet-rate limit per client. Zero means no property-level rate limit.
region-file-compression deflate Compression method used for region files. Storage size, read/write CPU use, and compatibility vary by available choices.
use-native-transport true Uses native networking where the operating system and Java environment support it.

View distance versus simulation distance

view-distance determines how much terrain the server sends for rendering. simulation-distance determines how far active game logic runs. A player can therefore see terrain beyond the area where farms, mobs, and redstone are ticking. Reduce simulation distance first when the main problem is tick time; reduce view distance when bandwidth, memory, or login chunk delivery is the bottleneck.

Networking, status, and discovery

Setting Default Purpose
server-ip empty Local address to bind. Leaving it blank is the usual choice on machines with multiple interfaces; setting an address restricts listening to that interface.
server-port 25565 TCP game port players use. If you change it, update firewall and router forwarding rules and give players the new port.
enable-status true Allows multiplayer-list status replies, including the server’s reachability information.
hide-online-players false Suppresses the player list in status responses while leaving the server available.
enable-query false Enables GameSpy4 query responses for external server-list or monitoring tools.
query.port 25565 UDP query port. It can differ from the game port and must be opened separately if used across a firewall.
status-heartbeat-interval 0 Interval for status heartbeat notifications. Zero disables heartbeat notifications.

The game port and query port both default to 25565, but they are separate protocols. Changing server-port does not automatically change query.port.

Operators, commands, and RCON

Setting Default Effect and security note
op-permission-level 4 Default permission level assigned to operators.
function-permission-level 2 Permission level used when datapack functions execute commands.
broadcast-console-to-ops true Sends console command output to online operators.
broadcast-rcon-to-ops true Sends RCON command output to operators.
enable-rcon false Enables the remote console protocol.
rcon.port 25575 TCP port used by RCON.
rcon.password empty Password required by RCON clients. Set a long unique secret before enabling RCON.

Documented RCON traffic is unencrypted. Keep it on a trusted private network, restrict the port with a firewall, or place it behind a secure transport such as an authenticated tunnel. Do not expose an empty-password RCON listener to the Internet.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Resource packs and text filtering

Setting Default What it controls
resource-pack empty URL clients use to download the server resource pack.
resource-pack-sha1 empty SHA-1 hash used to verify the downloaded pack.
resource-pack-id empty Identifier for the pack.
resource-pack-prompt empty Prompt text shown when the client is asked to install the pack.
require-resource-pack false When true, players who reject the pack cannot join.
text-filtering-config empty Configuration reference for text-filtering integration.
text-filtering-version 0 Version value used by that filtering integration.

Use a stable HTTPS download location and verify the hash when distributing a pack. Requiring a pack is a policy decision: it guarantees presentation consistency but can prevent players with incompatible clients from joining.

JMX monitoring and the 1.21.9 management server

Setting Default Details
enable-jmx-monitoring false Exposes tick-time management beans when Java JMX is also configured. Enabling this property alone does not configure JMX access.
management-server-enabled false Enables the newer management server API.
management-server-host localhost Network host on which the management API listens by default.
management-server-port 0 Port for the management API. Zero selects an available port.
management-server-secret random text Secret used by the management service. When blank, 1.21.9 generates a 40-character alphanumeric secret.
management-server-tls-enabled true Enables TLS for the management API by default.
management-server-tls-keystore empty Path to the PKCS12 keystore used for TLS.
management-server-tls-keystore-password empty Password for that keystore.

Do not publish the generated management secret. If you bind the API beyond localhost, protect the chosen port and keystore as carefully as any administrative interface.

Code of conduct files

enable-code-of-conduct=false by default. Set it to true to make the server load UTF-8 language files from a codeofconduct subfolder. It prefers the joining player’s language, then en_us, then any available language file. Place the files in the server directory structure expected by the Java release and test with a non-operator account.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Properties removed in Java 1.21.9

Mojang’s 1.21.9 release notes state that allow-nether, spawn-monsters, enable-command-block, and pvp were removed from server.properties in favor of game rules. The change lets those policies be altered while the server is running. Copying an older guide can therefore leave these keys ignored or rewritten.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Use the doNether game rule for Nether access instead of allow-nether.
  • Use the doMobSpawning game rule for natural mob spawning instead of spawn-monsters.
  • Use the commandBlocksEnabled game rule for command-block operation instead of enable-command-block.
  • Use the pvp game rule for player-versus-player damage instead of the removed property.

Run the corresponding /gamerule command from the console or as an authorized operator, and verify the exact rule spelling supported by the server version.

What to change first on a new server

  1. Set level-name, level-seed, level-type, and gamemode before the first world generation.
  2. Choose difficulty, hardcore, force-gamemode, and spawn-protection to match the community’s rules.
  3. Keep online-mode=true and enforce-secure-profile=true unless you have a documented compatibility reason and understand the security loss.
  4. Enable white-list=true for a private server and use enforce-whitelist=true when unauthorized players must be removed after enforcement.
  5. Change motd, then set the public server-port and firewall forwarding. Leave server-ip blank unless you specifically need interface binding.
  6. Measure tick performance before tuning distances. Reduce simulation-distance for CPU pressure, view-distance for bandwidth or memory pressure, and consider pause-when-empty-seconds for an intermittently used server.
  7. Only then add RCON, query, resource-pack enforcement, JMX, or management API access, each protected by network controls and secrets.

Troubleshooting common problems

A value keeps reverting

Check the startup log and compare the key with the 1.21.9 list. Misspellings, removed properties, invalid numbers, malformed JSON, and unsupported values are commonly replaced with defaults. Confirm that you edited the file in the directory from which the server actually starts.

Players cannot connect after changing the port

Confirm that server-port is numeric, the operating-system firewall allows the new TCP port, the router forwards it to the server host, and players use the new port. If query is enabled, open query.port separately over UDP.

The server feels laggy even with a low player count

Check tick time and entity activity. Lower simulation-distance, inspect farms or redstone, and keep view-distance appropriate for available memory and bandwidth. Do not disable max-tick-time as a substitute for finding the workload.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Whitelist changes do not take effect as expected

Ensure white-list=true, add the player with the server whitelist command, and use enforce-whitelist=true only when kicking non-listed players after enforcement is intended. Operators can still administer the server.

RCON connects but is unsafe

Set a unique password, bind or firewall the RCON port to trusted hosts, and avoid exposing the unencrypted protocol directly to the public Internet. Disable enable-rcon when remote administration is no longer needed.

Practical 1.21.9 checklist

  • Back up the properties file and world before major edits.
  • Use Java Edition settings only; Bedrock configuration keys are not interchangeable.
  • Restart after every properties change and inspect the startup log.
  • Record custom ports, management secrets, resource-pack hashes, and firewall rules in a protected administrator runbook.
  • Recheck the release notes when upgrading because the key inventory and defaults are version-specific.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.