Open up server.properties for the first time and it's a wall of about 60 lines, most of which you'll never touch. The good news is that a normal owner only really needs to understand a handful of them. The rest you can leave at default and never think about again. Here's the short list that actually changes how your server plays and performs, with values that make sense for a typical small to mid size server.
The gameplay basics
These four decide what kind of server you're running, and they're the ones people fiddle with most.
gamemode sets the default mode for players when they join. You've got survival, creative, adventure and spectator. For most servers this is survival. Adventure is handy for map makers because players can't break blocks, only interact with what you allow. If you set this to creative, everyone gets creative on join, which is almost never what you want on a public server.
difficulty goes from peaceful to easy, normal and hard. Peaceful turns off hostile mobs entirely and slowly heals players, which kind of defeats the point of survival. Most owners run normal. Hard adds things like zombies breaking doors and starvation actually killing you, so save it for a group that wants the challenge.
pvp is just true or false. True means players can hurt each other. If you're running a friendly build server or a kid friendly community, set it to false and you'll save yourself a lot of drama. A quick warning: turning pvp off doesn't stop people pushing each other off cliffs or into lava, so it's not a complete shield.
hardcore is the one to be careful with. Set it to true and difficulty is locked to hard, plus a player who dies is banned or set to spectator for that world. It's brutal and it's permanent. Don't flip this on a server people have already built on unless everyone has agreed to it. Honestly, hardcore is better as a fresh, dedicated world than a setting you bolt onto an existing community.
Player count and view settings, the performance stuff
This is where people accidentally tank their own performance, so it's worth slowing down here.
max-players caps how many people can be online at once. The default is 20. Setting it to 100 doesn't magically give you room for 100 players, it just lets 100 people in before your RAM and CPU fall over. Set this to a number your plan can actually handle. As a rough rule, plan for somewhere around 150 to 250 MB of RAM per active player on a vanilla-ish setup, more if you're running heavy plugins or mods.
view-distance is how many chunks out the server sends to each player, measured as a radius. The default is 10. This is one of the biggest levers on server load because the work scales roughly with the square of the number. Going from 10 to 16 isn't 60 percent more work, it's closer to two and a half times the chunks. For most servers view-distance of 8 looks great and runs much lighter. Drop it to 6 if you're tight on resources and barely anyone will notice.
simulation-distance controls how far out the world actually ticks, so mob AI, crop growth, redstone and so on. The default is 10. This one is heavier than view-distance because it's doing real work, not just sending chunks. You can usually set simulation-distance lower than view-distance, something like 6 or 7, and players will still see far into the distance while the server only simulates what's close. That split is one of the easiest free performance wins there is.
| Setting | Default | Lighter value | What it costs you |
|---|---|---|---|
| view-distance | 10 | 8 | Slightly shorter render range |
| simulation-distance | 10 | 6 | Distant mobs and farms idle until you get closer |
| max-players | 20 | set to fit your RAM | Fewer concurrent players |
If your server is lagging and you've not changed much else, drop view-distance and simulation-distance before you do anything fancy. It fixes more problems than people expect.
Who can join and how they're verified
white-list set to true means only names on your whitelist can connect. This is the single best tool for keeping a private server private. You add people with /whitelist add Name in the console or in game. Turn it on before you tell anyone the IP, not after, because griefers don't wait. There's a related setting, enforce-whitelist, that kicks players already online if they're not on the list when you reload it. Useful for cleaning house.
online-mode is the important one and the one people misunderstand. When it's true (the default), the server checks every player against Mojang's authentication servers, so only people with a genuine, paid account matching that username can join. When you set online-mode=false, that check is gone. Anyone can connect using any username, including yours, including an admin's. There's no verification at all.
online-mode false does not mean "free Minecraft for my friends". It means anyone who knows your IP can log in as any name, including OP accounts. Treat it as a security hole, not a feature.
The only real reasons to run online-mode false are if you're behind a proxy like Velocity or BungeeCord that handles authentication for you, or you're deliberately running a cracked server and you understand the risk. If you do turn it off without a proxy, pair it with a plugin like AuthMe so players have to register a password, and keep the whitelist on. Otherwise leave online-mode at true.
Spawn, appearance and world generation
spawn-protection sets a radius around spawn where non-ops can't build or break blocks. The default is 16, which is a 33 by 33 area. That's bigger than people realise and it can block players from using a spawn shop or chest. Set it to 0 if you don't want any protection, or keep a small value like 4 to stop someone instantly griefing the spawn point. Ops ignore it either way.
motd is the message shown in the server list, the line under your server name. You can use color and formatting codes here with the section sign. Nothing technical, but it's free advertising, so write something better than "A Minecraft Server". Keep it short, it gets cut off.
level-seed lets you pick the world seed. Leave it blank for a random world. If you've found a seed you like, paste it in before the world generates for the first time. Changing it later does nothing to chunks that already exist, it only affects new terrain at the edges, which usually looks like an ugly seam.
level-type changes the kind of world. The normal value is minecraft:normal. Other options include minecraft:flat for a superflat world (good for creative or minigames), minecraft:large_biomes, and minecraft:amplified for dramatic mountains. Amplified is genuinely heavy on the server, so don't pick it casually. Like the seed, this needs to be set before the world is first created.
The handful of utility settings worth knowing
enable-command-block defaults to false. If your map or your build team uses command blocks, set it to true. Leave it off on a normal survival server, because a careless command block can do a lot of damage and it's one fewer thing for someone to abuse.
player-idle-timeout kicks players who've done nothing for the set number of minutes. The default is 0, which means never. On a busy server with a full player slot count, setting this to something like 15 or 20 frees up slots from AFK people. On a small private server, just leave it at 0 so nobody gets booted while they're grabbing a coffee.
network-compression-threshold is the one people love to "optimize" and usually get wrong. It's the packet size in bytes above which the server compresses network traffic. Default is 256. If all your players are remote over the internet, leave it alone. The advice to set it to -1 (disable compression) only makes sense when the server and players share a fast local network, like a LAN party, where you'd rather spend bandwidth than CPU. For a hosted public server, the default is correct. Don't touch it unless you have a specific reason and can measure the result.
The ones to leave alone
Plenty of lines in this file exist for the server software to manage, and editing them by hand causes more problems than it solves. A few to keep your hands off:
- server-port is fine at 25565 unless your host tells you otherwise. On a panel like the one at panel.bytte.cloud the port is assigned for you, so don't change it blind.
- server-ip should usually stay blank. Filling it in wrong is a classic reason a server "won't start".
- rcon and query settings can stay off unless you specifically need remote console or server list queries, and if you enable rcon, set a strong password.
- max-world-size, max-tick-time and the generate-structures flag are safe at default for almost everyone.
- If you run Paper or Spigot, remember the deeper tuning lives in
paper.yml,spigot.ymlandbukkit.yml, not here. server.properties is the broad strokes.
One last practical note. The server only reads this file at startup, so any change you make needs a full restart, not a /reload. And before you edit anything, copy the file somewhere safe. It takes ten seconds and it means a typo never costs you more than a paste.
That's the real list. Set gamemode, difficulty, pvp and your whitelist the way your community wants, keep online-mode on unless you genuinely need it off, tune view-distance and simulation-distance to match your hardware, and ignore most of the rest. Get those right and the file basically takes care of itself.



