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.

What you will learn
- which entries were removed from
server.propertiesand 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
- Where is server.properties?
- Every entry at a glance
- The important settings in detail
- Applying your changes
- Troubleshooting
- Frequently asked questions
- Related articles
- Summary
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 entry | Today | Where to set it |
|---|---|---|
allow-nether | game rule allow_entering_nether_using_portals | in-game via command |
enable-command-block | game rule command_blocks_work | in-game via command |
pvp | game rule pvp | in-game via command |
spawn-monsters | game rule spawn_monsters | in-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.
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.
| Key | Default | Meaning | Restart |
|---|---|---|---|
level-seed | empty | seed for world generation; empty means random | yes |
level-name | world | name and folder of the world | yes |
level-type | minecraft:normal | world type | yes |
generate-structures | true | generate structures such as villages and strongholds | yes |
gamemode | survival | default game mode: survival, creative, adventure, spectator | no |
force-gamemode | false | force players into the default mode on joining | no |
difficulty | easy | difficulty: peaceful, easy, normal, hard | no |
hardcore | false | hardcore mode at world creation | yes |
motd | A Minecraft Server | text shown in the server list | no |
max-players | 20 | maximum number of players | no |
server-port | 25565 | TCP port of the server | yes |
server-ip | empty | bind address; empty means all interfaces | yes |
online-mode | true | verify players against their Mojang accounts | yes |
prevent-proxy-connections | false | block connections made through proxies | no |
allow-flight | false | allow flight in survival mode | no |
view-distance | 10 | view distance in chunks (3–32) | no |
simulation-distance | 10 | simulation radius in chunks (3–32) | no |
spawn-protection | 16 | protected area around spawn; side length 2x+1, 0 disables | no |
max-world-size | 29999984 | world border distance from the centre in blocks | no |
white-list | false | enable the whitelist | no |
enforce-whitelist | false | remove non-whitelisted players when the list is reloaded | no |
player-idle-timeout | 0 | minutes before idle players are kicked; 0 = never | no |
op-permission-level | 4 | permission level for new operators (0–4) | no |
function-permission-level | 2 | permission level for functions (1–4) | no |
enable-rcon | false | enable RCON remote access | yes |
rcon.port | 25575 | RCON port | yes |
rcon.password | empty | RCON password; mandatory when RCON is enabled | no |
broadcast-rcon-to-ops | true | mirror RCON output to operators | no |
broadcast-console-to-ops | true | mirror console output to operators | no |
enable-query | false | query protocol for server information | yes |
query.port | 25565 | query port (UDP) | yes |
enable-status | true | respond to status requests from the server list | no |
hide-online-players | false | hide the player list in status responses | no |
enable-jmx-monitoring | false | enable JMX monitoring | yes |
network-compression-threshold | 256 | packet size in bytes above which packets are compressed; -1 disables | no |
use-native-transport | true | use the optimised network layer on Linux | no |
rate-limit | 0 | packet limit per player; 0 = no limit | no |
max-tick-time | 60000 | maximum milliseconds per tick; -1 disables the watchdog | no |
max-chained-neighbor-updates | 1000000 | limit for chained neighbour updates | no |
entity-broadcast-range-percentage | 100 | range within which entities are sent to players | no |
sync-chunk-writes | true | write chunks synchronously; guards against data loss | no |
resource-pack | empty | URL of the resource pack (max 250 MiB) | no |
resource-pack-sha1 | empty | SHA-1 checksum of the resource pack | no |
resource-pack-prompt | empty | prompt text shown for the resource pack | no |
require-resource-pack | false | make the resource pack mandatory | no |
text-filtering-config | empty | text filtering configuration | no |
log-ips | true | show player IP addresses in the log | no |
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.
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.
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.
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
| Problem | Likely cause | Fix |
|---|---|---|
| An entry has no effect | pvp, enable-command-block, allow-nether or spawn-monsters are still being used as server.properties keys | set the corresponding game rule in-game |
| Changes are gone after a restart | the server was running while you edited and overwrote the file on shutdown | stop the server first, then edit and save again |
| A value is ignored | spaces around the equals sign | correct the spelling to key=value without extra spaces |
| The server is unreachable | server-port is not open as a TCP port | check and open the configured TCP port |
| Query returns nothing | the query port is not reachable over UDP | check enable-query and the UDP port from query.port |
| Players get in despite the whitelist | whitelist and enforcement are not configured together | check white-list and enforce-whitelist |
Special characters in motd render incorrectly | the file was not saved as UTF-8 | save the file as UTF-8 again |
| The server stutters | simulation-distance is too high for the available hardware | reduce the simulation distance and review performance |
| RCON will not connect | RCON is disabled or no password is set | check enable-rcon=true, rcon.port and rcon.password |
| Strangers connect under arbitrary names | online-mode=false disables Mojang account verification | set 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.
Related articles
- How to create a Minecraft server
- Minecraft game rules
- Optimizing Minecraft server performance
- Paper configuration explained
- The best Minecraft seeds
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.