Minecraft server properties, every setting explained
server.properties holds a Java server's settings, next to its jar. Here are all 69 that Minecraft 26.3 reads, each in a line with its default. Change any of them, or load your own file, and download the result.
Turn on JavaScript to change settings and download the file. Every setting is below with its default.
It stays on your computer. Settings it doesn't have keep their defaults.
Gameplay
difficulty
How much mobs hurt and hunger drains. Peaceful has no hostile mobs.
Default: easy
gamemode
The game mode players start in.
Default: survival
Puts players back in that game mode every time they join.
Default: false
Makes new worlds hardcore: the hardest difficulty, and a player who dies becomes a spectator.
Default: false
Lets players fly in Survival with a mod. Off, the server kicks players it sees flying.
Default: false
How far around spawn only operators can build: 16 protects a 33 × 33 square. 0 turns it off, and so does having no operators.
Default: 16 · 0 or more
Who can join
The most players online at once. Operators with bypassesPlayerLimit in ops.json can join a full server.
Default: 20 · 0 or more
Only players on the whitelist, in whitelist.json, can join; operators always can. On by default since 26.3.
Default: true
Kicks online players who aren't on the whitelist when it's reloaded.
Default: false
Checks each player's account with Mojang. Off, anyone can join under any name: only for servers behind a proxy that checks them.
Default: true
Only lets in players with a chat key Mojang signed. Off, chat isn't signed and can't be reported.
Default: true
Kicks players who connect from a different network than the one they signed in to Mojang from, as through a VPN.
Default: false
Lets other servers send players here with /transfer. Off, they're disconnected.
Default: false
Kicks players idle for this many minutes. 0 never does.
Default: 0 · 0 or more
Kicks players who chat too fast: each message adds a second that drains in real time, and reaching this many kicks. 0 turns it off.
Default: 10 · 0 or more
The same for commands.
Default: 10 · 0 or more
Kicks players who send more than this many packets a second on average. 0 turns it off.
Default: 0 · 0 or more
Shows players the code of conduct in the codeofconduct folder, one file per language like en_us.txt.
Default: false
Operators and the console
The permission level /op gives. 4 allows every command, /stop included.
Default: 4 · 0 to 4
The permission level data pack functions run with.
Default: 2 · 1 to 4
Sends operators online what commands typed in the console reply.
Default: true
Sends operators online what commands sent over RCON reply.
Default: true
Writes players' IP addresses in the console and the log.
Default: true
Server list
The message under the server's name in the server list, on up to two lines. The MOTD generator writes colours and line breaks as this file needs them.
Default: A Minecraft Server
Answers the server list. Off, the server shows as offline, but players can still join.
Default: true
Leaves who's online out of the server list.
Default: false
A web address players get as the server's Report Bug link. Empty sends none.
Default: empty
World
The world's folder. If there's no world in it yet, the server makes a new one there.
Default: world
The seed for a new world. Empty picks one at random.
Default: empty
level-type
The kind of world a new one is.
Default: minecraft:normal
Settings for that kind, as JSON: a flat world's layers, or a single biome's biome.
Default: {}
Generates villages, temples and other structures in new chunks. Dungeons generate either way.
Default: true
How far from the centre, in blocks, the world border can go.
Default: 29999984 · 1 to 29999984
Data packs a new world starts with, separated by commas. Feature packs, like an upcoming update's, have to be listed here.
Default: vanilla
Data packs a new world leaves off, separated by commas.
Default: empty
region-file-compression
How chunks are compressed on disk. lz4 is faster and takes more space; a chunk changes over when it's next saved.
Default: deflate
Waits for each chunk to reach the disk, so a crash can't lose or break it, at some cost in speed.
Default: true
Performance
How far the server sends the world around each player, in chunks. Further needs more memory.
Default: 10 · 3 to 32
How far around each player mobs, crops and redstone keep running, in chunks.
Default: 10 · 3 to 32
How far away players see mobs and other entities, as a percentage of the usual distance.
Default: 100 · 10 to 1000
Pauses the server this many seconds after the last player leaves. 0 or less never pauses.
Default: 60
Stops the server, as crashed, when one tick takes longer than this many milliseconds. -1 never does.
Default: 60000 · -1 or more
Compresses packets of this many bytes or more. -1 compresses none, 0 all.
Default: 256 · -1 or more
How many block updates one change can set off in a row before the rest are skipped. Negative has no limit.
Default: 1000000
Uses Linux's faster networking when it can.
Default: true
Network
The address the server listens on. Empty listens on all of them, which is what you want.
Default: empty
The TCP port players connect to. Any other than 25565 goes after the address, like :25566.
Default: 25565 · 1 to 65534
Turns on query, which tools use to read the server's details and who's online.
Default: false
The UDP port query listens on.
Default: 25565 · 1 to 65534
Turns on RCON, a remote console. It isn't encrypted, so keep its port off the internet.
Default: false
The TCP port RCON listens on.
Default: 25575 · 1 to 65534
RCON's password. With RCON on and no password, RCON doesn't start.
Default: empty
Resource pack
A link to a resource pack players are offered when they join, of 250 MiB at most.
Default: empty
Disconnects players who turn the pack down.
Default: false
The pack's SHA-1, 40 characters in lower case, so players' games can check the download.
Default: empty
A UUID for the pack, so games can tell it from others.
Default: empty
The message offering a required pack, as a text component. Empty uses the game's own.
Default: empty
Management API
Turns on the Minecraft Server Management Protocol, which lets tools manage the server over a WebSocket.
Default: false
The address the API listens on.
Default: localhost
The API's port. 0 picks a new one at each start.
Default: 0 · 0 to 65534
The secret tools send: 40 letters and digits. Empty, the server makes one and writes it here.
Default: empty
Encrypts the API with TLS. With TLS on and no keystore, the server won't start.
Default: true
The keystore file with the API's TLS certificate.
Default: empty
The keystore's password. The MINECRAFT_MANAGEMENT_TLS_KEYSTORE_PASSWORD environment variable can hold it instead.
Default: empty
Web origins allowed to connect, separated by commas. Empty, no tool in a browser can.
Default: empty
How often the API sends connected tools a heartbeat. 0 sends none.
Default: 0 · 0 or more
Advanced
Publishes tick times over JMX for monitoring tools; Java needs JMX turned on too.
Default: false
Chat filtering settings Realms uses, not documented for other servers.
Default: empty
The format of text-filtering-config: 0 or 1.
Default: 0 · 0 to 1
From your file, not read by 26.3
- A game rule since 1.21.9: allow_entering_nether_using_portals.
- A game rule since 1.21.9: command_blocks_work.
- A game rule since 1.21.9: /gamerule pvp false.
- Removed in 1.21.2.
- A game rule since 1.21.9: spawn_monsters.
- Removed in 1.21.2.
Your server.properties
No changes#Minecraft server properties
#Made at playkeeper.io/tools/server-properties
accepts-transfers=false
allow-flight=false
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
chat-spam-threshold-seconds=10
command-spam-threshold-seconds=10
difficulty=easy
enable-code-of-conduct=false
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=true
enforce-whitelist=false
entity-broadcast-range-percentage=100
force-gamemode=false
function-permission-level=2
gamemode=survival
generate-structures=true
generator-settings={}
hardcore=false
hide-online-players=false
initial-disabled-packs=
initial-enabled-packs=vanilla
level-name=world
level-seed=
level-type=minecraft\:normal
log-ips=true
management-server-allowed-origins=
management-server-enabled=false
management-server-host=localhost
management-server-port=0
management-server-secret=
management-server-tls-enabled=true
management-server-tls-keystore=
management-server-tls-keystore-password=
max-chained-neighbor-updates=1000000
max-players=20
max-tick-time=60000
max-world-size=29999984
motd=A Minecraft Server
network-compression-threshold=256
online-mode=true
op-permission-level=4
pause-when-empty-seconds=60
player-idle-timeout=0
prevent-proxy-connections=false
query.port=25565
rate-limit=0
rcon.password=
rcon.port=25575
region-file-compression=deflate
require-resource-pack=false
resource-pack=
resource-pack-id=
resource-pack-prompt=
resource-pack-sha1=
server-ip=
server-port=25565
simulation-distance=10
spawn-protection=16
status-heartbeat-interval=0
sync-chunk-writes=true
text-filtering-config=
text-filtering-version=0
use-native-transport=true
view-distance=10
white-list=true
Put it in the server's folder in place of the old one, then restart the server.
Put it on your server
The same file for Vanilla, Paper, Purpur, Fabric, NeoForge and the rest.
Three steps
Replace the file
server.properties sits in the server's folder, next to its jar. Keep the name.
Restart the server
It reads the file only when it starts.
Check it kept your values
The server writes the file back as it starts, with every setting it knows, in order.
If a setting doesn't stick
- It went back to the defaultThe server couldn't read the value, like letters where it wants a number, so it wrote the default in its place.
- A panel or Playkeeper set it backHosts' panels set some keys from their own settings at every start. Change those there.
- It's from an older versionpvp, allow-nether, enable-command-block and spawn-monsters are game rules since 1.21.9. The server keeps the lines but doesn't read them.
- The server won't startWith the management API on, TLS needs a keystore. The editor above warns about that, and about RCON without a password.
In Playkeeper, the common ones are in Settings
Difficulty, game mode, view distance, the most players and the server list's message, in plain words. Its Files tab edits server.properties for the rest and marks the lines Settings sets.
curl -fsSL https://playkeeper.io/install | sudo sh

Questions
Where is server.properties?
In the server's folder, next to its jar. The server makes it the first time it starts, in the folder it was started from.
How do I change a server.properties setting?
Change the line in any text editor, save it and restart the server, which reads the file only when it starts. Or change it here and download the whole file.
Why did my setting go back to the default?
The server couldn't read the value, like letters where it expects a number, so it wrote the default back when it started. A host's panel, or Playkeeper, can also set some keys from its own settings at every start.
What is the default Minecraft server port?
25565, over TCP, set by server-port. Query uses 25565 over UDP, and RCON 25575.
Is the whitelist on by default?
Since 26.3, yes: white-list is true in a new server.properties. Add friends with /whitelist add and their name. Operators can always join.
Where did pvp, allow-nether and spawn-monsters go?
Since 1.21.9 they're game rules, set with /gamerule: pvp, allow_entering_nether_using_portals and spawn_monsters, and command_blocks_work in place of enable-command-block, by their names since 1.21.11. The server keeps the old lines but no longer reads them.
What's the difference between view-distance and simulation-distance?
Both count chunks around each player. view-distance is how far the server sends the world, so how far players see. simulation-distance is how far the world keeps running: mobs moving, crops growing, redstone working.
How do I add colours to the MOTD in server.properties?
Write each colour code as \u00A7 and a letter, like \u00A7a for green, and a line break as \n. The editor escapes what you type the same way.
Does Playkeeper edit server.properties?
Its Settings change the common ones in plain words: difficulty, game mode, view distance, the most players and the server list's message. Its Files tab edits the file itself, and marks the lines Playkeeper sets from Settings at every start.