server.properties Explained: Every Setting That Matters

A complete walkthrough of server.properties - what each setting does, its default value, which ones only apply at world creation, and which ones have been removed from the game.


What is server.properties?

server.properties sits in your server root directory and is Minecraft's own configuration file. It controls everything from port number and difficulty to how far players can see.

Three things are worth knowing before you start:

  • The file is only read at startup. You have to restart the server for changes to take effect. /reload does not reload it.
  • Some settings only apply at world creation. Change them later and nothing happens to the existing world.
  • Edit it while the server is stopped. The server rewrites the file when it shuts down, overwriting your changes.

Server and network

Setting Default Description
motd A Minecraft Server The text under the server name in the player's server list
max-players 20 How many players may be online at once
online-mode true Verifies that the player owns their Minecraft account. Leave this on true
enable-status true Whether the server answers pings and appears online in the list
hide-online-players false Hides the player list from the outside
network-compression-threshold 256 Packet size in bytes before compression. Only set -1 behind a local proxy
enforce-secure-profile true Requires a Mojang-signed chat key

World and gameplay

Setting Default Description
level-name world The name of the world folder the server loads
level-seed empty Seed for the world. World creation only
level-type minecraft:normal minecraft:flat, minecraft:large_biomes, minecraft:amplified. World creation only
generate-structures true Whether villages, temples and so on generate. World creation only
gamemode survival Default mode for new players
force-gamemode false Resets players to the default mode every time they join
difficulty easy peaceful, easy, normal or hard
hardcore false World creation only. Forces hard difficulty and permadeath
max-world-size 29999984 Distance in blocks from the centre to the world border
allow-flight false Does not grant flight. It only removes the "Flying is not enabled" anti-cheat kick
player-idle-timeout 0 Minutes of inactivity before a player is kicked. 0 = never
pause-when-empty-seconds 60 The server stops ticking once it has been empty this long. Set 0 if you run AFK farms

Performance

Setting Default Description
view-distance 10 How many chunks are sent to players. Costs bandwidth
simulation-distance 10 How many chunks are actually ticked. Costs CPU
entity-broadcast-range-percentage 100 How far away entities are sent to the client
max-tick-time 60000 Watchdog: milliseconds a tick may take before the server is killed. -1 disables it
sync-chunk-writes true Write chunks synchronously. Safer but slower
region-file-compression deflate Compression for new region files: deflate, lz4 or none

If you want more TPS, simulation-distance is the most important line in the whole file. See our guide on fixing lag.


Access and permissions

Setting Default Description
white-list false Only players on the list may join
enforce-whitelist false Also kicks players already online when the list is reloaded
op-permission-level 4 The level new operators get (0-4)
function-permission-level 2 The level data pack functions run at
spawn-protection 16 Square around spawn where only ops may build. 0 disables it
broadcast-console-to-ops true Show console commands to operators in-game
prevent-proxy-connections false Kicks players whose network does not match Mojang data. Also hits VPN users

Remote access

Setting Default Description
enable-rcon false Enables the RCON remote console
rcon.port 25575 The port RCON listens on
rcon.password empty RCON will not start without a password
enable-query false The query protocol used to fetch server info
query.port 25565 UDP port for query. It does not follow server-port automatically

Resource pack

Setting Default Description
resource-pack empty Direct download URL for the pack
resource-pack-sha1 empty SHA-1 of the file. Without it players redownload the pack every join
resource-pack-prompt empty Your own text in the download dialog
require-resource-pack false Players who decline are disconnected

Settings that no longer exist

As of Minecraft 1.21.9 a number of old settings were removed from server.properties and replaced by game rules. Setting them in the file today does nothing - the server ignores them:

Old setting Replaced by
pvp A game rule for PvP
allow-nether A game rule for Nether portals
spawn-monsters A game rule for monster spawning
enable-command-block A game rule for command blocks

Game rules are set in-game or in the console with /gamerule and are stored in the world, not in the file. Type /gamerule and press tab to see the exact names on your version - the spelling has changed along the way.

If you run a version older than 1.21.9, the settings still work in the file. Many control panels and guides still show them even though they are dead on newer versions.


The five most misunderstood

  1. difficulty vs hardcore. hardcore only applies at world creation and forces hard difficulty regardless of the difficulty line. You cannot make an existing world hardcore by editing it.
  2. allow-flight does not grant flight. Creative and spectator always fly. The setting only removes the anti-cheat kick so plugins and elytra edge cases do not throw people out.
  3. view-distance vs simulation-distance. Chunks between the two numbers are visible but frozen. Simulation distance is what costs CPU.
  4. spawn-protection does not apply to operators. If you test it as an op, you will never notice it.
  5. level-type uses namespaced names. It is minecraft:flat, not FLAT. In the file the colon is written with a backslash in front: level-type=minecraft\:normal. That is correct and should not be "fixed".

How to edit the file

  1. Stop the server in the Potionhost control panel.
  2. Open Files and edit server.properties in the root folder.
  3. Change the value after the equals sign - no spaces around it.
  4. Save and start the server.
  5. Check Console for errors during startup.

Did something go wrong? Delete server.properties while the server is stopped. It is recreated with default values on the next startup - but note that level-name then resets to world as well.

Unsure about a setting? Contact our support before changing anything on a server with players on it.

MinecraftOrder now

Guide Information

Published
August 23, 2026
Last Updated
September 1, 2026
Views
73