Updated 2026-10-27 · All guides
server.properties explained
Every Minecraft: Java Edition server has a plain text file called server.properties in its folder. It holds the main settings: who can join, the difficulty, how far players can see and much more. The server creates it with default values the first time it runs.
A few rules apply to all of them:
- Stop the server before editing. The server reads the file when it starts, and may rewrite it when it stops, which can undo your changes.
- One setting per line, written as
name=valuewith no spaces around the=. - true and false are lowercase.
Trueoryeswon't work. - Lines starting with
#are comments and are ignored. - If you delete a line, the server puts it back with the default value next time.
Settings are grouped by what they do below. Defaults are the ones a new Vanilla server uses.
Who can join
| Setting | Default | What it does |
|---|---|---|
white-list | false | When true, only players on the whitelist (and operators) can join. The best single protection for a private server. |
enforce-whitelist | false | When true, players are kicked straight away if you remove them from the whitelist while they're online. |
online-mode | true | Checks every player's account with Mojang. Keep it true. Turning it off lets anyone join using any name, including yours, which lets them use your admin powers. |
max-players | 20 | The most people online at once. It doesn't reserve memory, so a higher number costs nothing until people actually join. |
enforce-secure-profile | true | Requires players to have chat signing keys from Mojang. If a friend sees a "secure profile" error, it's usually a modded client or an outdated launcher. |
The whitelist itself lives in whitelist.json, but don't edit that by hand. Use the commands in the whitelist and operators guide.
The game itself
| Setting | Default | What it does |
|---|---|---|
gamemode | survival | The mode new players get: survival, creative, adventure or spectator. It doesn't change players who have already joined. |
force-gamemode | false | When true, everyone is put back in the default mode each time they join. |
difficulty | easy | peaceful, easy, normal or hard. You can also change it in-game with /difficulty. |
hardcore | false | Hard difficulty, and players become spectators when they die. Only really works if set before the world is created. |
pvp | true | Whether players can hurt each other. |
allow-flight | false | Doesn't give anyone flight. It stops the server kicking players it thinks are flying. Turn it on if you use mods or plugins with jetpacks, gliders or similar, or if players get kicked for "flying" on laggy connections. |
allow-nether | true | Whether Nether portals work. |
spawn-protection | 16 | A square around world spawn where only operators can build. Set it to 0 on a friends' server so nobody gets confused when they can't break blocks near spawn. |
enable-command-block | false | Whether command blocks can run. Turn it on if you use them in builds or maps. |
The world
| Setting | Default | What it does |
|---|---|---|
level-name | world | The name of the world folder. Point it at a different folder to load another world, for example one copied from singleplayer. |
level-seed | (empty) | The seed for a new world. Empty means random. Changing it does nothing once the world exists. |
level-type | minecraft:normal | The world type: minecraft:normal, minecraft:flat, minecraft:large_biomes or minecraft:amplified. Only used when creating a world. |
generate-structures | true | Villages, temples, strongholds and so on. Only affects newly generated chunks. |
max-world-size | 29999984 | A radius limit for the world border. Use the in-game /worldborder command for a smaller playable area instead; it's easier to change. |
To use a singleplayer world, copy its folder from %appdata%\.minecraft\saves into the server folder and set level-name to the folder's name. Paper and other Bukkit-based servers then split it into separate Nether and End folders on the first start, which is normal.
Performance
These two settings affect lag more than anything else in the file.
| Setting | Default | What it does |
|---|---|---|
view-distance | 10 | How many chunks around each player the server sends, so how far they can see. The work grows with the square of this number: 16 is about two and a half times as much as 10. |
simulation-distance | 10 | How many chunks around each player actually run: mobs move, crops grow, redstone works. Lowering it to 6 or 8 saves a lot of CPU and most players never notice. |
entity-broadcast-range-percentage | 100 | How far away players see mobs and items, as a percentage. Lowering it saves network traffic on busy servers. |
network-compression-threshold | 256 | Packets bigger than this many bytes are compressed. Leave it alone unless you know your network is the bottleneck. |
sync-chunk-writes | true | Waits for each chunk to be fully written to disk. Safer if the PC loses power; turning it off is slightly faster. Leave it on unless you know you need the speed. |
A good starting point for a home server with up to ten players is view-distance=10 and simulation-distance=8. If the server falls behind, drop view distance to 8 before anything else. More ideas are in how to fix server lag.
Network
| Setting | Default | What it does |
|---|---|---|
server-port | 25565 | The port players connect to. If you change it, players need to add :port to the address, and your port forward must match. |
server-ip | (empty) | Leave it empty. Putting your public IP here is a common mistake that stops the server starting with "Failed to bind to port". |
enable-status | true | Whether the server appears online in the multiplayer list, with the player count and MOTD. |
hide-online-players | false | Hides the list of player names from the server list. |
enable-query | false | Answers the GameSpy4 "query" protocol some server-list websites use. Not needed for friends. |
enable-rcon | false | Remote console access over the network with a password. Leave it off unless you really need it, and never forward its port (25575) on your router. |
rate-limit | 0 | Kicks players who send too many packets per second. 0 means no limit. |
Appearance
| Setting | Default | What it does |
|---|---|---|
motd | A Minecraft Server | The text under the server's name in the multiplayer list. You can add colours with § codes, for example §a for green. |
require-resource-pack | false | Kicks players who decline the server's resource pack. |
resource-pack | (empty) | A direct download link to a .zip resource pack that's offered to players when they join. |
The icon in the server list isn't in this file: put a 64 × 64 pixel PNG called server-icon.png in the server folder.
Operators
| Setting | Default | What it does |
|---|---|---|
op-permission-level | 4 | The power new operators get, from 1 (bypass spawn protection) to 4 (everything, including /stop). The levels are explained in the operators guide. |
function-permission-level | 2 | The permission level data pack functions run with. |
A sensible setup for friends
If you just want a private survival server for a group of friends, these values are a good place to start:
white-list=true
enforce-whitelist=true
online-mode=true
difficulty=normal
spawn-protection=0
view-distance=10
simulation-distance=8
motd=Our survival world
HostCraft's Settings tab edits all of these with plain-English descriptions and checks the values for you, but the file stays an ordinary text file you can open yourself at any time.