Where the file is and how to edit it
server.properties sits in the same folder as the server JAR. It is a plain
text file of key=value lines with # comments. Edit it while the
server is stopped; changes are read at startup.
Two rules prevent most mistakes. First, do not add spaces around the =.
Second, keep the keys exactly as written: they are case-sensitive and an unknown key is
ignored without an error. If a change seems to do nothing, check the spelling.
Defaults vary by version. Paper can generate a different default than Vanilla for the same key. Treat the values below as sensible starting points, not as universal constants.
Network and access
| Key | Typical | What it does |
|---|---|---|
server-port | 25565 | TCP port players connect to. Change it only if it is already used. |
server-ip | blank | Interface to bind. Leave blank unless the machine has several addresses. |
online-mode | true | Verifies Microsoft accounts. Turning it off allows cracked clients and is unsafe on a public server. |
max-players | 20 | Connection cap. Set it to what your RAM and CPU can actually carry. |
motd | custom | The line shown in the multiplayer list. Colour codes with & work on Paper. |
enable-status | true | Answers the server-list ping. Leave on so players see online status. |
If online-mode is false, anyone using an offline client can join under any
name, and permissions tied to a username become unreliable. Keep it true unless the
server is behind a proxy that handles authentication.
World settings
| Key | Typical | What it does |
|---|---|---|
level-name | world | Folder name of the main world. Changing it points the server at a different world. |
level-seed | blank | Seed used when a world is first generated. Ignored for an existing world. |
level-type | normal | World generator: normal, flat, large biomes, amplified or a custom type. |
difficulty | easy | Peaceful, easy, normal or hard. |
hardcore | false | Hardcore mode: death is permanent. Do not enable it by accident. |
spawn-protection | 16 | Radius around spawn where non-operators cannot build. |
allow-nether | true | Whether portals can open the Nether. |
level-seed only matters when the world does not exist yet. If you set a new
seed on an existing world, nothing happens: the world is already generated. To change
it you need a new world folder, which means starting over or moving players with an
inventory tool.
Performance-related settings
Two keys explain most of the difference between a smooth server and a struggling one:
view-distance— how far chunks are sent to clients. Defaults around 10. Lowering it to 8 or 6 reduces bandwidth and CPU a lot.simulation-distance— how far the server ticks farms, mobs and redstone. Lowering it to 6 or 4 helps a busy world more than it hurts gameplay.
These are not the same setting. View distance is about what players can see; simulation distance is about what the server actually updates. Cutting simulation distance is the cheaper way to reduce load without making the world look empty.
| Key | Typical | Effect |
|---|---|---|
max-tick-time | 60000 | Watchdog threshold. -1 disables the watchdog; not recommended. |
network-compression-threshold | 256 | Packet size before compression. Lower saves bandwidth, costs CPU. |
entity-broadcast-range-percentage | 100 | How far entity updates are sent. Lower reduces bandwidth. |
sync-chunk-writes | true | Forces chunk writes to disk. false can help I/O but risks data loss. |
Security and moderation
| Key | Typical | What it does |
|---|---|---|
white-list | false | Only listed players may join. Enable it on any public server. |
enforce-whitelist | false | Kicks players who are removed from the whitelist while online. |
op-permission-level | 4 | Default permission level for operators. Lower it if you use a permissions plugin. |
enable-command-block | false | Enables command blocks. Leave off unless your maps need them. |
allow-flight | false | Allows flight. Turning it on weakens anti-cheat checks; use a permissions plugin instead. |
player-idle-timeout | 0 | Minutes before an idle player is kicked. 0 disables it. |
A whitelist is not a substitute for permissions. It controls who can connect, not what a connected player can do. Use a permissions plugin to decide which commands and plugin features each group gets.
Gameplay toggles
gamemode— survival, creative, adventure or spectator for new players.force-gamemode— forces the gamemode each time a player joins.pvp— enables player-versus-player damage.spawn-monsters/spawn-animals/spawn-npcs— world spawn toggles.generate-structures— whether structures generate in new chunks.max-world-size— caps the world border radius in blocks.
Some of these only affect newly generated chunks. Turning off structure generation on an existing world does not remove structures that already exist, and turning it back on does not add them to chunks that were already generated.
RCON and remote console
RCON lets an external tool send console commands over a TCP port. If you use it, set a
long random rcon.password, keep rcon.port closed to the public
internet, and enable rcon only while you need it.
enable-rcon=true
rcon.port=25575
rcon.password=change-this-to-a-long-random-value
An open RCON port with a weak password is a full server takeover. If you do not use RCON, leave it disabled.
Common mistakes
- Editing while the server runs. The file is read at startup; your change is ignored until a restart, and the server may overwrite the file on shutdown.
- Changing
level-nameto "reset" a world. It points at a different folder; it does not delete anything. - Setting
max-playersto a number the hardware cannot carry. The cap does not create RAM. - Disabling
online-modeto "let friends in". That is a security change, not a connectivity fix. - Copying a whole properties file from an old version. New keys will be missing and old values may be invalid.
The short version
Keep the defaults until something needs changing. Set a realistic max-players,
enable white-list for public servers, keep online-mode=true, and
tune view-distance and simulation-distance before you buy more
RAM. Back up the file before editing so you can compare what you changed.
Resource packs
A server can offer or require a resource pack. The server sends the pack URL to the client, and the client downloads it before joining.
| Key | What it does |
|---|---|
resource-pack | Direct URL to the pack ZIP. Must be reachable by players. |
resource-pack-sha1 | SHA-1 of the pack, used to detect a changed file. |
require-resource-pack | Kicks players who decline the pack. |
resource-pack-prompt | Custom message shown when the pack is offered. |
A pack hosted on a slow or private URL is a common cause of long join times. Test the URL
from outside your network before enabling require-resource-pack.
A minimal safe starting point
For a small private server that friends will join, these values cover the important decisions. Leave the rest at their defaults.
online-mode=true
white-list=true
enforce-whitelist=true
max-players=8
view-distance=8
simulation-distance=6
difficulty=normal
pvp=true
allow-flight=false
enable-command-block=false
enable-rcon=false
Add yourself to the whitelist before enabling it, or you will lock yourself out of your own server. Then test with a second account and read the log once more before you announce the address.