server.properties is the central configuration file of a Minecraft server. It is where you set the port, the maximum player count, the view distance, the world name, the whitelist and RCON, among other things. If you are still setting the server up, creating a Minecraft server covers the groundwork.

A lot of older guides to server.properties are out of date by now, though. The important part: pvp, enable-command-block, allow-nether and spawn-monsters are no longer entries in this file. This article covers Java Edition 26.2 "Chaos Cubed", released on 16 June 2026. Minecraft has used the year.drop.hotfix versioning scheme since December 2025; the next drop, 26.3, is in its snapshot phase at the time of writing.

Minecraft server.properties – blocky control room at dusk with rows of levers, glowing redstone lamp panels and an open book on a lectern

What you will learn

  • which entries were removed from server.properties and turned into game rules
  • where the file lives and how its syntax works
  • which keys and default values Java Edition 26.2 actually uses
  • which settings matter most for access, networking, performance, RCON and resource packs
  • how to fix the usual mistakes when editing server.properties

Table of contents

What changed: these entries are gone

Several settings that older guides still list as part of server.properties belong to a world's game rules today. Keeping those old keys in the file achieves nothing.

Former entryTodayWhere to set it
allow-nethergame rule allow_entering_nether_using_portalsin-game via command
enable-command-blockgame rule command_blocks_workin-game via command
pvpgame rule pvpin-game via command
spawn-monstersgame rule spawn_monstersin-game via command

Those four game rules arrived with snapshot 25w35a. Since version 26.2, game rules also use snake_case with underscores, so older guides can fall flat on the spelling alone.

On top of that, spawn-animals and spawn-npcs were removed from server.properties back in version 1.21.2.

You set a game rule with:

/gamerule <name> <value>

To turn PvP off, for example:

/gamerule pvp false

The distinction matters: server.properties is read when the server starts and holds server-wide settings. Game rules belong to the individual world, are set in-game and take effect immediately. The full list is in Minecraft game rules.

Where is server.properties?

server.properties sits in the working directory the Minecraft server is started from — usually alongside eula.txt and the world folder.

The server creates the file automatically on first start. It is stored as UTF-8 and holds one entry per line:

key=value

For example:

max-players=20
motd=A Minecraft Server
view-distance=10

There are no extra spaces around the equals sign. This is correct:

max-players=20

This is not:

max-players = 20

Lines beginning with # are comments.

Important
Stop the Minecraft server before editing server.properties. If it keeps running while you edit, it can overwrite the file when it shuts down.

Every entry at a glance

The table below is the complete key list for Java Edition 26.2 as documented here. "Restart: yes" means the change only takes effect after a server restart.

KeyDefaultMeaningRestart
level-seedemptyseed for world generation; empty means randomyes
level-nameworldname and folder of the worldyes
level-typeminecraft:normalworld typeyes
generate-structurestruegenerate structures such as villages and strongholdsyes
gamemodesurvivaldefault game mode: survival, creative, adventure, spectatorno
force-gamemodefalseforce players into the default mode on joiningno
difficultyeasydifficulty: peaceful, easy, normal, hardno
hardcorefalsehardcore mode at world creationyes
motdA Minecraft Servertext shown in the server listno
max-players20maximum number of playersno
server-port25565TCP port of the serveryes
server-ipemptybind address; empty means all interfacesyes
online-modetrueverify players against their Mojang accountsyes
prevent-proxy-connectionsfalseblock connections made through proxiesno
allow-flightfalseallow flight in survival modeno
view-distance10view distance in chunks (3–32)no
simulation-distance10simulation radius in chunks (3–32)no
spawn-protection16protected area around spawn; side length 2x+1, 0 disablesno
max-world-size29999984world border distance from the centre in blocksno
white-listfalseenable the whitelistno
enforce-whitelistfalseremove non-whitelisted players when the list is reloadedno
player-idle-timeout0minutes before idle players are kicked; 0 = neverno
op-permission-level4permission level for new operators (0–4)no
function-permission-level2permission level for functions (1–4)no
enable-rconfalseenable RCON remote accessyes
rcon.port25575RCON portyes
rcon.passwordemptyRCON password; mandatory when RCON is enabledno
broadcast-rcon-to-opstruemirror RCON output to operatorsno
broadcast-console-to-opstruemirror console output to operatorsno
enable-queryfalsequery protocol for server informationyes
query.port25565query port (UDP)yes
enable-statustruerespond to status requests from the server listno
hide-online-playersfalsehide the player list in status responsesno
enable-jmx-monitoringfalseenable JMX monitoringyes
network-compression-threshold256packet size in bytes above which packets are compressed; -1 disablesno
use-native-transporttrueuse the optimised network layer on Linuxno
rate-limit0packet limit per player; 0 = no limitno
max-tick-time60000maximum milliseconds per tick; -1 disables the watchdogno
max-chained-neighbor-updates1000000limit for chained neighbour updatesno
entity-broadcast-range-percentage100range within which entities are sent to playersno
sync-chunk-writestruewrite chunks synchronously; guards against data lossno
resource-packemptyURL of the resource pack (max 250 MiB)no
resource-pack-sha1emptySHA-1 checksum of the resource packno
resource-pack-promptemptyprompt text shown for the resource packno
require-resource-packfalsemake the resource pack mandatoryno
text-filtering-configemptytext filtering configurationno
log-ipstrueshow player IP addresses in the logno

The important settings in detail

The table works as a quick reference. A few settings deserve more context, either because they get changed constantly or because they invite misconfiguration.

World and game mode

level-seed sets the seed for world generation. Leave it empty and a random seed is used. If you want a specific kind of world, the best Minecraft seeds is a good starting point.

level-name=world defines the name and folder of the world. level-type=minecraft:normal sets the world type, while generate-structures=true enables structures such as villages and strongholds.

gamemode=survival is the default game mode; the options are survival, creative, adventure and spectator. With force-gamemode=true you push joining players into that default mode.

difficulty=easy sets the difficulty, with peaceful, easy, normal and hard to choose from.

hardcore=false controls hardcore mode at world creation. Because it affects world creation, it is one of the values that needs a restart.

Players and access

max-players=20 caps how many players can be connected at once.

white-list=true enables the whitelist. enforce-whitelist builds on it: with the value enabled, players without a whitelist entry are removed when the list is reloaded.

online-mode=true makes the server verify players against their Mojang accounts.

Caution
Do not set online-mode=false casually. Without account verification, anyone can connect under any name — including the name of an operator.

player-idle-timeout=0 means idle players are never kicked. A higher value sets the number of minutes before they are.

op-permission-level=4 defines the permission level newly promoted operators receive, on a scale from 0 to 4.

Spawn protection is set with spawn-protection=16. The value is not a radius in the usual sense: the protected area has a side length of 2x+1. Setting it to 0 disables protection entirely, and operators are never affected by it.

Networking and ports

server-port=25565 sets the TCP port of the Minecraft server. If you change it, restart the server afterwards and make sure the new TCP port is reachable.

server-ip defines the bind address. Leaving it empty makes the server listen on all interfaces.

enable-query=false turns the query protocol on or off. Its companion query.port=25565 is a UDP port.

Important
The server-port uses TCP, the query port uses UDP. If the server is reachable but query lookups fail, a missing UDP rule is usually the reason.

enable-status=true allows status requests, which is what populates the entry in the server list. prevent-proxy-connections=false means blocking proxy connections is off by default.

Performance

view-distance and simulation-distance are the two most important performance levers in this file.

view-distance=10 determines how far players see the world in chunks. simulation-distance=10 sets the radius in which the world is actually simulated — and simulation is far more expensive than merely rendering distant chunks.

If your server is under load, these are the two values to look at first. There is more on this in optimizing Minecraft server performance.

entity-broadcast-range-percentage=100 affects the range within which entities are transmitted to players. network-compression-threshold=256 sets the packet size in bytes above which packets are compressed; -1 disables compression.

max-tick-time=60000 defines the maximum duration of a tick in milliseconds. With:

max-tick-time=-1

the watchdog is switched off, so the server no longer shuts itself down over a hanging tick. You also lose that automatic safety net.

sync-chunk-writes=true writes chunks synchronously and guards against data loss.

If you run Paper rather than the vanilla server software, further settings come into play. Those are covered in Paper configuration explained.

Remote access with RCON

enable-rcon=true enables RCON for remote access to the server console. The change needs a restart.

rcon.port=25575 sets the RCON port, and rcon.password must hold a password whenever RCON is enabled.

A minimal example:

enable-rcon=true
rcon.port=25575
rcon.password=YOUR_PASSWORD

broadcast-rcon-to-ops=true mirrors RCON output to operators.

Resource packs

resource-pack holds the URL of a resource pack, up to 250 MiB.

resource-pack-sha1 carries the SHA-1 checksum of that pack, and resource-pack-prompt lets you set the prompt text players see.

require-resource-pack=true makes the pack mandatory.

Applying your changes

Save server.properties as UTF-8 when you are done. If you stopped the server before editing, start it again afterwards.

Every entry marked "Restart: yes" in the reference table only takes effect after a server restart. The rest apply without one.

Tip
When changing several settings at once, check the key=value spelling once more before starting. Extra spaces around the equals sign can quietly stop a value from being applied.

Keep in mind that server.properties is only part of the configuration. Game rules such as pvp or spawn_monsters belong to the world and are set with /gamerule.

Troubleshooting

ProblemLikely causeFix
An entry has no effectpvp, enable-command-block, allow-nether or spawn-monsters are still being used as server.properties keysset the corresponding game rule in-game
Changes are gone after a restartthe server was running while you edited and overwrote the file on shutdownstop the server first, then edit and save again
A value is ignoredspaces around the equals signcorrect the spelling to key=value without extra spaces
The server is unreachableserver-port is not open as a TCP portcheck and open the configured TCP port
Query returns nothingthe query port is not reachable over UDPcheck enable-query and the UDP port from query.port
Players get in despite the whitelistwhitelist and enforcement are not configured togethercheck white-list and enforce-whitelist
Special characters in motd render incorrectlythe file was not saved as UTF-8save the file as UTF-8 again
The server stutterssimulation-distance is too high for the available hardwarereduce the simulation distance and review performance
RCON will not connectRCON is disabled or no password is setcheck enable-rcon=true, rcon.port and rcon.password
Strangers connect under arbitrary namesonline-mode=false disables Mojang account verificationset online-mode=true and restart the server

Frequently asked questions

Where do I find server.properties?

server.properties sits in the working directory the Minecraft server is started from, usually next to eula.txt and the world folder. The file is created automatically on the first server start.

Why does the pvp entry in server.properties no longer work?

pvp is a game rule today, not a server.properties entry. Set it in-game instead:

/gamerule pvp false

How do I change my Minecraft server's port?

You change it through server-port in server.properties. The default is 25565, the port uses TCP, and the change requires a server restart.

What is the difference between view-distance and simulation-distance?

view-distance decides how far players see chunks, while simulation-distance sets the radius in which the world is actively simulated. Simulation distance is far more demanding on the server.

How do I enable the whitelist on my Minecraft server?

Enable it with white-list=true. Also set enforce-whitelist if players without a valid entry should be removed when the list is reloaded.

What does online-mode do and can I turn it off?

online-mode=true verifies players against their Mojang accounts. Do not disable it casually — with online-mode=false, anyone can connect under any name, including an operator's.

Do I have to restart the server after every change?

No. Not every setting needs a restart; the reference table above states for each key whether the change only applies after one.

Last checked against the official Java Edition documentation, as of August 2026 (version 26.2).

Summary

server.properties remains the central file for most Minecraft server settings, but not every older guide still applies. pvp, enable-command-block, allow-nether and spawn-monsters in particular are game rules now and no longer belong in this file.

When you make changes, stop the server first, stick to the key=value format, and mind the TCP/UDP split on the networking side. For server performance, view-distance and simulation-distance are the values that matter most.

If you would rather not install it yourself, you can rent a Minecraft server instead.