server.properties generator and reference

Every setting in server.properties that is worth touching, what it does, and what it costs you. Set the ones you care about and copy the file out at the bottom.

The settings that matter

SettingYour valueDefaultWhat it does
motd A Minecraft Server The line players see under your server name in their list. Supports colour codes.
Say what the server is. This is your two seconds of attention.
server-port 25565 The TCP port the Java server listens on.
Change it only if you must, then publish an SRV record so players do not have to type a port.
max-players 20 How many players may be connected at once.
Set it from your RAM and upload bandwidth, not from ambition. A full server that lags looks worse than a half empty one.
online-mode true Verifies each player against Mojang authentication.
Leave it true. Set it false only on a backend behind a proxy you control, and firewall that backend so nothing else can reach it.
view-distance 10 How many chunks out the server sends to each player.
The biggest single performance lever. Six or seven is plenty on a busy server.
simulation-distance 10 How far out entities, redstone and crops keep ticking.
Lower this before you lower view distance. Players notice view distance, they rarely notice this.
difficulty easy Peaceful, easy, normal or hard.
Peaceful removes hostile mobs entirely, which quietly breaks farms and quests on plugin servers.
gamemode survival The mode new players start in.
Pair with force-gamemode if you want returning players put back into it.
pvp true Whether players can damage each other.
On a plugin server, use a region or claim plugin instead so PvP can differ by area.
spawn-protection 16 Radius in blocks around spawn that only operators can edit.
Set it to 0 if you use a region plugin, otherwise the two systems fight each other.
enable-command-block false Whether command blocks execute.
Off by default for good reason. See the command block guide before enabling it on a public server.
white-list false Restricts joining to names on the whitelist.
The simplest anti grief tool there is. Pair with enforce-whitelist so it applies to players already online.
allow-flight false Whether the anti cheat tolerates flight.
Set it true if any plugin grants flight, or those players get kicked for flying.
level-seed (empty) The seed used when generating a new world.
Only applies to a world that does not exist yet. Changing it later does nothing.
level-type minecraft:normal Normal, flat, large biomes, amplified.
Flat worlds are the usual choice for a hub or lobby, paired with a small border.
network-compression-threshold 256 Packet size above which the server compresses.
Set it to -1 on a proxy backend on the same machine. Compressing traffic to localhost wastes CPU.
sync-chunk-writes true Forces chunk saves to complete before continuing.
On Linux with a good disk, false is much faster. On Windows it makes little difference.
enable-status true Whether the server answers status pings from server lists and clients.
Leave it on. With it off, your listing here and the in game list both show your server as offline.
enforce-secure-profile true Requires signed chat from clients.
Turning it off allows some older or modified clients to join, at the cost of chat signing.
hide-online-players false Hides the player sample from the status response.
Leave it false. Hiding it makes your listing look emptier than it is.

Your server.properties

Stop the server before editing the real file. A running server rewrites it on shutdown and will overwrite your changes.