Minecraft server.properties Explained (Every Setting and Default)
server.properties is the main config of a Java Edition server. Every setting is one key=value line, read at startup, so changes need a restart. Paper, Fabric and Forge use the same file and keep their extra options elsewhere. This page covers 1.20 and newer.
To edit it, stop the server in the Crunchy.Host panel, open /home/container/server.properties in Files, save, and start again. Only change values, never keys.
Settings most people change
| Key | Default | What it does |
|---|---|---|
motd |
A Minecraft Server |
Text under your server name in the multiplayer list. Supports § color codes. |
max-players |
20 |
Maximum number of players online at once. |
gamemode |
survival |
Default game mode for new players: survival, creative, adventure or spectator. |
difficulty |
easy |
peaceful, easy, normal or hard. |
hardcore |
false |
Hardcore mode. Locks difficulty to hard and puts players in spectator after death. |
white-list |
false |
Only players in whitelist.json can join. Very new versions ship with true. |
view-distance |
10 |
How many chunks around each player the server sends. The biggest single factor for RAM and CPU. |
simulation-distance |
10 |
How many chunks around each player are ticked (mobs move, crops grow, redstone runs). |
spawn-protection |
16 |
Radius around spawn that non-operators cannot build in. 0 turns it off. |
level-seed |
empty | World seed. Empty means random. Only used when a new world is generated. |
online-mode |
true |
Checks every player against Microsoft's authentication servers. |
If the server struggles, lower simulation-distance to 6–8 first. It saves a lot of CPU, and players barely notice because they still see terrain out to view-distance.
World and generation
| Key | Default | What it does |
|---|---|---|
level-name |
world |
Name of the world folder. Change it to load a different world folder. |
level-type |
minecraft:normal |
World preset: minecraft:normal, minecraft:flat, minecraft:large_biomes, minecraft:amplified, minecraft:single_biome_surface. |
generator-settings |
{} |
JSON options for flat and single biome worlds. |
generate-structures |
true |
Whether villages, temples and other structures generate. |
max-world-size |
29999984 |
Maximum distance from the center in blocks, effectively the world border radius limit. |
initial-enabled-packs |
vanilla |
Data packs enabled when a new world is created. |
initial-disabled-packs |
empty | Data packs that stay disabled when a new world is created. |
region-file-compression |
deflate |
Chunk compression on disk: deflate, lz4 or none. |
Seed, type and structure settings only affect chunks that haven't been generated yet. To apply them everywhere, start a new world. Colons appear escaped in the file (minecraft\:normal), which is normal.
Players and permissions
| Key | Default | What it does |
|---|---|---|
force-gamemode |
false |
Puts players into the default gamemode every time they join. |
enforce-whitelist |
false |
Kicks online players who are not on the whitelist when it is reloaded. |
op-permission-level |
4 |
Permission level given by /op, from 0 to 4. |
function-permission-level |
2 |
Permission level for data pack functions. |
player-idle-timeout |
0 |
Minutes before idle players are kicked. 0 disables it. |
allow-flight |
false |
Lets players fly in survival without being kicked. Turn on if you use flight plugins or mods. |
hide-online-players |
false |
Hides the player list from the server list hover. |
pause-when-empty-seconds |
60 |
Seconds after the last player leaves before the server pauses ticking (1.21.2+). |
Network and security
| Key | Default | What it does |
|---|---|---|
enforce-secure-profile |
true |
Only allows players with a signed chat key. Set to false if players see "missing profile public key". |
prevent-proxy-connections |
false |
Kicks players whose connection does not match their authentication, which catches some VPNs. Can cause false kicks. |
enable-status |
true |
Answers server list pings. With false the server looks offline but players can still join. |
rate-limit |
0 |
Maximum packets per second per player before a kick. 0 disables it. |
network-compression-threshold |
256 |
Packets larger than this many bytes are compressed. -1 disables compression. |
use-native-transport |
true |
Linux networking optimizations. Leave it on. |
accepts-transfers |
false |
Allows players to be transferred here from another server with /transfer. |
log-ips |
true |
Writes player IP addresses to the log. |
Before turning off online-mode, read Failed to verify username: offline mode needs a login plugin or a proxy.
Query and RCON
| Key | Default | What it does |
|---|---|---|
enable-query |
false |
Enables the GameSpy4 query protocol used by server list sites and status bots. |
query.port |
25565 |
UDP port for query. |
enable-rcon |
false |
Enables remote console access. |
rcon.port |
25575 |
TCP port for RCON. |
rcon.password |
empty | RCON password. |
RCON is unencrypted, and the panel console already covers everyday use. If a tool needs it, add a port in Network, set rcon.port to it, and use a long random password.
Resource packs
| Key | Default | What it does |
|---|---|---|
resource-pack |
empty | Direct download URL of a .zip resource pack. |
resource-pack-sha1 |
empty | SHA-1 hash of the pack, used to verify and cache it. |
resource-pack-id |
empty | UUID that identifies the pack (1.20.3+). |
resource-pack-prompt |
empty | Custom message shown when the pack is offered. |
require-resource-pack |
false |
Disconnects players who decline the pack. |
Setup steps: Add a resource pack.
Performance and stability
| Key | Default | What it does |
|---|---|---|
entity-broadcast-range-percentage |
100 |
How far away entities are sent to players, as a percentage. Lowering it reduces network and CPU load. |
sync-chunk-writes |
true |
Writes chunks to disk synchronously. Safer on crashes, slightly slower. |
max-tick-time |
60000 |
If a single tick takes longer than this many milliseconds, the watchdog stops the server. -1 disables it. |
max-chained-neighbor-updates |
1000000 |
Limit on chained block updates, which protects against huge redstone or lag machines. |
Setting max-tick-time=-1 hides the crash, not the cause. If the watchdog fires, find what stalls the server.
Removed and moved settings
Older guides mention keys that no longer exist. Unknown keys are silently ignored.
spawn-animalsandspawn-npcs: removed in 1.21.2.pvp,allow-nether,spawn-monsters,enable-command-block: game rules since 1.21.9. Use/gamerule.max-build-height: removed in 1.17.
Example: survival with friends
motd=§6Survival §7with friends
max-players=10
difficulty=normal
white-list=true
simulation-distance=8
spawn-protection=0
Host your Minecraft server with us.
Ryzen 9 9950X hardware in Frankfurt. Online in under 90 seconds. From €4.00 / mo