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.
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.
| Parameter | Default | What it does |
|---|---|---|
max-players | 20 | Maximum simultaneous players. The higher the number, the more load on CPU and RAM. |
view-distance | 10 | Radius of visible chunks (in chunks). Has the biggest effect on traffic and load. |
simulation-distance | 10 | Radius in which mobs, redstone, growth and physics tick. |
online-mode | true | Account verification through Mojang. Protects against logging in under someone else's name. |
gamemode | survival | Default mode: survival, creative, adventure, spectator. |
difficulty | easy | Difficulty: peaceful, easy, normal, hard. |
pvp | true | Whether players can damage each other. |
spawn-protection | 16 | Spawn protection radius (in blocks) where only operators can build. |
white-list | false | Only let in players from whitelist.json. |
enable-command-block | false | Whether command blocks are allowed. |
allow-nether | true | Whether the Nether is accessible. |
level-name | world | Name 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-type | minecraft:normal | World type: normal, flat, large_biomes, amplified. |
motd | A Minecraft Server | The description shown in the client's server list. |
server-port | 25565 | Server 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-threshold | 256 | Packet compression threshold in bytes. -1 disables compression. |
enable-rcon | false | Remote RCON console. Requires a password. |
hardcore | false | Hardcore: death drops you into spectator mode, difficulty locked to hard. |
allow-flight | false | Allow flight (needed for mods/plugins with levitation). |
max-tick-time | 60000 | How many ms a tick may last before the watchdog fires (server crash). |
player-idle-timeout | 0 | Minutes 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.
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.
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 fromwhitelist.jsonget in. Add players with the/whitelist add Namecommand.enable-command-block— keep itfalseif 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-rconand thercon.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.