What server.properties Does
Every Minecraft server, regardless of which server software it runs on, reads a plain text file called server.properties at startup. This file controls everything from the game rules to the network port the server listens on. Changes to the file do not take effect until the server is fully restarted -- saving the file alone is not enough. The file is generated automatically with default values the first time you start a server, so you will always have something to work with even if you never touched it before.
Each line follows a simple key=value format. Lines that start with # are comments and are ignored by the server. You can edit the file directly through your server panel's file manager, via SFTP, or on the command line. There is no special syntax beyond that -- just plain text.
World and Gameplay Settings
These settings define the experience players have when they join your server.
- level-name: The name of the world folder. Default is
world. If you change this, the server creates a brand new world with that folder name. Useful if you want to swap worlds without deleting files. - level-seed: The seed used to generate the world. Leave blank for a random seed or enter any string or number. This only applies when the world is first generated -- changing it after the fact has no effect on an existing world.
- gamemode: Sets the default gamemode for new players. Options are
survival,creative,adventure, andspectator. Players who have been on the server before keep their existing gamemode unless force-gamemode is also enabled. - difficulty: Controls mob behavior and hunger drain. Options are
peaceful,easy,normal, andhard. Peaceful disables all hostile mobs entirely. - max-players: The maximum number of players who can be connected at the same time. Setting this higher than your hardware can handle leads to lag for everyone.
- view-distance: How many chunks around each player the server loads and simulates. The default is 10. Lowering this to 6 or 8 is one of the most effective ways to reduce server CPU and RAM usage on busy servers.
- simulation-distance: Separate from view-distance, this controls how far out the server actually ticks entities, crops, and redstone. Lowering this independently of view-distance lets players see farther without the server simulating all of it.
Network Settings
These settings control how players connect to your server.
- server-ip: The IP address the server binds to. Leave this blank to bind to all available network interfaces, which is the correct setting for almost every server. Only set a specific IP if you are running multiple servers on one machine and need to separate their traffic.
- server-port: The TCP port the server listens on. Default is
25565. If you change this, players must include the port in the server address when they connect (e.g.,play.example.com:25566). On NetSkyway, your port is assigned automatically and shown in the panel. - online-mode: When set to
true(the default), the server verifies every player's account with Mojang's authentication servers. This prevents players from joining with pirated accounts and is required for the player skin system to work. Set tofalseonly if your server sits behind a proxy like BungeeCord or Velocity that handles authentication itself -- running offline-mode on a standalone server is a significant security risk.
Protection Settings
These control who can do what on your server.
- pvp: Enables or disables player-versus-player combat. Set to
falseon co-op or creative servers where combat is not intended. Note that plugins like WorldGuard can control PVP per-region even when this is true globally. - spawn-protection: A radius (in blocks) around the world spawn point where only operators can build or break blocks. Default is 16. Set to
0to disable this entirely, which you will want to do if you are using a plugin like WorldGuard or GriefPrevention to handle spawn protection instead. - enforce-whitelist: When set to
true, players who are not on the whitelist are kicked immediately even if they managed to connect. This is useful if you update the whitelist while the server is running and want non-whitelisted players who are currently online to be removed. See our whitelist setup guide for the full workflow. - white-list: Enables the whitelist feature so only listed players can connect. Pair this with
enforce-whitelist=truefor a fully locked-down server.
Performance Settings
These settings have a direct effect on server performance and should be tuned carefully.
- network-compression-threshold: Packets larger than this many bytes (default 256) are compressed before being sent to players. Lowering this value compresses more data, which reduces bandwidth but increases CPU usage. Raising it or setting it to
-1to disable compression entirely can help on low-latency LAN or local networks where bandwidth is not a concern. - max-tick-time: If a single server tick takes longer than this many milliseconds (default 60000), the server watchdog kills the process and generates a crash report. This is a safety net, not a performance target. If you are consistently hitting this limit, you have a deeper performance problem to solve. See our lag reduction guide for a systematic approach.
A reasonable baseline configuration for a small survival server looks like this:
gamemode=survival
difficulty=normal
max-players=20
view-distance=8
simulation-distance=6
online-mode=true
pvp=true
spawn-protection=0
white-list=false
network-compression-threshold=256
max-tick-time=60000
After Changing Settings: Restart Required
This is the single most common mistake new server owners make: editing server.properties and expecting the changes to be live immediately. They are not. Every setting in this file is read once at startup. To apply any change, you must do a full server stop and start, not just a reload or a plugin restart command.
The only exception is if you are using a plugin that wraps specific settings and provides a reload command for those -- but the underlying Minecraft engine still reads from the file only at boot time. Get into the habit of editing the file and then immediately restarting so you do not forget which changes are pending.
If you are running Paper, some additional performance tuning can be done in paper-global.yml and paper-world-defaults.yml, which expose settings that the base server.properties file does not cover. Those files are also only read at startup.