The server.properties file is the main config of a Minecraft server: it sets the game mode, difficulty, render distance, protection against name spoofing and dozens of other parameters. Getting server.properties explained properly matters for both TPS stability and server security. Below is a breakdown of every key with its default and what's actually worth touching.

What server.properties is and where it lives

It's a plain text file in key=value format — one setting per line, no quotes and no spaces around the equals sign. It lives in the server's root folder, next to server.jar and the world folder. If the file doesn't exist yet, the core creates it automatically on the first launch with default values.

Here are a few lines so you can see what it looks like:

max-players=20
view-distance=10
difficulty=easy
online-mode=true
motd=A Minecraft Server

You can edit the file two ways. The first is directly in the control panel's file manager (on Elysium that's Pterodactyl): you open server.properties, change a value, save. The second is over SFTP with your favourite editor, handy when there are lots of edits or you're transferring the whole config at once. The one rule to remember: the server reads this file only at startup, so after any changes you need a full restart, not a /reload.

Back up before you edit

A typo in level-name or level-type can "lose" your world or kick off generation from scratch. Before any serious changes, make a backup of your server — rolling back takes a minute, while rebuilding a world from nothing is painful.

server.properties: a table of every key setting

Below are the most important keys with their default values and a short explanation. The defaults are for a vanilla Java server on current versions; on Paper and Purpur some of them are duplicated in the core's own configs, but server.properties remains the baseline.

ParameterDefaultWhat it does
max-players20Maximum simultaneous players. The higher the number, the more load on CPU and RAM.
view-distance10Radius of visible chunks (in chunks). Has the biggest effect on traffic and load.
simulation-distance10Radius in which mobs, redstone, growth and physics tick.
online-modetrueAccount verification through Mojang. Protects against logging in under someone else's name.
gamemodesurvivalDefault mode: survival, creative, adventure, spectator.
difficultyeasyDifficulty: peaceful, easy, normal, hard.
pvptrueWhether players can damage each other.
spawn-protection16Spawn protection radius (in blocks) where only operators can build.
white-listfalseOnly let in players from whitelist.json.
enable-command-blockfalseWhether command blocks are allowed.
allow-nethertrueWhether the Nether is accessible.
level-nameworldName of the world folder. Change it and the server looks for / creates a different world.
level-seed(empty)Generation seed. Only matters before the world is first generated.
level-typeminecraft:normalWorld type: normal, flat, large_biomes, amplified.
motdA Minecraft ServerThe description shown in the client's server list.
server-port25565Server port. On a host it's usually assigned automatically.
server-ip(empty)IP to bind to. Empty = listen on all interfaces (the norm).
network-compression-threshold256Packet compression threshold in bytes. -1 disables compression.
enable-rconfalseRemote RCON console. Requires a password.
hardcorefalseHardcore: death drops you into spectator mode, difficulty locked to hard.
allow-flightfalseAllow flight (needed for mods/plugins with levitation).
max-tick-time60000How many ms a tick may last before the watchdog fires (server crash).
player-idle-timeout0Minutes of inactivity before a kick. 0 = disabled.

Which settings affect TPS and load

If the server lags, server.properties is exactly where to start your diagnosis — two or three keys account for most of the CPU load.

view-distance and simulation-distance

These are the main performance "levers." Render distance grows quadratically: at view-distance=10 a grid of roughly 21×21 chunks is held around each player, and at view-distance=16 it's already 33×33. On a server with several active players the difference is enormous.

simulation-distance controls the radius in which the world is actually computed: mobs tick, wheat grows, redstone runs. You can almost always keep it lower than view-distance — the player sees the world far away while the computation load stays only in the nearby zone. A solid starting point for stable 20 TPS:

view-distance=8
simulation-distance=6

spawn-protection and max-players

spawn-protection isn't heavy in itself, but the area around spawn always stays loaded even when no one is there — on small plans those are extra "permanent" chunks. If you don't need spawn protection, set spawn-protection=0. And max-players caps the load: every player drags along their own loaded area, so putting 100 slots on 4 GB of RAM is pointless.

Lag isn't only about the config

Often the real cause of TPS drops is elsewhere: a heavy mod, an entity leak, not enough RAM or a weak single CPU core. We put together a full checklist with the problem parameters to swap in our guide on why your server lags and how to fix it. And if you're not sure how much memory to allocate for your modpack, take a look at our breakdown of how much RAM your server needs.

Security: what you shouldn't disable carelessly

A few keys in server.properties are about security, not gameplay. A mistake here doesn't mean lag — it means a hijacked server.

online-mode=false opens a hole

With online-mode=false the server stops verifying accounts through Mojang. That means anyone can join under any name — including the name of your admin with operator rights. On a standalone public server, keep online-mode=true. A value of false is only justified when the server sits behind a proxy (BungeeCord or Velocity) and the proxy itself handles authentication.

  • white-list=true — the most reliable way to lock down a private server: only names from whitelist.json get in. Add players with the /whitelist add Name command.
  • enable-command-block — keep it false if command blocks aren't actually needed; with build access they can be used to harm the world.
  • server-ip — almost always leave it empty: a non-empty value hard-binds the server to a single interface and often breaks access on a host.
  • enable-rcon and the rcon.password — if you enable the remote console, always set a long password. An RCON port with no password or a weak one is a direct path to someone taking over your server console.

How it ties into setting up and launching the server

You set most server.properties parameters once — during the initial setup. If you're only just spinning up a server, it makes more sense to go straight through our big guide on how to create a Minecraft server: there server.properties is covered in the context of a full install. Your choice of core also affects which settings are even available to you — for example, on Paper and Purpur extra configs with fine-grained optimization appear on top of this file; we covered the differences in our Paper vs Purpur vs Vanilla article.

And once more about discipline: any edit to level-name, level-type or level-seed on an existing world is risky. level-seed and level-type only apply to chunks that haven't been generated yet, while changing level-name simply makes the server open a different (possibly empty) world folder. Before experiments like these — a backup and a rollback plan.

Where to change server.properties on Elysium

On Elysium servers everything is edited from the Pterodactyl panel: the file manager tab → open server.properties right in the browser, edit the lines you need, save and hit Restart. For bulk edits or to transfer a finished config, SFTP works. You almost never need to change server-port and server-ip by hand — the host fills them in for you, and this is exactly the case where it's better not to touch them.

For heavy modpacks with a large view-distance and dozens of slots, one thing matters: a strong single CPU core, because Minecraft parallelizes poorly. Elysium plans run Ryzen 9 with a 5.0+ GHz boost, real DDR5 with no overselling and NVMe Gen4 — so even with generous render settings, saving the world and streaming in chunks won't drop your TPS. You can pick a configuration for your modpack on the build your server page, and compare plans by RAM on the pricing page.