Minecraft2026-05-04 · 12 min read

Minecraft server.properties Explained — Every Setting in 2026

The complete reference: every option in server.properties, what it actually does, and the value we recommend for SMP, minigame, anarchy and modded servers.

Gameplay

gamemodedefault: survival

Default gamemode for new players. Options: survival, creative, adventure, spectator. Existing players keep their last gamemode unless `force-gamemode=true`.

Recommended: survival for SMP, adventure for minigame lobbies (prevents block breaking), creative for build servers.

difficultydefault: easy

Mob damage and hunger drain rate. Options: peaceful, easy, normal, hard. On peaceful, hostile mobs don't spawn at all.

Recommended: hard for serious SMP — mobs do full damage, hunger drains health to 0. normal is the most common choice.

hardcoredefault: false

When true, players are banned (or set to spectator) on death. Difficulty is locked to hard.

Recommended: Only enable for hardcore-themed servers. You cannot easily revert it.

pvpdefault: true

Whether players can damage each other. Note: thrown potions, TNT and end crystals can still hurt other players even with pvp=false.

Recommended: false for family-friendly SMPs, true for combat-oriented servers. Use a plugin (CombatLogX, Towny) for fine-grained PvP zones.

force-gamemodedefault: false

When true, players are reset to the default gamemode every time they join.

Recommended: Leave false unless you specifically need to override player gamemodes on every login.

allow-flightdefault: false

Whether non-creative players can fly without being kicked. Anti-cheat that defaults to off because of fly hacks.

Recommended: true if you use jetpack mods, fly-permission plugins, or Elytra-heavy worlds. Otherwise leave false.

Performance — the big two

view-distancedefault: 10

Server-side chunk distance. The server sends chunks to clients within this radius. Each player adds load roughly proportional to view-distance².

Recommended: 6 or 7 for survival servers (10-30 players), 4 for minigame/lobby servers. Dropping from 10 → 6 cuts CPU load 40-60% on busy servers.

simulation-distancedefault: 10

Radius (in chunks) where mobs, redstone, water and entities tick. Outside this, the world is paused. Introduced in 1.18 — the single biggest performance lever you have.

Recommended: 4 or 5 for almost everyone. Mob farms still work, redstone near players still ticks, but distant chunks stop eating CPU.

max-playersdefault: 20

Soft cap on concurrent players. The server can technically hold more (Paper bypasses this for ops), but the slot count is what shows in the server list.

Recommended: Set realistically — overpromising slots invites lag. Real-world: 20-40 for vanilla on 6 GB, 50-80 for Paper on 8 GB with tuned settings.

max-tick-timedefault: 60000

How long (ms) a single tick can take before the watchdog crashes the server. 60000 = 60 seconds. The watchdog dump is invaluable for finding stuck threads.

Recommended: Leave at 60000 in production. Set to -1 only for debugging — without the watchdog, an infinite loop hangs your server forever.

network-compression-thresholddefault: 256

Packets larger than this (bytes) are zlib-compressed before being sent. Lower = more CPU for compression, less bandwidth. Higher = more bandwidth, less CPU.

Recommended: 256 for typical hosting (server and players on the open internet). -1 to disable if your server and players are on the same LAN — saves CPU.

Security & access

online-modedefault: true

When true, the server checks each connection against Mojang/Microsoft auth. When false, anyone can connect with any username — including impersonating ops.

Recommended: Always true in production. The only reason to set false is for cracked-account servers (against Mojang's EULA) or behind a BungeeCord proxy that handles auth itself.

white-listdefault: false

When true, only usernames in `whitelist.json` can join. Add players with `/whitelist add <name>`.

Recommended: true for friend-group SMPs — the simplest, strongest anti-griefing measure. Combine with `enforce-whitelist=true` to kick unlisted ops too.

enforce-whitelistdefault: false

When true, kicks all currently-online players who aren't on the whitelist when the whitelist is reloaded.

Recommended: true if you've ever had a griefer with op — this is your panic button.

enforce-secure-profiledefault: true

Requires players' chat messages to be cryptographically signed. Players using older clients or some mods (CIT-removing, no-chat-reports) will be rejected.

Recommended: true for normal servers. Set false if you use no-chat-reports server-side or for anarchy/cracked compatibility.

spawn-protectiondefault: 16

Radius (in blocks) around the world spawn where only ops can build. 0 disables spawn protection entirely.

Recommended: 0 for SMPs that use a build plugin like WorldGuard. 16-50 for vanilla servers without plugins. Bigger if your spawn area is built up.

op-permission-leveldefault: 4

Maximum permission level granted by /op. 1 = bypass spawn protection, 2 = use cheats, 3 = ban/op other players, 4 = use stop/save-all and all server commands.

Recommended: Leave at 4 for owner ops. Use a permissions plugin (LuckPerms) for fine-grained moderator powers — never give /op to anyone you don't trust completely.

World generation

level-namedefault: world

Folder name for the world save. Changing this creates a new world; the old one stays on disk under its old name.

Recommended: Lowercase, no spaces. Useful trick: rename to world_2026 to start a fresh world without losing the old save.

level-seeddefault: (empty)

Specific seed to generate. Leave empty for random. Same seed + same Minecraft version + same settings = identical world.

Recommended: Leave empty unless you have a specific seed in mind. Note: seeds aren't compatible across major versions.

level-typedefault: minecraft:normal

World type. Vanilla options: minecraft:normal, minecraft:flat, minecraft:large_biomes, minecraft:amplified, minecraft:single_biome_surface.

Recommended: flat for build/minigame servers, large_biomes for exploration-focused SMPs. Note amplified is extremely CPU-heavy — avoid on shared hosting.

generate-structuresdefault: true

When false, villages, dungeons, mineshafts and other structures don't generate. Terrain still generates normally.

Recommended: true for normal servers. false only for skyblock-style worlds where structures don't make sense.

spawn-monstersdefault: true

Whether hostile mobs spawn. Setting to false is similar to peaceful but keeps the difficulty for hunger and other systems.

Recommended: true unless building a creative-only server. Use spawn-limits in bukkit.yml to throttle, not turn off.

max-world-sizedefault: 29999984

Half-size of the world in blocks (so 60M × 60M total). Lower this to enforce a hard world border at the file level.

Recommended: Leave at default unless you specifically want a small world. Use `/worldborder set <size>` for in-game border control instead.

Networking & query

server-portdefault: 25565

TCP port the server listens on. Standard Java Edition port.

Recommended: Leave at 25565 unless running multiple servers on one machine. Don't expose Minecraft directly without a firewall in front.

server-ipdefault: (empty)

Bind to a specific IP. Empty = bind to all interfaces. Use this on multi-IP hosts.

Recommended: Leave empty unless you have a specific reason. Setting this wrong silently makes your server unreachable.

enable-querydefault: false

Enables the GameSpy4 query protocol (UDP). Used by older server-list services and some Discord bots.

Recommended: true if you use Discord-MOTD bots or DynMap-style stats integrations. Otherwise false to reduce attack surface.

enable-rcondefault: false

Enables remote console (TCP). Allows external tools to send server commands without being in-game.

Recommended: true if your panel uses RCON for command execution. Always set a strong rcon.password and never expose port 25575 to the internet.

broadcast-rcon-to-opsdefault: true

Whether RCON-issued commands are echoed in chat to online ops.

Recommended: Leave true for transparency. Set false only if your panel issues lots of background commands you don't want spamming chat.

prevent-proxy-connectionsdefault: false

Blocks players whose Mojang account looks like it's connecting through a proxy/VPN.

Recommended: false for most servers — false-positives kick legitimate players. Use a dedicated anti-VPN plugin if you really need this.

Misc

motddefault: A Minecraft Server

Message of the day shown in the server browser. Supports color codes with `\u00a7` (or section-sign in raw form). Two lines max.

Recommended: Use it for branding and a quick player count or status — `§a§lMyServer §7| §fSMP 1.21 §7| §emyserver.com`. Keep it short.

enable-command-blockdefault: false

Whether command blocks function. Map-makers need this; survival SMPs usually don't.

Recommended: false for survival servers (cleaner, less abuse potential). true only for adventure-map or build servers.

function-permission-leveldefault: 2

Default permission level functions and gamerules use when called from a function (not a player). Affects what mcfunctions can do.

Recommended: 2 is fine for almost everyone. Bump to 4 only if you have datapacks that need op-tier commands.

resource-packdefault: (empty)

URL of a server resource pack. Players are prompted to download it on join. Must be a direct download link — Dropbox/Google Drive shared links won't work.

Recommended: Set with `resource-pack-sha1` (the SHA-1 hash of the .zip) to enable client caching. Without sha1, the pack re-downloads every join.

require-resource-packdefault: false

When true, players who decline the resource pack are kicked.

Recommended: true for visual-overhaul servers (CIT, custom textures). false for optional cosmetic packs.

allow-netherdefault: true

When false, players can't enter the Nether. The Nether dimension folder may still exist but portals don't fire.

Recommended: Leave true. Disabling the Nether is a sledgehammer fix — usually you want a per-portal plugin instead.

FAQ

Where is server.properties located on a Minecraft server?+

It's in the server's root folder, alongside the server jar. On CoalHost, you can edit it from the panel's Files section, or from the Server Settings page (which writes to it for you).

Do I need to restart the Minecraft server after editing server.properties?+

Yes. server.properties is read on startup. Most settings can be changed without a full restart by using in-game commands instead — for example `/difficulty hard`, `/whitelist on`, or `/gamerule keepInventory true` — but file changes only take effect after restart.

What's the difference between view-distance and simulation-distance?+

View-distance is how many chunks the server sends to clients (controls what players see). Simulation-distance is how many chunks tick mobs, redstone and water (controls what runs). Lowering simulation-distance is the bigger performance win, since players keep their visual range while CPU load drops.

Should I set online-mode to false?+

No, almost never. Setting online-mode=false lets anyone connect with any username — including impersonating server admins. The only legitimate use is behind a BungeeCord/Velocity proxy that handles authentication itself, with the proxy's IP firewalled to the backend server.

What's the most important server.properties setting for performance?+

Lowering simulation-distance from 10 to 4 or 5. It's typically a 30-50% reduction in tick time on busy servers, with almost no visible change for players. Pair it with view-distance 6-7 (down from 10) for another 20-30%.

Can I use commands instead of editing server.properties?+

Some settings have in-game equivalents that don't require restarts: /difficulty, /whitelist, /gamerule, /worldborder, /gamerule. But settings like view-distance, online-mode, server-port and level-name only update from the file (and only after restart).

Edit server.properties from a clean panel

CoalHost has a dedicated Server Settings page — change difficulty, view-distance, whitelist and 30+ other options without touching files.

View Minecraft Hosting →