Your Minecraft server runs fine. Players connect, blocks break, mobs spawn. But something feels slightly off. Maybe the render distance is too short. Maybe PvP is enabled when you wanted a peaceful build server. Maybe new players keep spawning inside your protected hub and suffocating in walls.
All of these problems — and dozens more — trace back to a single text file called server.properties. It controls everything from how far players can see to whether the server even checks if accounts are legitimate.
This guide walks through every setting you can change in server.properties, explains what each one actually does, and gives you concrete recommendations for survival SMPs, creative servers, and minigames networks.
Where to Find server.properties
The file sits in your server's root directory — the same folder that contains your world folder and server jar file.
On Swelis, you have two ways to access it:
-
File Manager — open your server's dashboard, click the Files tab, and you will see
server.propertiesin the root. Click to edit directly in your browser. -
FTP — connect with any FTP client using the credentials from your dashboard. The file is right at the top level.
If the file does not exist yet, start your server once. Minecraft generates server.properties on first boot with default values.
After editing, you must restart the server for changes to take effect. A reload will not pick up server.properties changes — only a full stop and start will.
Core Gameplay Settings
These settings shape the fundamental experience of your server.
difficulty
Controls how hard the game is for players.
| Value | Name | Effect |
|---|---|---|
| peaceful | Peaceful | No hostile mobs spawn. Hunger does not deplete. |
| easy | Easy | Hostile mobs deal less damage. Hunger depletes slowly. |
| normal | Normal | Standard damage and hunger rates. |
| hard | Hard | Hostile mobs deal more damage. Hunger can kill you. Zombies can break doors. |
You can use either the word (peaceful) or the number (0). For most survival servers, normal is the sweet spot — challenging enough to matter, forgiving enough that death does not feel punishing.
pvp
pvp=true
When true, players can damage each other. When false, players are invincible to other players' attacks — but they can still be pushed, burned by lava placed by others, and killed through indirect means.
Set this to false for cooperative build servers or roleplay servers where PvP should happen in designated arenas (handled by plugins) rather than everywhere.
gamemode
gamemode=survival
The default gamemode for new players joining the server. Options are survival, creative, adventure, and spectator.
This only affects new players. Existing players keep whatever gamemode they had when they last logged out — unless you also set force-gamemode.
force-gamemode
force-gamemode=false
When true, players are reset to the default gamemode every time they join. Useful for minigames servers where everyone should start in adventure mode regardless of what happened in their last session.
spawn-protection
spawn-protection=16
The radius (in blocks) around the world spawn point where only operators can place or break blocks. Set to 0 to disable entirely.
This is a blunt instrument. For anything more sophisticated — protected regions, land claims, per-player plots — you need a plugin like WorldGuard or GriefPrevention. But for small servers, spawn protection keeps griefers from wrecking your spawn hub without adding plugin complexity.
hardcore
hardcore=false
When true, players who die are permanently banned from the server. The world also locks to hard difficulty.
Hardcore is brutal and probably not what you want for a community server. If a player dies to a creeper on day one, they are done forever unless you manually unban them.
allow-flight
allow-flight=false
When false, players who appear to be flying (sustained time off the ground without a supported reason) get kicked with "Flying is not enabled on this server."
This setting is mostly about anti-cheat. If you run any plugins that let players fly — creative mode, /fly commands, custom abilities — you need to set this to true or your players will constantly get kicked.
spawn-npcs
spawn-npcs=true
Controls whether villagers spawn naturally. Set to false if you are building a villager-free world or want to place villagers only through commands.
spawn-animals
spawn-animals=true
Controls whether passive mobs (pigs, cows, sheep, chickens) spawn naturally. Usually leave this on, but turn it off for void worlds or minigames maps.
spawn-monsters
spawn-monsters=true
Controls whether hostile mobs spawn. Setting this to false is different from peaceful difficulty — the game still runs as if hostiles exist, they just do not spawn. Useful for custom maps where you spawn mobs via commands.
Performance Settings
These settings directly impact server performance and player experience. If you are dealing with lag, start here — and check our complete lag troubleshooting guide for deeper diagnosis.
view-distance
view-distance=10
How many chunks around each player the server sends to the client. Higher values mean players see farther, but the server loads more chunks per player.
The default of 10 is reasonable for small servers. For busy survival servers with 20+ concurrent players, drop to 8 or even 6. For creative building servers where players need to see their massive builds, consider 12-16 if your hardware handles it.
View distance is one of the biggest performance levers you have. Each additional chunk is not linear — going from 10 to 12 roughly doubles the loaded chunks because it is calculated as a square.
simulation-distance
simulation-distance=10
How many chunks around each player are actually simulated (mobs move, redstone ticks, crops grow). Chunks beyond simulation distance are loaded but frozen.
This setting was added in 1.18 and is one of the best performance tuning options available. You can set view-distance high (so players see far) while keeping simulation-distance lower (so the server only simulates nearby chunks).
A common configuration: view-distance=10 with simulation-distance=6. Players get decent render distance, but the server only runs game logic for nearby chunks. See our mob spawning guide for how simulation distance affects entity buildup.
max-players
max-players=20
The hard cap on concurrent players. Players beyond this number see "Server is full" when they try to connect.
Set this based on your actual expected player count plus some headroom. There is no performance cost to setting it higher than you need — the server does not allocate resources for empty slots.
entity-broadcast-range-percentage
entity-broadcast-range-percentage=100
Percentage of the default range at which entities are sent to clients. At 100%, a player sees entities up to their full view distance. At 50%, entities only render at half that distance.
Lowering this reduces network traffic and client rendering load. Useful for minigames servers with lots of players in one area. For survival servers, leave at 100% — players get frustrated when mobs "pop in" too close.
max-tick-time
max-tick-time=60000
If a single server tick takes longer than this (in milliseconds), the server crashes with "Can't keep up!" The default of 60000 (60 seconds) is generous.
Set to -1 to disable the watchdog entirely. Only do this if you understand why ticks might lag — a plugin doing heavy computation, a massive redstone build, or a world-eating entity count. Usually, you want the watchdog to crash the server so you notice the problem instead of letting it hang silently.
Network and Security Settings
These settings control how players connect and how much you trust them.
server-port
server-port=25565
The TCP port the server listens on. The default is 25565 — if your server runs on this port, players can connect without specifying a port number.
On managed hosting, the platform assigns your port automatically and you do not need to change this. If you self-host and run multiple servers on one machine, each needs a unique port.
online-mode
online-mode=true
When true, the server verifies each connecting player against Mojang's authentication servers. Only players who own a legitimate Minecraft account can join.
When false, anyone can connect with any username. This is sometimes called "cracked" or "offline" mode.
Keep this on. Turning it off opens you to impersonation (anyone can join as "Notch" or as one of your admins), breaks skins and capes, and violates Mojang's EULA. The only legitimate use case is LAN-only servers with no internet access.
white-list
white-list=false
When true, only players listed in whitelist.json can join. Everyone else sees "You are not white-listed on this server."
For small friend groups, whitelist is the simplest access control. See our whitelist guide for commands and management.
enforce-whitelist
enforce-whitelist=false
When true and you run /whitelist on or edit the whitelist, players who are no longer whitelisted get kicked immediately. When false, existing connected players stay online until they log out.
enable-query
enable-query=false
Enables the GameSpy4 query protocol. Server listing websites and tools like mcstatus use this to display your server's player count, MOTD, and other info.
If you want your server to appear on third-party server lists or status checkers, enable this. If you want privacy, leave it off. Query runs on UDP and uses query.port (default 25565).
enable-rcon
enable-rcon=false
RCON (Remote Console) lets you send console commands to the server from external tools. Useful for automation, external admin panels, or scripts.
If you enable this, set a strong password:
enable-rcon=true
rcon.port=25575
rcon.password=your-long-random-password-here
RCON has full console access. A weak password means anyone who finds your RCON port can /op themselves, delete your world, or run any command. Check our console commands reference for what RCON can do.
enable-status
enable-status=true
When true, clients can see server info (MOTD, player count, version) in the multiplayer menu before joining. Set to false to hide this — players will see a generic "Can't connect to server" until they actually try to join.
Hiding status is a minor privacy measure. It does not hide your server from port scanners, just from the Minecraft client's server list query.
network-compression-threshold
network-compression-threshold=256
Packets larger than this (in bytes) get compressed before sending. Set to -1 to disable compression entirely, or 0 to compress everything.
The default of 256 is fine. Lower values increase CPU usage for compression but reduce bandwidth. Higher values reduce CPU but increase bandwidth. Unless you have specific network constraints, do not touch this.
World Generation Settings
These settings matter most when creating a new world. Changing them after the world exists only affects newly generated chunks.
level-name
level-name=world
The name of the world folder. If you want your world folder to be called survival-smp instead of world, change this — but you will also need to rename (or copy) your existing world folder to match.
level-seed
level-seed=
The seed for world generation. Leave blank for a random seed, or enter a specific number or string to generate a specific world.
If you already have a world, changing this does nothing to existing chunks. New chunks will generate with the new seed, creating jarring borders where biomes and terrain do not match.
level-type
level-type=minecraft\:normal
The world type. Options:
| Value | Result |
|---|---|
minecraft:normal | Standard overworld generation |
minecraft:flat | Superflat world |
minecraft:large_biomes | Same as normal but biomes are 16x larger |
minecraft:amplified | Extreme terrain height variation |
minecraft:single_biome_surface | Entire overworld is one biome |
Note the backslash before the colon — server.properties uses this escaping.
generator-settings
generator-settings={}
JSON configuration for flat worlds. Only applies when level-type=minecraft:flat. The default empty braces give you a classic flat world (grass, dirt, bedrock).
Example for a void world (just one layer of bedrock):
generator-settings={"layers":[{"block":"bedrock","height":1}],"biome":"minecraft:the_void"}
generate-structures
generate-structures=true
Whether villages, temples, mineshafts, strongholds, and other structures generate. Set to false for custom maps where you place everything manually.
max-world-size
max-world-size=29999984
The radius of the world border in blocks. Default is nearly infinite (30 million blocks from spawn). You can set this lower to constrain your world — useful for minigames or to keep world size manageable.
MOTD and Server Appearance
motd
motd=A Minecraft Server
The message displayed in the server list. Supports color codes with the section sign (§) or through online MOTD generators.
Keep it short. Most clients truncate after about 60 characters per line, and you get two lines max.
server-ip
server-ip=
If your machine has multiple IP addresses and you want the server to only listen on one specific IP, enter it here. Leave blank to listen on all interfaces (usually what you want).
Quick Reference
Here are recommended values for three common server types:
| Setting | Survival SMP | Creative Build | Minigames |
|---|---|---|---|
| difficulty | normal | peaceful | easy |
| pvp | true | false | true |
| gamemode | survival | creative | adventure |
| force-gamemode | false | false | true |
| spawn-protection | 16 | 0 | 0 |
| view-distance | 8 | 12 | 6 |
| simulation-distance | 6 | 10 | 4 |
| max-players | 50 | 30 | 100 |
| white-list | true | true | false |
| online-mode | true | true | true |
| spawn-monsters | true | false | false |
| spawn-animals | true | true | false |
| allow-flight | false | true | true |
| hardcore | false | false | false |
Adjust based on your hardware and player count. These are starting points, not absolute rules.
Related Guides
-
Minecraft Server Console Commands Cheat Sheet — every command you can run from the console, including the ones that complement these settings.
-
How to Fix Minecraft Server Lag — when changing view-distance and simulation-distance is not enough, this guide covers deeper causes.
-
Minecraft Server Hosting 101 — if you are just getting started, this covers the fundamentals before diving into configuration.
-
How Much RAM Does Your Minecraft Server Need? — server.properties controls behavior, but RAM determines how much your server can handle.
-
How to Control Mob Spawning and Entity Lag — simulation distance is just one piece of the entity puzzle.
-
Whitelist Your Minecraft Server — the full guide to player access control beyond what server.properties offers.
