Server administration

Minecraft server properties explained: every important setting

10 min readServerBuddy

Learn the important Minecraft server.properties settings for Java servers, including safe public defaults, MOTD, ports, whitelist, performance, RCON, and launch checks.

server.properties is the main config file for a Minecraft Java server. It controls the address and port, MOTD, max players, whitelist, game mode, difficulty, PvP, view distance, resource packs, RCON, and other settings that affect how players connect and what they experience after joining. PaperMC's reference lists the current settings and default values for the file. (PaperMC Docs)

For most server owners, the safest workflow is simple: edit a copy, avoid changing values you do not understand, restart the server, then test the public status. You can also use ServerBuddy's server.properties generator to start from a preset, import your existing file, compare changed values, and download a clean config.

Last reviewed: May 2026. Tested with Java server.properties behavior, Paper-style Java server defaults, and ServerBuddy Config Builder output.

Quick answer

For a public Minecraft Java server, the most important server.properties settings are usually:

server.properties
motd=Your Server Name | Survival 1.21+
server-port=25565
server-ip=
max-players=40
gamemode=survival
difficulty=normal
pvp=true
online-mode=true
white-list=false
enforce-whitelist=false
enable-status=true
view-distance=10
simulation-distance=10
enable-rcon=false

Keep online-mode=true for public servers. Leave server-ip blank unless your host specifically tells you to bind to a local address. Keep enable-status=true if you want the server to show as online in server lists and public status tools.

ServerBuddy Config Builder showing safe Minecraft server.properties settings, public status, MOTD, and server preview panels.
Use a config builder, public status check, MOTD preview, and whitelist helper before opening a Java server to players.

What is server.properties?

server.properties is a plain text file in the main folder of a Minecraft Java server. The server reads it on startup and uses it to decide how the server should behave.

A typical server folder looks like this:

text
/my-minecraft-server
  server.jar
  server.properties
  eula.txt
  ops.json
  whitelist.json
  world/
  plugins/

Each line uses this format:

server.properties
setting-name=value

For example:

server.properties
max-players=20
difficulty=normal
pvp=true

Most changes should be followed by a restart. Some actions, such as whitelist commands, can update live behavior, but server.properties should be treated as a startup config unless your server software or host panel says otherwise.

Before you edit server.properties

Back up the file first. It is small, and a backup can save you from a broken launch.

Use this process:

  1. Stop the server.
  2. Copy server.properties to server.properties.backup.
  3. Edit the file in your host panel, SFTP editor, or local text editor.
  4. Save the file.
  5. Start the server again.
  6. Test that players can connect.
  7. Check the public status with the Minecraft server status checker.

ServerBuddy's status checker resolves DNS and SRV records, auto-detects Java or Bedrock, and shows latency, version, protocol, players, MOTD, and icon, plus failure reasons like DNS failure, timeout, connection refused, or invalid response. (ServerBuddy)

The settings most owners edit first

These are the settings new server owners usually need before inviting players.

SettingCommon valueWhat it changesSafe advice
motdA Minecraft ServerText shown in the multiplayer server listKeep it short and readable
server-port25565Java connection portChange only if your host or network needs it
server-ipblankLocal bind addressLeave blank unless your host tells you otherwise
max-players20Visible player slot limitSet a number your hardware can handle
gamemodesurvivalDefault game modeUse survival for most SMPs
difficultyeasy or normalWorld difficultyUse normal for public survival unless you want easier play
pvptruePlayer combatSet false for peaceful SMPs
online-modetrueMojang account authenticationKeep true on public servers
white-listfalseWhether only listed players can joinUse true for private servers
enforce-whitelistfalseStrict whitelist enforcementUse with white-list=true for private communities
view-distance10Chunks sent to clientsLower it if the server lags
simulation-distance10Chunks where entities tickOften the better setting to lower first
enable-statustrueServer list ping responseKeep true for public listings

PaperMC documents motd, max-players, online-mode, server-ip, server-port, simulation-distance, view-distance, and whitelist behavior in its server.properties reference. (PaperMC Docs)

MOTD and server list settings

motd

Default:

server.properties
motd=A Minecraft Server

The MOTD is the message players see under the server name in the multiplayer list. It is also one of the first things people see on public server lists.

Good MOTDs are short. They usually mention the server name, main mode, and supported version.

Good example:

server.properties
motd=Quartz Harbor SMP | Survival 1.21+

Weak example:

server.properties
motd=Welcome everyone to the best amazing new survival economy SMP server with events and giveaways

Long MOTDs get cut off. Color codes can work, but messy formatting makes a server look unfinished. Use the MOTD generator if you want a two-line preview and server.properties output.

enable-status

Default:

server.properties
enable-status=true

This controls whether the server responds to status requests used by the Minecraft server list. If it is off, the server can appear offline in a server list even when direct connection still works. PaperMC notes that turning it off makes the server appear offline while players can still connect. (PaperMC Docs)

For a public server, keep this on.

hide-online-players

Default:

server.properties
hide-online-players=false

This hides the player list sent with status request packets. It does not make the server private. It only limits what the status response shares.

Use it if you do not want public pings to show player names. Do not use it as a privacy system. Use a whitelist for that.

Connection settings

server-port

Default:

server.properties
server-port=25565

This is the Java server port. Most Java servers use 25565. If you change it, players may need to connect with the port included:

text
play.example.com:25566

If your server works locally but not publicly, changing this value is usually not the first fix. Check port forwarding, host firewall rules, and whether your public address points to the right machine.

server-ip

Default:

server.properties
server-ip=

Most public servers should leave this blank. PaperMC describes it as the IP address the server binds to and says a blank value binds to all interfaces. (PaperMC Docs)

A common mistake is putting the public IP here. That can break hosting setups because the server may try to bind to an address that does not exist on the local machine. ServerBuddy's Config Builder also warns owners to leave server-ip blank unless the host specifically requires a bind address. (ServerBuddy)

Use:

server.properties
server-ip=

Do not use this unless your host panel tells you to:

server.properties
server-ip=123.45.67.89

enable-query and query.port

Defaults:

server.properties
enable-query=false
query.port=25565

enable-query enables the older GameSpy4 query listener. It is not the same as normal server list ping. Most small servers do not need it unless a plugin, panel, or third-party tool specifically uses query data.

If you enable it, keep the query port aligned with your network rules.

Authentication and public safety

online-mode

Default:

server.properties
online-mode=true

This is one of the most important settings in the file. When online-mode=true, the server checks connecting players against Minecraft's account database. PaperMC notes that this requires valid Minecraft accounts and blocks cracked players. (PaperMC Docs)

For a public server, keep:

server.properties
online-mode=true

Avoid this on public servers:

server.properties
online-mode=false

online-mode=false is sometimes used behind a correctly configured proxy network, but that setup needs separate security controls. On a normal public server, it can allow name spoofing and account impersonation.

prevent-proxy-connections

Default:

server.properties
prevent-proxy-connections=false

This setting checks whether the ISP or autonomous system from Mojang authentication differs from the one used by the player connection. It can block some proxy or VPN behavior, but it can also create false positives.

Use it carefully. Do not turn it on without testing with normal players.

enforce-secure-profile

Default:

server.properties
enforce-secure-profile=true

When true, players without a Mojang-signed public key cannot connect. Leave this enabled unless you know your version, proxy, or modded environment requires different behavior.

Player slots and access control

max-players

Default:

server.properties
max-players=20

This is the maximum number of players that can be online at the same time. It does not mean your server can run smoothly with that many players.

A small private SMP might use:

server.properties
max-players=10

A public server with enough CPU, RAM, and optimized settings might use:

server.properties
max-players=50

Do not set max-players=500 just to look big. Empty oversized slots can look strange, and the server still needs enough performance for the real player count.

white-list

Default:

server.properties
white-list=false

When enabled, only players on the whitelist can join.

Use this for private SMPs, creator events, test servers, staff previews, and family servers.

server.properties
white-list=true

For public servers:

server.properties
white-list=false

enforce-whitelist

Default:

server.properties
enforce-whitelist=false

This makes the whitelist stricter. PaperMC describes it as kicking players who are not on the whitelist. (PaperMC Docs)

For a private server, pair both settings:

server.properties
white-list=true
enforce-whitelist=true

For full setup steps, link to the existing whitelist guide. That post already covers whitelist commands, white-list=true, and enforce-whitelist=true, so this section should stay short rather than duplicating the whole guide. (ServerBuddy)

Gameplay settings

gamemode

Default:

server.properties
gamemode=survival

Allowed values include:

text
survival
creative
adventure
spectator

Use survival for most SMPs and public survival servers. Use creative for build servers. Use adventure only when your maps or plugins are built around it.

force-gamemode

Default:

server.properties
force-gamemode=false

When true, players are forced into the default game mode when they join. If a player logged out in creative but the server default is survival, they return in survival.

Use it when you want strict mode consistency:

server.properties
force-gamemode=true

Leave it false if staff or builders need to keep custom game modes.

difficulty

Default:

server.properties
difficulty=easy

Allowed values are:

text
peaceful
easy
normal
hard

For public survival, normal is a common choice:

server.properties
difficulty=normal

Use peaceful for casual build servers. Use hard only if the server is designed around harder survival.

pvp

Default:

server.properties
pvp=true

This controls whether players can damage each other.

For a peaceful SMP:

server.properties
pvp=false

For factions, lifesteal, anarchy, or PvP servers:

server.properties
pvp=true

Changing this does not replace region protection, claim plugins, or moderation rules. It only controls direct player combat.

hardcore

Default:

server.properties
hardcore=false

When true, death has hardcore behavior. PaperMC notes that players are set to spectator mode after death. (PaperMC Docs)

Use this only if the entire server is meant to be hardcore.

spawn-protection

Default:

server.properties
spawn-protection=16

This protects the spawn area when there is at least one operator. PaperMC describes it as using a 2x+1 side-length formula, so spawn-protection=16 creates a larger protected square around spawn. (PaperMC Docs)

For public servers, keep some spawn protection:

server.properties
spawn-protection=16

For private servers where everyone is trusted:

server.properties
spawn-protection=0

player-idle-timeout

Default:

server.properties
player-idle-timeout=0

A value of 0 disables idle kicking. A value like 30 kicks players who are idle for more than 30 minutes.

For small private servers, leaving it off is fine. For busy public servers with limited slots, an idle timeout can free space.

server.properties
player-idle-timeout=30

allow-flight

Default:

server.properties
allow-flight=false

This does not give players creative flight. It controls whether survival players are kicked for flying. PaperMC notes that flight can happen because of hacks, but false positives can occur. (PaperMC Docs)

Leave it false for vanilla survival:

server.properties
allow-flight=false

Set it true if your server uses plugins, mods, elytra mechanics, launch pads, or minigames that can trigger false kicks:

server.properties
allow-flight=true

Performance settings

view-distance

Default:

server.properties
view-distance=10

This controls how much world data the server sends to each client, measured in chunks from the player. PaperMC lists the default as 10 and describes it as the server-side viewing distance. (PaperMC Docs)

Higher values look better but cost more CPU, memory, and bandwidth.

Good starting points:

Server typeSuggested starting value
Small private SMP10
Public survival6 to 10
Busy hub or minigame server4 to 8
Low-resource server4 to 6

simulation-distance

Default:

server.properties
simulation-distance=10

This controls how far away living entities are ticked by the server. PaperMC describes it as the maximum distance from players where living entities update. (PaperMC Docs)

If the server lags, lowering simulation-distance often helps more than lowering view-distance, because it reduces active entity and redstone work.

Common public-server setup:

server.properties
view-distance=8
simulation-distance=6

entity-broadcast-range-percentage

Default:

server.properties
entity-broadcast-range-percentage=100

This controls how far away entities are sent to clients as a percentage of the default range. Lowering it can reduce network and client load, but it can also make entities appear later.

Leave it alone unless you are tuning a busy server.

network-compression-threshold

Default:

server.properties
network-compression-threshold=256

This controls when packets are compressed. PaperMC notes that a negative value disables compression. (PaperMC Docs)

Most owners should leave this at the default. Change it only when following your server software's performance guidance.

max-tick-time

Default:

server.properties
max-tick-time=60000

This is the watchdog limit. If a tick takes too long, the server can stop itself instead of hanging forever. PaperMC explains that setting it to -1 disables the watchdog. (PaperMC Docs)

Do not disable it just to hide lag. Fix the lag source instead.

sync-chunk-writes

Default:

server.properties
sync-chunk-writes=true

This affects how chunk data is written. PaperMC notes that it has no effect on Paper by default unless the matching system property is also set. (PaperMC Docs)

Most owners should leave it alone.

use-native-transport

Default:

server.properties
use-native-transport=true

PaperMC describes this as a Linux performance boost. (PaperMC Docs)

Keep it enabled unless your host or logs say it is causing problems.

rate-limit

Default:

server.properties
rate-limit=0

A value of 0 disables the packet rate limit. This is not a full anti-DDoS system. For public servers, use proper hosting, firewall rules, and server-side protection instead of relying only on this value.

ServerBuddy comparison board showing laggy Minecraft server.properties values beside safer Java server settings.
Treat slot count, view distance, simulation distance, authentication, and remote console access as launch-critical settings.

World settings

level-name

Default:

server.properties
level-name=world

This is the world folder name. If you change it, the server looks for or creates a different world folder.

Example:

server.properties
level-name=season-2

Do not rename this casually after a live launch. If you point it at an empty folder name, the server may generate a new world and make it look like your old world disappeared.

level-seed

Default:

server.properties
level-seed=

Leave it blank for a random seed. Set it before first world generation if you want a specific seed.

server.properties
level-seed=8675309

Changing the seed after the world already exists does not rewrite already generated chunks.

level-type

Default:

server.properties
level-type=minecraft:normal

This controls world generation type. PaperMC lists values such as normal, flat, large biomes, amplified, and others. (PaperMC Docs)

Most survival servers should leave:

server.properties
level-type=minecraft:normal

Use flat worlds for creative plots, testing, or controlled building environments.

generator-settings

Default:

server.properties
generator-settings={}

This is for custom world generation settings. Leave it as {} unless you know the exact format your server version expects.

generate-structures

Default:

server.properties
generate-structures=true

This controls whether structures such as villages generate. PaperMC lists it as the setting for structure generation. (PaperMC Docs)

Use:

server.properties
generate-structures=true

Most survival players expect villages, temples, and other structures to exist.

max-world-size

Default:

server.properties
max-world-size=29999984

This limits the maximum allowed world radius for generation. It is not the same as a world border.

Most owners should use an in-game world border or plugin rule instead of changing this.

Resource pack settings

Resource pack settings are useful when your server needs custom textures, sounds, models, or UI assets.

resource-pack

Default:

server.properties
resource-pack=

This is the URL to the server resource pack.

require-resource-pack

Default:

server.properties
require-resource-pack=false

When true, players must accept the resource pack to join. PaperMC notes that players are kicked if they do not use the required pack. (PaperMC Docs)

Use this only when the pack is required for gameplay.

resource-pack-prompt

Default:

server.properties
resource-pack-prompt=

This is the message shown when the client is prompted to download the pack.

Keep it short:

server.properties
resource-pack-prompt=Required for custom items and sounds.

resource-pack-sha1

Default:

server.properties
resource-pack-sha1=

This verifies the resource pack. PaperMC recommends setting it so players download the correct pack. (PaperMC Docs)

If you use a required resource pack, set the hash correctly. Do not paste a random value.

resource-pack-id

Default:

server.properties
resource-pack-id=

This is the UUID for the server resource pack. Use it when your server version and resource pack workflow require it.

Admin and command settings

op-permission-level

Default:

server.properties
op-permission-level=4

This controls the default permission level for players added with /op. PaperMC lists allowed values from 0 to 4. (PaperMC Docs)

For most servers, be careful with operator access. Do not use /op as a normal rank system. Use permissions plugins for public servers.

function-permission-level

Default:

server.properties
function-permission-level=2

This controls the default permission level for functions. Leave it at the default unless a datapack or admin workflow requires a change.

broadcast-console-to-ops

Default:

server.properties
broadcast-console-to-ops=true

This sends console command output to online operators. It is useful for staff awareness, but it can be noisy.

broadcast-rcon-to-ops

Default:

server.properties
broadcast-rcon-to-ops=true

This sends RCON command output to operators. If you use RCON automation, decide whether staff should see those outputs.

RCON settings

enable-rcon

Default:

server.properties
enable-rcon=false

RCON allows remote access to the server console. PaperMC describes it as remote console access. (PaperMC Docs)

For most owners:

server.properties
enable-rcon=false

Enable it only when you need it for a trusted panel, bot, or automation tool.

rcon.port

Default:

server.properties
rcon.port=25575

This is the RCON port, not the player connection port.

rcon.password

Default:

server.properties
rcon.password=

Never leave RCON enabled with a weak or empty password.

Bad:

server.properties
enable-rcon=true
rcon.password=password

Better:

server.properties
enable-rcon=true
rcon.password=use-a-long-random-password-here

Also restrict network access to the RCON port. Do not expose it to the public internet unless your host has a safe control-plane setup.

Logging, debug, and monitoring settings

log-ips

Default:

server.properties
log-ips=true

This controls whether player IP addresses are logged by the server. PaperMC notes that it does not stop plugins from logging IP addresses. (PaperMC Docs)

If you run a public server, think about privacy, moderation, and legal requirements in your region before changing logging behavior.

debug

Default:

server.properties
debug=false

This enables debug mode. Keep it off unless you are troubleshooting a specific issue.

enable-jmx-monitoring

Default:

server.properties
enable-jmx-monitoring=false

JMX can expose server performance data through Java monitoring. PaperMC notes that enabling it also needs JVM flags. (PaperMC Docs)

Most owners should leave it disabled.

Management server settings

Some newer server.properties files include management-server fields:

server.properties
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=

These are not settings most small server owners need to edit. Leave them at defaults unless you are intentionally using the Minecraft Server Management Protocol and understand how the host, port, secret, and TLS settings are secured. PaperMC lists these management-server settings and their purposes in its reference. (PaperMC Docs)

Good starting presets

These are safe starting points, not universal rules.

Private SMP

server.properties
motd=Private SMP
server-port=25565
server-ip=
max-players=10
gamemode=survival
difficulty=normal
pvp=false
online-mode=true
white-list=true
enforce-whitelist=true
enable-status=true
view-distance=10
simulation-distance=8
enable-rcon=false

Use this for a small group of friends. Pair it with the whitelist command generator.

Public survival server

server.properties
motd=YourName Survival | 1.21+
server-port=25565
server-ip=
max-players=40
gamemode=survival
difficulty=normal
pvp=true
online-mode=true
white-list=false
enforce-whitelist=false
enable-status=true
view-distance=8
simulation-distance=6
enable-rcon=false

Use this as a baseline for a public SMP or survival server. After the server is reachable, test it with the status checker, then add your Minecraft server when it is ready for players.

Whitelisted community launch

server.properties
motd=Community SMP | Opening soon
server-port=25565
server-ip=
max-players=30
gamemode=survival
difficulty=normal
pvp=false
online-mode=true
white-list=true
enforce-whitelist=true
enable-status=true
view-distance=8
simulation-distance=6
enable-rcon=false

Use this when preparing a server before launch. You can keep the server visible but locked to approved players while staff finish testing.

Creative build server

server.properties
motd=Creative Build Server
server-port=25565
server-ip=
max-players=25
gamemode=creative
force-gamemode=true
difficulty=peaceful
pvp=false
online-mode=true
white-list=true
enforce-whitelist=true
view-distance=10
simulation-distance=6
enable-rcon=false

Use this for private build teams or community creative projects. Add permissions and claim protection separately if the server is public.

Common server.properties mistakes

MistakeWhy it causes problemsBetter setting
Putting the public IP in server-ipThe server may bind to the wrong address or fail to listenserver-ip=
Setting online-mode=false on a public serverPlayers can impersonate names unless a secure proxy setup handles authonline-mode=true
Raising max-players too highSlots do not create performanceUse a realistic slot count
Raising view-distance to 16 or 32More chunks can cause lagStart at 8 to 10
Leaving enable-status=falseServer can look offline in listsenable-status=true
Turning on RCON with a weak passwordRemote console access can be abusedKeep RCON off or lock it down
Changing level-name after launchThe server may load a different world folderBack up and rename carefully
Requiring a resource pack without a valid linkPlayers may be unable to joinTest the pack URL and hash
Using whitelist settings but not commandsPlayers may still be missing from the listUse whitelist commands and reload
Editing the file while the server overwrites itChanges may not save cleanlyStop, edit, restart

How to check if your settings worked

After editing server.properties, check three things.

First, read the startup logs. Look for errors about invalid values, occupied ports, failed resource packs, or failed binding.

Second, join from Minecraft using the same address players will use. Do not only test with localhost.

Third, run a public status check. ServerBuddy can show whether the server responds from the public internet, which edition it appears to use, what version it reports, whether the MOTD is readable, and whether the player count and icon appear correctly. ServerBuddy's status tool also links to the matching profile or add-server flow after a successful check. (ServerBuddy)

Use this launch checklist:

CheckGood resultTool
Config fileValues match your intended setupserver.properties generator
Public pingServer responds from outside your networkstatus checker
MOTDShort, readable, version clearMOTD generator
WhitelistCorrect players can joinwhitelist generator
ListingServer is online and readyAdd Server

FAQ

Where is server.properties in Minecraft?

server.properties is in the main folder of a Minecraft Java server, usually beside the server jar, eula.txt, ops.json, whitelist.json, and the world folder.

Do I need to restart after editing server.properties?

Usually, yes. Stop the server, edit the file, save it, and start the server again. Some behavior can be changed with commands, but server.properties should be treated as startup config.

Should server-ip be blank?

For most public Java servers, yes. Leave server-ip blank unless your hosting provider specifically tells you to bind to a certain local address.

What is the default Minecraft server port?

The default Java server port is 25565. If you use a different port, players may need to include it in the address, such as play.example.com:25566.

Should online-mode be true or false?

Use online-mode=true for public servers. Only use online-mode=false in a properly secured proxy setup where authentication is handled correctly elsewhere.

What does enable-status do?

enable-status=true lets the server respond to server list status requests. If it is false, the server can appear offline in server lists even when direct joining still works.

What is the difference between view-distance and simulation-distance?

view-distance controls how many chunks the server sends to players. simulation-distance controls how far away entities and block activity keep ticking. Lowering simulation distance can reduce lag on survival servers.

What settings should I use for a private SMP?

Use online-mode=true, white-list=true, enforce-whitelist=true, a realistic max-players value, and moderate performance settings such as view-distance=10 and simulation-distance=8.

Can Bedrock servers use this same file?

This guide is for Minecraft Java server.properties. Bedrock Dedicated Server uses a different setup and different connection defaults. Use the ServerBuddy status checker if you need to test whether a public address responds as Java or Bedrock.

What should I do before listing my server?

Check that the server responds publicly, the MOTD is readable, the port is correct, online-mode is safe for your setup, and the server has the right edition and version. Then submit it through Add Server so ServerBuddy can verify it with a live Server List Ping.