Skip to main content
← All Guides
Server Basics · 12 min read

Complete List of Minecraft Server Properties Explained

Every important setting in server.properties explained with recommended values for performance, security, gameplay, and networking.

What Is server.properties?

The server.properties file is the main configuration file for every Minecraft server. It is generated automatically the first time you start a server and lives in the root of your server directory. The file uses a simple key=value format with one setting per line. Lines starting with # are comments. Changes require a server restart to take effect (most of them, at least).

This guide covers every setting that matters, grouped by function. We skip a few truly obsolete or redundant ones that no longer affect modern Paper servers. If you are setting up a server for the first time, read the server setup guide first and come back here for fine-tuning.

Network Settings

server-port

Default: 25565. The port the server listens on for incoming connections. The default Minecraft port is 25565, and players can connect without specifying a port if you use it. If you run multiple servers on the same machine, each needs a unique port. On a Velocity or BungeeCord network, backend servers use non-standard ports (25566, 25567, etc.) and only the proxy uses 25565.

server-ip

Default: empty (binds to all interfaces). Set this to a specific IP address to restrict which network interface the server listens on. On most setups, leave it blank. On machines with multiple network interfaces, you might set it to the public IP. On a BungeeCord/Velocity setup, set backend servers to 127.0.0.1 so they only accept connections from the local proxy.

network-compression-threshold

Default: 256. Packets larger than this value (in bytes) are compressed before sending. Lower values compress more aggressively, saving bandwidth but using more CPU. Higher values compress less, saving CPU but using more bandwidth. The default of 256 is a good balance. Set to -1 to disable compression entirely, which wastes bandwidth. On a Velocity/BungeeCord network, set backend servers to -1 because the proxy handles compression instead.

rate-limit

Default: 0 (disabled). Sets the maximum number of packets a client can send per second before being kicked. This is a basic anti-flood measure. A value of 0 disables the limit. Setting it to something like 500 can help prevent certain types of packet spam, but legitimate clients rarely exceed 300 packets per second even during heavy gameplay.

Gameplay Settings

gamemode

Default: survival. The default game mode for new players joining the server. Options are survival, creative, adventure, and spectator. This only sets the mode for first-time joins. Existing players keep their current mode. You can change individual players with /gamemode. Most servers use survival and grant creative through permissions to staff using LuckPerms or EssentialsX.

difficulty

Default: easy. Sets the world difficulty: peaceful, easy, normal, or hard. This affects mob damage, hunger drain rate, and whether certain mechanics work (zombies break doors on hard, for instance). Most survival servers use normal or hard. Note that this can also be changed per-world with the /difficulty command.

pvp

Default: true. Whether players can damage each other. Set to false for a fully PvE server. Many servers leave this true and use plugins like WorldGuard to create PvP-only zones or let players toggle PvP individually.

allow-nether

Default: true. Whether the nether dimension generates and is accessible through portals. Setting this to false deletes the nether world folder on next restart, so be careful. The only reason to disable it is on minigame servers or skyblock setups where the nether is not part of the gameplay.

spawn-protection

Default: 16. The radius in blocks around the world spawn point where non-OP players cannot break or place blocks. Set to 0 to disable spawn protection entirely. Most servers using WorldGuard or similar protection plugins set this to 0 and handle spawn protection through the plugin instead, since plugin-based protection is far more flexible.

max-players

Default: 20. The maximum number of players that can be connected simultaneously. This is a soft cap. Players with the appropriate bypass permission (on Paper) can join beyond this limit. Set it to your intended capacity. Setting it very high (like 1000) when you expect 20 players does not use extra resources, but it looks misleading on server lists.

allow-flight

Default: false. When false, the server kicks players that appear to be flying without creative mode. This is vanilla's anti-fly check, which is notoriously bad. It kicks players on laggy connections, players riding horses over bumps, and players using elytra near the ground. On Paper servers, set this to true and use a proper anti-cheat plugin instead. The vanilla flight check causes more problems than it solves.

spawn-monsters

Default: true. Whether hostile mobs spawn naturally. Setting to false prevents all hostile mob spawning, which is only useful for creative servers or lobbies. Does not affect spawners.

spawn-animals

Default: true. Whether passive animals spawn naturally. Same as above but for cows, pigs, sheep, etc. Leave this true on survival servers.

force-gamemode

Default: false. When true, players are forced into the default gamemode every time they join, even if they were in a different mode when they logged out. Useful for lobby servers where everyone should always be in adventure mode.

hardcore

Default: false. Enables hardcore mode. Players who die are set to spectator mode and cannot respawn. The world difficulty is locked to hard. This is a permanent setting for the world, so switching it on an existing world requires careful planning.

World Generation Settings

level-seed

Default: empty (random). The world generation seed. Set this before first boot to use a specific seed. Changing it after the world exists does not regenerate existing chunks; only new chunks use the new seed, causing jarring chunk borders. If you want a new seed, delete the world folder and let it regenerate.

level-type

Default: minecraft:normal. The world generator type. Options include minecraft:normal (standard terrain), minecraft:flat (superflat), minecraft:large_biomes (biomes are 4x larger), and minecraft:amplified (extreme terrain height). Modded servers may register custom level types. Like the seed, this should be set before first boot.

generator-settings

Default: {}. A JSON string used for customizing superflat worlds. Only applies when level-type is minecraft:flat. You can specify layers, biome, structures, and more. The format is complex; use a superflat preset generator tool to create the JSON string.

generate-structures

Default: true. Whether structures (villages, temples, strongholds, mineshafts, etc.) generate in the world. Disable this only if you are running a completely custom world or a minigame server. On survival servers, leave it true.

level-name

Default: world. The name of the world folder. Change this to use a different world folder without renaming directories. Useful if you maintain multiple world folders and want to switch between them.

Performance Settings

view-distance

Default: 10. How many chunks around each player are sent to the client for rendering. Higher values let players see farther but send more data and keep more chunks in memory. On Paper, this is separate from simulation-distance, meaning you can send chunks for rendering without simulating them. A good starting value is 10. Going above 12 has diminishing visual returns but increasing server cost. See the TPS optimization guide for tuning.

simulation-distance

Default: 10. How many chunks around each player are actively ticked (mobs move, crops grow, redstone fires). This is the biggest single performance knob in server.properties. Set it to 6-8 for a good balance between gameplay and performance. Chunks between simulation-distance and view-distance are visible but frozen.

max-tick-time

Default: 60000 (60 seconds). If a single server tick takes longer than this many milliseconds, the vanilla watchdog kills the server process. On Paper, set this to -1 to disable the vanilla watchdog. Paper has its own, more intelligent watchdog that handles long ticks without killing the process unnecessarily. The vanilla watchdog kills the server during world saves on slow disks, which is not helpful.

max-chained-neighbor-updates

Default: 1000000. Limits the number of consecutive block updates that can happen in a single tick. This prevents redstone machines and TNT chains from locking up the server. Lowering it to 10000 prevents the most egregious abuse while leaving normal redstone functional.

Security Settings

online-mode

Default: true. When true, the server verifies player accounts against Mojang's authentication servers. When false (offline/cracked mode), anyone can connect with any username. Never run a public server with online-mode=false unless it is behind a Velocity proxy with online-mode=true on the proxy and proper forwarding configured. Running offline mode without a proxy means anyone can impersonate any player, including your admins.

white-list

Default: false. When true, only players on the whitelist can join. Manage the whitelist with /whitelist add <player> and /whitelist remove <player>. Good for private servers, development servers, and beta testing.

enforce-whitelist

Default: false. When true, players already online who are removed from the whitelist get kicked immediately. When false, they can stay until they disconnect. Set this to true if you use the whitelist for access control.

enforce-secure-profile

Default: true. Requires players to have a Mojang-signed public key for chat. This is part of Mojang's chat reporting system. Many server owners set this to false because it can prevent players using older launchers from joining, and most community servers use plugin-based chat moderation rather than Mojang's reporting system.

Resource Pack Settings

resource-pack

Default: empty. A URL to a resource pack that players are prompted to download when joining. The URL must be a direct download link to a ZIP file. Use a CDN or direct file hosting. Dropbox and Google Drive links often break.

resource-pack-sha1

Default: empty. The SHA-1 hash of the resource pack file. The client uses this to check if it already has the pack cached, avoiding unnecessary downloads. Calculate it with sha1sum yourpack.zip on Linux or an online SHA-1 tool.

require-resource-pack

Default: false. When true, players who decline the resource pack are disconnected. Useful for servers where the pack is essential to gameplay (custom items, custom textures).

resource-pack-prompt

Default: empty. A custom message shown to the player when they are prompted to download the resource pack. Supports JSON text formatting. Use this to explain why the pack is needed.

RCON Settings

enable-rcon

Default: false. Enables the Remote Console protocol, which allows sending server commands over a TCP connection. Useful for external tools, bots, and automated scripts. If enabled, make sure the RCON port is firewalled from the public internet and the password is strong.

rcon.port

Default: 25575. The port RCON listens on. Change this to a non-standard port if you enable RCON, and make sure only authorized IPs can reach it.

rcon.password

Default: empty. The password required to authenticate RCON connections. If RCON is enabled, this must be set to a strong password. Never leave it blank or use a simple password. Anyone with RCON access has full console-level control of your server.

MOTD and Miscellaneous

motd

Default: A Minecraft Server. The message displayed in the server list. Supports section sign color codes (\u00a7 followed by a color code) and some special characters. Many admins use online MOTD generators to create colorful two-line messages. The MOTD has a maximum length of two lines, and each line can be about 45 characters before it gets truncated in the client's server list.

enable-status

Default: true. Whether the server responds to status pings (the server list query). Setting to false makes the server appear offline in server lists, but players can still connect directly if they know the address. Occasionally used to hide development servers.

enable-query

Default: false. Enables the GameSpy4 query protocol, which external monitoring tools use to fetch server info (player list, plugins, map name). Only enable this if you use a monitoring service that requires it. Like RCON, firewall the query port if enabled.

query.port

Default: 25565. The port used for GameSpy4 queries. Only relevant if enable-query is true.

enable-command-block

Default: false. Whether command blocks function on the server. Disable this on survival servers unless you specifically use command blocks for server mechanics. Enabled command blocks are a security risk if players find a way to access them.

op-permission-level

Default: 4. The permission level granted to operators. Level 4 gives full access including /stop and /op. Most servers use a permissions plugin like LuckPerms instead of the OP system, making this setting irrelevant. If you do use OP, consider level 3 for trusted players (no /stop or /op) and reserve level 4 for yourself.

player-idle-timeout

Default: 0 (disabled). Minutes of inactivity before a player is kicked. Useful for servers with limited slots where AFK players take up space. A value of 15-30 minutes is typical. Set to 0 to allow unlimited AFKing. If you use EssentialsX, its AFK system is more flexible than this built-in timeout.

Final Notes

After editing server.properties, save the file and restart the server. Most settings are not hot-reloaded. Keep a backup of the file before making changes so you can revert if something breaks. If you use a hosting panel, the panel may have a GUI editor for these settings, but the underlying file is the same. For performance-focused tuning, combine these settings with Paper-specific configs as described in the optimization guide.

Need a server that handles all this? Astroworld Hosting runs NVMe SSD, Pterodactyl panel, and DDoS protection on every plan. See all features , plans start at €6.39/mo.

Related Tools & Resources

🔧

Minecraft Tools

Calculators, generators & server tools

🧱

Item Database

Browse all Minecraft items, stats & recipes

⚒️

Crafting Recipes

Visual crafting guides for every recipe