Pick a preset, tweak any key with a plain-English explanation next to it, and download the exact file. Or paste your current server.properties and see every risky value explained.
CAM_01 · REC Hardware and tooling tuned specifically for Minecraft — not a generic VPS with a wiki page bolted on.
Every server runs in its own isolated container with the RAM and CPU of your plan reserved up front — a busy neighbor can never eat your ticks.
Snapshot your whole world in one click, stored off-server. Creeper took the base? Roll back just as fast.
Try it — hit install. Or see how modpack hosting works.
Console, backups, files, mods, sharing — all where your least technical friend can find them. Invite co-owners as operators or viewers.
Keep up to five saves on a single plan — survival, skyblock, a modded run — each with its own version, mods, and settings. Switch in one click; your join address never changes.
Turn on crossplay (Paper, Fabric, NeoForge) and friends on PC, console, and phone all spawn in the same world.
Minecraft runs your whole world on a single CPU core — per-core speed sets your TPS, not core count. Our Zen 4 Ryzen 7 7700 lands within 5% of AMD's Zen 4 flagship on that core and well ahead of the Zen 3 chips many hosts still sell, with every world on NVMe so chunks load as fast as you fly.
Yes, the newest 9950X is ~15% faster per core — we chart it anyway. Real numbers over marketing.
server.properties is the one plain-text file that configures a Java Edition Minecraft server: game mode, difficulty, slots, whitelist, view distance, ports, MOTD. It sits in the server's root folder next to the server jar, eula.txt and the world/ folder, and the server writes it on the first run with every default filled in. Each line is key=value; lines starting with # are comments. The server reads the file once at startup and writes it back on shutdown, which is why edits only apply after a restart and why editing a running server can lose your change.
On a hosted server you rarely open the file at all: the control panel exposes the same keys as form fields and restarts the server for you. SpawnFort does this for the keys people actually change (gamemode, difficulty, PvP, whitelist, MOTD, view and simulation distance, and more), and the generator above covers the rest if you run your own box. If you are still setting up, start with how to make a Minecraft server.
Of the sixty-odd keys, three groups decide how the server feels. Get these right and the rest can stay at default.
The performance trio. view-distance is how many chunks each player receives in every direction; the cost grows with the square, so 10 means 441 loaded chunks per player and 8 means 289. Set 8. simulation-distance is the radius where the world actually ticks (mobs, crops, redstone); chunks beyond it are visible but frozen. Set 6; it is the single biggest CPU saving in the file and players rarely notice. entity-broadcast-range-percentage controls how far away entities are still sent to clients; 80 trims network traffic and client-side lag around mob farms. If the server already stutters, the lag guide walks through these plus the JVM side, and the RAM calculator tells you whether memory is the real bottleneck.
The security keys. online-mode=true verifies accounts with Mojang; false lets anyone join as anyone, including as your ops. white-list=true plus enforce-whitelist=true keeps a private server private even when the address leaks (see how to whitelist a server). enable-rcon opens unencrypted remote console access protected only by rcon.password; leave it off unless a tool needs it, and never expose the port.
The friends-server starter set. white-list=true, enforce-whitelist=true, difficulty=normal, view-distance=8, simulation-distance=6, spawn-protection=0 (otherwise only ops can build at spawn, which is the most common "why can't I place blocks" question), max-players=10. That is exactly the Friends survival preset above.
Every Java Edition 1.21 key, its default, what it does in one line, and the value we recommend where the default is not the best choice. This table is generated from the same catalog the tool uses, so the two never disagree. Source for defaults: the Minecraft Wiki server.properties page.
| Key | Default | What it does | Recommended |
|---|---|---|---|
level-name | world | Folder name of the world. Change it to start a fresh world without deleting the old one; the server creates the folder if it is missing. | default |
level-seed | (empty) | Seed for a NEW world. Ignored once the world folder exists. Leave empty for a random seed. | default |
level-type | minecraft:normal | World generator for a NEW world. normal is the regular overworld; flat is a superflat build world; amplified is very CPU-heavy to generate. | default |
generator-settings | {} | JSON options for the generator (mainly superflat layers). Leave {} unless you are pasting a superflat preset. | default |
generate-structures | true | Whether villages, strongholds, temples and so on generate in new chunks. false makes a near-empty world. | default |
spawn-protection | 16 | Radius in blocks around spawn that only ops can build in. 0 turns it off. On a friends server it mostly just confuses people who cannot place blocks at spawn. | 0 |
max-world-size | 29999984 | World border radius in blocks. Lower it (e.g. 5000) to keep the world small and backups fast on survival servers. | default |
allow-nether | true | Whether nether portals work. false keeps players in the overworld (and the end). | default |
hardcore | false | Hardcore mode: difficulty is forced to hard and a dead player is banned and becomes a spectator. Cannot be undone per player without the console. | default |
max-players | 20 | Slot count shown in the server list and enforced on join. Set it to what your RAM and CPU actually handle, not a vanity number; ops can still bypass it only with a plugin. | default |
white-list | false | Only players listed in whitelist.json can join. Turn it on for any private server; add people with /whitelist add <name>. | true |
enforce-whitelist | false | When true, players already online are kicked the moment they are removed from the whitelist (otherwise they stay until they log out). | true |
online-mode | true | Verify every player against Mojang's account servers. false lets anyone join under any name, including your admins' names. Only set false behind a proxy like Velocity that does the check for you. | true |
player-idle-timeout | 0 | Minutes of inactivity before a player is kicked. 0 disables it. Useful on public servers to free slots held by AFK players. | default |
enforce-secure-profile | true | Require Mojang-signed chat keys, so chat messages are verified and reportable. Turn off only if a mod or proxy breaks chat signing. | default |
op-permission-level | 4 | Default permission level given by /op. 1 bypasses spawn protection, 2 allows most commands, 3 allows player management (kick/ban), 4 allows /stop and everything else. | default |
function-permission-level | 2 | Permission level datapack functions run with. Raise it only if a datapack needs commands that level 2 cannot run. | default |
gamemode | survival | Game mode new players start in. Existing players keep their mode unless force-gamemode is on. | default |
force-gamemode | false | Put every player back into the default gamemode on each join. Handy for build or minigame servers; annoying on survival with trusted creative ops. | default |
difficulty | easy | peaceful removes hostile mobs and hunger damage; normal is the intended experience; hard adds starvation death, tougher mobs and zombie sieges. | normal |
pvp | true | Whether players can damage each other. Arrows and potions count too. Off is safer for family servers. | default |
spawn-monsters | true | Whether hostile mobs spawn at all (difficulty peaceful already stops them). | default |
spawn-animals | true | Whether passive animals spawn. Turning it off does not remove existing animals. | default |
spawn-npcs | true | Whether villagers spawn. false makes villages empty. | default |
allow-flight | false | Stops the vanilla anti-fly kick ("Flying is not enabled on this server"). Needed for creative servers and for modded servers where jetpacks and elytra-like items trigger false kicks. It does not itself give anyone flight. | default |
enable-command-block | false | Allow command blocks to run. Needed for most adventure maps and redstone contraptions that use them. | default |
hide-online-players | false | Hide the player list from the server-list ping. Privacy option for public servers; players still see each other in Tab. | default |
view-distance | 10 | Chunks sent to each player in every direction. Cost grows with the square of the number: 10 loads 441 chunks per player, 8 loads 289, 6 loads 169. 8 looks fine on most servers; above 10 is where RAM and CPU climb fastest. | 8 |
simulation-distance | 10 | Chunks around each player where mobs, crops and redstone actually tick. The biggest CPU lever in the file: 6 keeps farms and mobs working near players while halving tick work versus 10. Anything above view-distance is wasted. | 6 |
entity-broadcast-range-percentage | 100 | How far away entities are still sent to clients, as a percent of the default. Lowering to 50-80 cuts network traffic and client lag in mob farms and busy spawns. | 80 |
max-tick-time | 60000 | Milliseconds a single tick may take before the watchdog kills the server. -1 disables the watchdog, which modded servers usually need because big world-gen ticks would otherwise crash the server. | default |
pause-when-empty-seconds1.21.2+ | 60 | Seconds after the last player leaves before the server stops ticking the world. -1 keeps ticking (needed if farms must run while nobody is online). | default |
sync-chunk-writes | true | Write chunks to disk synchronously. Safer against corruption on crash; turning it off gives slightly smoother saves on slow disks. Leave on. | default |
network-compression-threshold | 256 | Packets larger than this many bytes are compressed. 256 is a good balance; -1 disables compression (only sensible on a LAN or behind a proxy that compresses). | default |
max-chained-neighbor-updates | 1000000 | Cap on cascading block updates in one tick, a guard against update-suppression and lag machines. -1 removes the cap. Leave the default. | default |
server-port | 25565 | TCP port the server listens on. 25565 is what clients try when no port is given. On a host, the panel assigns it; do not change it there. | default |
server-ip | (empty) | Bind to one specific network interface. Leave EMPTY on almost every setup; a wrong value makes the server unreachable. | default |
motd | A Minecraft Server | Message of the day shown in the server list. Supports § colour codes; the file stores non-ASCII characters as \uXXXX escapes, which this generator writes for you. | default |
enable-query | false | Enable the GameSpy4 query protocol (UDP) that server-list sites use to read player counts and plugins. | default |
query.port | 25565 | UDP port for the query protocol. Usually the same number as server-port. | default |
enable-rcon | false | Enable remote console access over TCP. Anyone with the password has full console control, and RCON is not encrypted. Only enable it if something needs it, and never expose the port publicly. | default |
rcon.port | 25575 | TCP port for RCON. | default |
rcon.password | (empty) | RCON password, stored in plain text. An empty password means RCON will not start; a weak one is a full-console backdoor. Use a long random string and never share the file with it filled in. | default |
enable-status | true | Answer server-list pings. false makes the server show as offline in the list while still accepting joins. | default |
prevent-proxy-connections | false | Kick players whose connecting IP differs from the one Mojang's auth saw, i.e. players behind VPNs/proxies. Also breaks legitimate proxy setups. | default |
rate-limit | 0 | Max packets per second a client may send before being kicked. 0 disables it. Rarely needed; plugins do this better. | default |
accepts-transfers1.20.5+ | false | Allow this server to accept players transferred from another server via the transfer packet. Leave false unless you run a network that uses it. | default |
region-file-compression1.20.5+ | deflate | Compression for world region files. deflate is smallest; lz4 is faster to read and write at the cost of disk space. Keep deflate unless disk I/O is your bottleneck. | default |
log-ips1.20.2+ | true | Write player IP addresses to the console and log files. Set false for privacy if you share logs. | default |
resource-pack | (empty) | Direct download URL of a resource pack clients are offered on join. Must be a direct .zip link. | default |
resource-pack-sha1 | (empty) | SHA-1 hash of the pack file, so clients cache it correctly and re-download when it changes. Lowercase hex. | default |
resource-pack-id1.20.3+ | (empty) | Optional UUID identifying the pack (needed only if you manage several packs). | default |
require-resource-pack | false | Disconnect players who decline the resource pack. | default |
resource-pack-prompt | (empty) | Custom message shown in the resource pack prompt (JSON text component or plain text). | default |
initial-enabled-packs | vanilla | Comma-separated datapacks enabled when a NEW world is created. Add experimental packs here, e.g. vanilla,update_1_21. | default |
initial-disabled-packs | (empty) | Comma-separated datapacks explicitly disabled on world creation. | default |
bug-report-link1.20.2+ | (empty) | URL shown to players in the pause menu's bug-report button. | default |
broadcast-console-to-ops | true | Show ops the output of commands run from the console. | default |
broadcast-rcon-to-ops | true | Show ops the output of commands run over RCON. | default |
use-native-transport | true | Use Linux epoll for networking, which is faster. Ignored on other OSes; leave on. | default |
enable-jmx-monitoring | false | Expose tick timing over JMX for monitoring tools. Off unless you attach a profiler. | default |
text-filtering-config | (empty) | Config for a chat text-filtering service. Empty on almost every server. | default |
text-filtering-version1.21.2+ | 0 | Version of the text-filtering config format. Leave 0. | default |
debug | false | Extra debug logging. Off. | default |
Bedrock Dedicated Server (BDS) also uses a server.properties file, but the keys are different: the server list name is server-name (no MOTD colour codes), the whitelist is allow-list, the default port is UDP 19132, ticking radius is tick-distance, and commands are gated by allow-cheats. The generator above is Java-only for now; the most common BDS keys are below for reference.
| Bedrock key | Default | What it does |
|---|---|---|
server-name | Dedicated Server | Name shown in the server list (the Bedrock equivalent of motd). |
gamemode | survival | Default game mode: survival, creative or adventure. |
difficulty | easy | peaceful, easy, normal or hard. |
allow-cheats | false | Whether commands (cheats) are allowed. Needed for most admin commands. |
max-players | 10 | Slot count. |
online-mode | true | Require Xbox Live authentication. Same security rule as Java: keep true. |
allow-list | false | Only players in allowlist.json can join (Bedrock's whitelist). |
server-port | 19132 | IPv4 UDP port. 19132 is what clients try by default. |
server-portv6 | 19133 | IPv6 UDP port. |
view-distance | 32 | Max chunks sent to clients; clients still cap it by their own setting. 10-16 is plenty on a hosted server. |
tick-distance | 4 | Chunks around players that tick (4-12). Bedrock's simulation-distance. |
player-idle-timeout | 30 | Minutes before an idle player is kicked; 0 disables. |
max-threads | 8 | Max threads the server uses; 0 means as many as possible. |
level-name | Bedrock level | World folder name under worlds/. |
level-seed | (empty) | Seed for a new world. |
default-player-permission-level | member | visitor, member or operator for new players. |
texturepack-required | false | Force clients to accept the server's resource packs. |
motd="My server" shows the quotes in the server list. Java properties are never quoted: motd=My server.§ colour code) must be escaped: the server writes § as § and minecraft:normal as minecraft\:normal. The generator and the MOTD generator do this for you.level-name too (or delete the old world).In the server's root folder, next to the server .jar (the same folder as eula.txt, logs/ and the world/ folder). The server creates it on first start; if you do not see it, run the server once. On a hosted server it is in the file manager at the top level, and most panels (SpawnFort included) also expose the same keys as settings fields so you never have to open it.
8 for most servers. Loaded chunks grow with the square of the value: 10 loads 441 chunks per player, 8 loads 289, 6 loads 169. Players barely notice the drop from 10 to 8, but the server saves about a third of chunk memory and generation work. Go to 6 on heavy modpacks or very small plans; above 10 is where RAM and CPU climb fastest.
online-mode=true makes the server verify every joining player against Mojang's account servers, so a player is who their name says. online-mode=false skips that check: cracked clients can join, but so can anyone using your name or an op's name. Keep it true. The only legitimate reason for false is running behind a proxy like Velocity that does the verification itself, with the server port firewalled to the proxy.
Set white-list=true (and enforce-whitelist=true so removed players are kicked immediately), restart, then add people from the console with /whitelist add <username>. The names are stored in whitelist.json next to server.properties. Since 1.7.6 the file stores UUIDs too, so renamed players stay whitelisted.
Yes. The file is read once at startup; edits while the server runs are ignored until the next restart, and the server rewrites the file on shutdown, which can overwrite your edit. Stop the server, edit, start. The exceptions are values that have a matching command (for example /difficulty, /gamerule, /whitelist), which apply live.
The radius in chunks around each player where the world actually ticks: mobs move, crops grow, redstone runs, furnaces smelt. Chunks between simulation-distance and view-distance are sent to players but frozen. It is the biggest CPU lever in the file; 6 keeps farms working near players while roughly halving tick work versus the default 10.
Pick a plan, deploy in one click, and invite the whole Discord tonight.
Exactly what a fresh 1.21 server generates. Use it as the baseline to diff against, or pick a preset to start from sane values.
Paste or upload your current file. It loads into the form below, unknown keys are listed here, and every risky value shows up in the findings on the right (judged against the preset you picked above, so choose the one that matches what the server is for).
Folder name of the world. Change it to start a fresh world without deleting the old one; the server creates the folder if it is missing.
default world
Seed for a NEW world. Ignored once the world folder exists. Leave empty for a random seed.
default (empty)
World generator for a NEW world. normal is the regular overworld; flat is a superflat build world; amplified is very CPU-heavy to generate.
default minecraft:normal
JSON options for the generator (mainly superflat layers). Leave {} unless you are pasting a superflat preset.
default {}
Whether villages, strongholds, temples and so on generate in new chunks. false makes a near-empty world.
default true
Radius in blocks around spawn that only ops can build in. 0 turns it off. On a friends server it mostly just confuses people who cannot place blocks at spawn.
default 16 · recommended 0
World border radius in blocks. Lower it (e.g. 5000) to keep the world small and backups fast on survival servers.
default 29999984
Whether nether portals work. false keeps players in the overworld (and the end).
default true
Hardcore mode: difficulty is forced to hard and a dead player is banned and becomes a spectator. Cannot be undone per player without the console.
default false
Slot count shown in the server list and enforced on join. Set it to what your RAM and CPU actually handle, not a vanity number; ops can still bypass it only with a plugin.
default 20
Only players listed in whitelist.json can join. Turn it on for any private server; add people with /whitelist add <name>.
default false · recommended true
When true, players already online are kicked the moment they are removed from the whitelist (otherwise they stay until they log out).
default false · recommended true
Verify every player against Mojang's account servers. false lets anyone join under any name, including your admins' names. Only set false behind a proxy like Velocity that does the check for you.
default true · recommended true
Minutes of inactivity before a player is kicked. 0 disables it. Useful on public servers to free slots held by AFK players.
default 0
Require Mojang-signed chat keys, so chat messages are verified and reportable. Turn off only if a mod or proxy breaks chat signing.
default true
Default permission level given by /op. 1 bypasses spawn protection, 2 allows most commands, 3 allows player management (kick/ban), 4 allows /stop and everything else.
default 4
Permission level datapack functions run with. Raise it only if a datapack needs commands that level 2 cannot run.
default 2
Game mode new players start in. Existing players keep their mode unless force-gamemode is on.
default survival
Put every player back into the default gamemode on each join. Handy for build or minigame servers; annoying on survival with trusted creative ops.
default false
peaceful removes hostile mobs and hunger damage; normal is the intended experience; hard adds starvation death, tougher mobs and zombie sieges.
default easy · recommended normal
Whether players can damage each other. Arrows and potions count too. Off is safer for family servers.
default true
Whether hostile mobs spawn at all (difficulty peaceful already stops them).
default true
Whether passive animals spawn. Turning it off does not remove existing animals.
default true
Whether villagers spawn. false makes villages empty.
default true
Stops the vanilla anti-fly kick ("Flying is not enabled on this server"). Needed for creative servers and for modded servers where jetpacks and elytra-like items trigger false kicks. It does not itself give anyone flight.
default false
Allow command blocks to run. Needed for most adventure maps and redstone contraptions that use them.
default false
Hide the player list from the server-list ping. Privacy option for public servers; players still see each other in Tab.
default false
Chunks sent to each player in every direction. Cost grows with the square of the number: 10 loads 441 chunks per player, 8 loads 289, 6 loads 169. 8 looks fine on most servers; above 10 is where RAM and CPU climb fastest.
default 10 · recommended 8
Chunks around each player where mobs, crops and redstone actually tick. The biggest CPU lever in the file: 6 keeps farms and mobs working near players while halving tick work versus 10. Anything above view-distance is wasted.
default 10 · recommended 6
How far away entities are still sent to clients, as a percent of the default. Lowering to 50-80 cuts network traffic and client lag in mob farms and busy spawns.
default 100 · recommended 80
Milliseconds a single tick may take before the watchdog kills the server. -1 disables the watchdog, which modded servers usually need because big world-gen ticks would otherwise crash the server.
default 60000
Seconds after the last player leaves before the server stops ticking the world. -1 keeps ticking (needed if farms must run while nobody is online).
default 60
Write chunks to disk synchronously. Safer against corruption on crash; turning it off gives slightly smoother saves on slow disks. Leave on.
default true
Packets larger than this many bytes are compressed. 256 is a good balance; -1 disables compression (only sensible on a LAN or behind a proxy that compresses).
default 256
Cap on cascading block updates in one tick, a guard against update-suppression and lag machines. -1 removes the cap. Leave the default.
default 1000000
TCP port the server listens on. 25565 is what clients try when no port is given. On a host, the panel assigns it; do not change it there.
default 25565
Bind to one specific network interface. Leave EMPTY on almost every setup; a wrong value makes the server unreachable.
default (empty)
Message of the day shown in the server list. Supports § colour codes; the file stores non-ASCII characters as \uXXXX escapes, which this generator writes for you.
default A Minecraft Server
Enable the GameSpy4 query protocol (UDP) that server-list sites use to read player counts and plugins.
default false
UDP port for the query protocol. Usually the same number as server-port.
default 25565
Enable remote console access over TCP. Anyone with the password has full console control, and RCON is not encrypted. Only enable it if something needs it, and never expose the port publicly.
default false
TCP port for RCON.
default 25575
RCON password, stored in plain text. An empty password means RCON will not start; a weak one is a full-console backdoor. Use a long random string and never share the file with it filled in.Stored in plain text. Use a long random value and never share this file with it filled in.
default (empty)
Answer server-list pings. false makes the server show as offline in the list while still accepting joins.
default true
Kick players whose connecting IP differs from the one Mojang's auth saw, i.e. players behind VPNs/proxies. Also breaks legitimate proxy setups.
default false
Max packets per second a client may send before being kicked. 0 disables it. Rarely needed; plugins do this better.
default 0
Allow this server to accept players transferred from another server via the transfer packet. Leave false unless you run a network that uses it.
default false
Compression for world region files. deflate is smallest; lz4 is faster to read and write at the cost of disk space. Keep deflate unless disk I/O is your bottleneck.
default deflate
Write player IP addresses to the console and log files. Set false for privacy if you share logs.
default true
Direct download URL of a resource pack clients are offered on join. Must be a direct .zip link.
default (empty)
SHA-1 hash of the pack file, so clients cache it correctly and re-download when it changes. Lowercase hex.
default (empty)
Optional UUID identifying the pack (needed only if you manage several packs).
default (empty)
Disconnect players who decline the resource pack.
default false
Custom message shown in the resource pack prompt (JSON text component or plain text).
default (empty)
Comma-separated datapacks enabled when a NEW world is created. Add experimental packs here, e.g. vanilla,update_1_21.
default vanilla
Comma-separated datapacks explicitly disabled on world creation.
default (empty)
URL shown to players in the pause menu's bug-report button.
default (empty)
Show ops the output of commands run from the console.
default true
Show ops the output of commands run over RCON.
default true
Use Linux epoll for networking, which is faster. Ignored on other OSes; leave on.
default true
Expose tick timing over JMX for monitoring tools. Off unless you attach a profiler.
default false
Config for a chat text-filtering service. Empty on almost every server.
default (empty)
Version of the text-filtering config format. Leave 0.
default 0
Extra debug logging. Off.
default false
#Minecraft server properties
#Generated with the SpawnFort server.properties generator (Java Edition 1.21)
accepts-transfers=false
allow-flight=false
allow-nether=true
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
debug=false
difficulty=easy
enable-command-block=false
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=true
enforce-whitelist=false
entity-broadcast-range-percentage=100
force-gamemode=false
function-permission-level=2
gamemode=survival
generate-structures=true
generator-settings={}
hardcore=false
hide-online-players=false
initial-disabled-packs=
initial-enabled-packs=vanilla
level-name=world
level-seed=
level-type=minecraft\:normal
log-ips=true
max-chained-neighbor-updates=1000000
max-players=20
max-tick-time=60000
max-world-size=29999984
motd=A Minecraft Server
network-compression-threshold=256
online-mode=true
op-permission-level=4
pause-when-empty-seconds=60
player-idle-timeout=0
prevent-proxy-connections=false
pvp=true
query.port=25565
rate-limit=0
rcon.password=
rcon.port=25575
region-file-compression=deflate
require-resource-pack=false
resource-pack=
resource-pack-id=
resource-pack-prompt=
resource-pack-sha1=
server-ip=
server-port=25565
simulation-distance=10
spawn-animals=true
spawn-monsters=true
spawn-npcs=true
spawn-protection=16
sync-chunk-writes=true
text-filtering-config=
text-filtering-version=0
use-native-transport=true
view-distance=10
white-list=false
No risky values. This file is safe to use as-is.
On SpawnFort these are settings fields in the dashboard: difficulty, gamemode, whitelist, view and simulation distance, MOTD, PvP and more. The server is live in about 30 seconds, free for 2 days, no card.
Apply these on SpawnFort