Minecraft server.properties: reference and generator
server.properties is the plain text file where a Minecraft Java server keeps its settings. It sits in the folder the server runs from, is created the first time the server starts, and a change only counts after a restart. Below are all 69 keys of the 26.3 default file, then a generator with presets for a small friends server. One thing changed in 26.3: white-list is now true by default, so a brand new server turns away everyone who is not on the list.
Java Edition 26.3. Key list and defaults MEASURED from the official 26.3 server file on 4 October 2026; types and ranges VERIFIED FROM SECONDARY SOURCE (community wiki) or INFERRED. Not Bedrock.
What the file is and how to change it
The file is called server.properties and lives in the folder the server is started from, next to the world folder. A fresh server writes it the first time it starts. Each line is a key, an equals sign and a value, and a line starting with # is a comment.
Stop the server, edit the file in a plain text editor, save it and start the server again: the file is only read at start. The server then rewrites the file, so your comments are lost and a missing or invalid value is put back to its default (wiki, secondary source). So a typo is usually undone without a clear message (INFERRED).
This page is about Java Edition. Bedrock Edition has a different file with different keys.
What changed in 26.3
white-list is true by default. MEASURED: the default file of the official 26.3 server has white-list=true. A new server therefore rejects every player who is not on the whitelist, and operators are let in automatically (wiki, secondary source). To let your friends in, add them to the list: see our guide to whitelist, op and ban commands.
All 69 keys
The default is copied from the official file. The type and the allowed values come from the community wiki (a secondary source) or are inferred: where neither is stated we write “not stated”. The explanations are ours. “For a friends server” notes are our advice, not Mojang’s. With JavaScript off, the whole list is shown.
Tags: “wiki” means the type and range were checked on the community wiki; “inferred” means we reasoned them out and did not find them stated. “Before world creation” means the key matters when the world is created, not afterwards.
Showing 69 of 69 keys
accepts-transfersLets other servers send players to yours with the game’s transfer feature. When off, a player who arrives by transfer is disconnected.
For a friends server. Leave it off unless you run several servers that hand players to each other.
allow-flightStops the server from kicking survival-mode players who seem to be flying. It only matters when someone uses a mod that adds flight; flying in creative mode is not affected.
For a friends server. Turn it on only if your group uses a flight mod. It also makes cheating easier.
broadcast-console-to-opsSends the result of commands typed in the server console to every operator who is online.
broadcast-rcon-to-opsSends the result of commands run through remote console (rcon) to every operator who is online.
bug-report-linkA web address the server offers players as a “report a bug” link. Nothing is sent when it is empty.
chat-spam-threshold-secondsTuning value for the automatic kick of players who send too many chat messages (added in 26.2). Setting it to 0 turns that kick off. We have not tested how the counter works, so we do not explain it further.
For a friends server. If a friend is kicked for chatting fast, this is the setting to look at.
command-spam-threshold-secondsTuning value for the automatic kick of players who send too many commands (added in 26.2). Setting it to 0 turns that kick off. We have not tested how the counter works, so we do not explain it further.
difficultyThe world’s difficulty: how hard mobs hit and how hunger and poison affect players. The old digits 0 to 3 are still accepted and converted to names.
For a friends server. Our survival presets use normal; easy is the file default and suits a group of newcomers. This is our recommendation, not a Mojang statement.
enable-code-of-conductWhen on, the server looks for rules text files in a codeofconduct folder next to the file and shows players the one that matches their language.
enable-jmx-monitoringExposes the server’s tick timings to Java monitoring tools. It also needs extra Java launch options, so on its own it does nothing visible.
For a friends server. A friends server almost never needs it.
enable-queryTurns on the query protocol, which lets outside tools ask the server for basic information over UDP.
For a friends server. Leave it off unless a status or map tool asks for it.
enable-rconTurns on remote console: sending commands to the server over the network with a password. The wiki warns that it is not encrypted, so the password can be read on an untrusted network.
For a friends server. Leave it off. If you turn it on, set a strong rcon.password and do not open the rcon port to the internet.
enable-statusWhen off, the server shows as offline in the in-game server list but still accepts connections.
For a friends server. Leave it on so your friends see the server and its player count in their list.
enforce-secure-profileOnly lets in players whose chat is signed with a key from Mojang. Turned off, chat is no longer signed, so messages cannot be reported, and the game warns players about this as they join.
For a friends server. Leave it on.
enforce-whitelistDecides what happens to players who are already online when you take them off the whitelist: on, they are disconnected when the list is reloaded; off, they can keep playing until they leave. It only matters while white-list is true.
For a friends server. Turning it on means removing a friend from the whitelist also removes them if they are online. See the whitelist guide.
entity-broadcast-range-percentageScales the distance at which mobs, animals and dropped items are sent to a player: 100 is normal, 50 half as far. More distance means more to send.
For a friends server. Keep 100 unless the machine struggles; a lower value is a gentle way to cut load.
force-gamemodeWhen on, every player joins in the server’s default game mode. When off, they come back in the mode they left in.
For a friends server. Turn it on for a creative or build server so nobody stays in the wrong mode.
function-permission-levelThe default permission level given to data pack functions (command scripts). See the permission level table for what each level allows.
gamemodeThe game mode new players start in. The old digits 0 to 3 are still accepted and converted to names.
generate-structuresOn: new chunks get villages and other structures. Off: new chunks are generated without most of them. Chunks that already exist keep what they have.
For a friends server. Decide before the world is created.
generator-settingsExtra world-generation options written as JSON. What it means depends on level-type, for example the layers of a flat world. Leave {} for a normal world.
hardcoreCreates new worlds in hardcore mode. It applies to worlds created after the change, not to an existing one. (INFERRED: the wiki only says “created worlds”.)
For a friends server. Decide before the world is created.
hide-online-playersStops the server from sending the list of online players when the game asks for the server’s status.
For a friends server. A small privacy gain: someone who finds your address cannot read your friends’ names from the list.
initial-disabled-packsData packs that should not be switched on automatically when the world is created. Comma-separated.
initial-enabled-packsData packs switched on when the world is created. Comma-separated. Experimental feature packs must be listed here to be used.
level-nameThe world’s name and its folder. If the folder holds a valid world, it is loaded; otherwise a new world is created there.
For a friends server. If you change it and restart, the server loads the folder with the new name, or creates a new world there if it holds none. Your old world folder stays on disk but is no longer loaded.
level-seedThe seed used to generate the world. A random seed is used when it is blank.
For a friends server. Set it before the first start if you want a specific map; it does not reshape a world that already exists (INFERRED).
level-typeThe kind of world to generate. The minecraft: prefix may be left out. Other values can come from data packs, so an unlisted value is a warning here, not an error. (INFERRED from the wiki’s note that level-type takes a world preset id since 1.19.)
log-ipsWhether player IP addresses are written to the console and the log file.
For a friends server. Turn it off if you ever share your logs.
management-server-allowed-originsA comma-separated list of web origins allowed to use the management interface. The wiki’s page on the management protocol says requests whose Origin header is not in the list are refused, and that with an empty list no client can connect. Leave it empty unless a browser-based tool needs it.
management-server-enabledTurns on the server management interface (the Minecraft Server Management Protocol), a network interface that tools can use to control the server. Off by default.
For a friends server. Leave it off unless a tool you use needs it.
management-server-hostThe address the management interface listens on.
management-server-portThe port the management interface listens on. The default changed from 25585 to 0 in a 2025 development version (25w37a). The wiki’s management protocol page says 0 means a random port is chosen at start.
management-server-secretThe secret that tools send to use the management interface. The server generates one when the value is empty, so each server has its own. Never publish it.
management-server-tls-enabledWhether the management interface uses an encrypted connection (TLS).
management-server-tls-keystorePath to the keystore file used for TLS. The wiki says the server will not start if TLS is enabled and no keystore is given.
management-server-tls-keystore-passwordPassword for the keystore file. The wiki says it can also come from an environment variable or a Java option. Treat it as a secret.
max-chained-neighbor-updatesThe number of block updates in a chain that are processed before the rest of the chain is skipped. A negative value removes the limit.
For a friends server. Leave the default.
max-playersThe most players that can be online at the same time.
For a friends server. Set it to your group size plus a spare place or two. It is a limit, not a reservation: what the server needs depends on who is actually online (INFERRED). See the RAM calculator.
max-tick-timeA watchdog: if a single game tick takes longer than this many milliseconds, the server stops itself as if it had crashed. -1 turns the watchdog off.
For a friends server. Leave the default. With -1, a frozen server stays frozen instead of stopping (INFERRED).
max-world-sizeThe largest distance, in blocks from the centre of the world, at which the world border can be placed. Lowering it caps how far the border can go.
motdThe message shown under the server name in the multiplayer list. Colour and formatting codes work. The wiki says a message over about 59 characters may cause a communication error in the list.
For a friends server. Keep it short; it is the first thing your friends read.
network-compression-thresholdPackets of at least this many bytes are compressed before being sent. -1 turns compression off; 0 compresses everything.
For a friends server. Leave the default.
online-modeChecks every joining player against Mojang’s account service. When off, the server does not verify anyone: a person can connect under any name, so someone could pretend to be you or an operator (INFERRED from the wiki’s warning about fake accounts).
For a friends server. Keep it true. We never recommend false for a server that can be reached from the internet.
op-permission-levelThe permission level given to a player when you make them an operator with /op. Higher levels allow more commands.
For a friends server. The /stop command needs level 4 (the wiki’s page for that command). Lowering it limits what your operators can do.
pause-when-empty-secondsHow many seconds with no player online pass before the server pauses the game (added in 1.21.2).
For a friends server. This is the game pausing itself, not the server shutting down: the program is still running (INFERRED).
player-idle-timeoutMinutes a player can stay idle before being kicked. 0 means idle players are never kicked.
For a friends server. Leave it at 0 unless you want AFK friends kicked.
prevent-proxy-connectionsKicks players whose network provider differs from the one Mojang’s login servers see. It can wrongly block people on a VPN or some mobile networks (INFERRED).
For a friends server. Leave it off for friends.
query.portThe UDP port the query protocol listens on, when enable-query is on.
rate-limitThe most packets a player may send before being kicked. 0 turns the limit off.
rcon.passwordThe password for remote console. The wiki says rcon does not start when it is enabled and the password is blank.
rcon.portThe TCP port remote console listens on.
region-file-compressionThe method used to compress world chunks on disk. The wiki says chunks are not recompressed automatically when it changes.
For a friends server. Leave the default.
require-resource-packWhen on, players who decline the server’s resource pack are disconnected.
resource-packThe download address of a resource pack offered to players when they join. The wiki gives a 250 MiB size limit. Empty means no pack.
resource-pack-idAn optional identifier (a UUID) the clients use to recognise the pack set in resource-pack.
resource-pack-promptA custom message shown on the pack prompt, used with require-resource-pack. It uses the game’s chat component syntax; empty gives the default message.
resource-pack-sha1An optional checksum (SHA-1, lowercase hexadecimal) of the pack, so the game can check the download. The wiki recommends setting it.
server-ipThe address the server listens on. Empty means all of the machine’s addresses, and the wiki recommends leaving it empty.
For a friends server. This is not the address your friends type. A wrong value here is a classic reason nobody can connect (INFERRED); leave it empty.
server-portThe TCP port players connect to. At home, the router must forward it to the machine (wiki).
For a friends server. If you change it, friends must type address:port.
simulation-distanceThe radius, in chunks around each player, inside which mobs and other living things keep acting. Outside it the server stops updating them and players do not see them.
For a friends server. The wiki advises lowering it when players lag. Our presets use 5 to 8; those are recommendations, not measurements. See the RAM calculator.
spawn-protectionSize of the no-build square around the world spawn: its side is 2 x value + 1 blocks, so 16 protects 33 x 33. Operators can bypass it, it is off when the value is 0 or negative, and it does not apply if the server has no operators (Spawn protection page, wiki).
For a friends server. With trusted friends this mostly gets in the way of building near spawn; the trade-off is that nothing then stops a friend from changing spawn.
status-heartbeat-intervalHow often the management interface sends heartbeat messages to connected tools. 0 means off. The unit is not stated.
sync-chunk-writesMakes the server wait until each chunk is really on disk before carrying on. A crash then loses or damages less of the world; the cost is speed on a slow disk.
For a friends server. Keep it on: your world matters more than a little speed.
text-filtering-configChat filtering settings used internally by Realms; the wiki says it is probably not meant for use outside Realms.
text-filtering-versionThe version of the format used by text-filtering-config. The wiki lists 0 and 1 as valid values.
use-native-transportOn Linux, lets the server use the operating system’s own, faster network handling. Other systems ignore it.
For a friends server. Leave the default.
view-distanceHow many chunks around each player (a radius) the server sends. Players can lower their own setting but not go beyond this one.
For a friends server. One of the two settings with the most effect on load (INFERRED; the wiki advises lowering it when players lag): each step up sends more world to every player. See the RAM calculator.
white-listWhether the whitelist is used. When on, only players on the list (and operators) can connect. From 26.3 it is on by default.
For a friends server. A fresh 26.3 server therefore turns away everyone who is not on the list. Keep it on for a private server and add your friends: see the admin commands guide. See the whitelist guide.
No key matches. Clear the filters to see the whole list.
Keys that moved to game rules or were removed
You may find these in an older guide or file. The 26.3 server does not write them. The versions come from the community wiki’s history table (secondary source, read 4 October 2026); the game rule names were checked against the 26.3 game rule list in the official server data (MEASURED) and, for the command block rule, the wiki’s Game rule page.
pvp: now a game rule. Since 25w35a (1.21.9). →pvpspawn-monsters: now a game rule. Since 25w35a (1.21.9). →spawn_monstersallow-nether: now a game rule. Since 25w35a (1.21.9). →allow_entering_nether_using_portalsenable-command-block: now a game rule. Since 25w35a (1.21.9). →command_blocks_workspawn-animals: removed. Since 24w33a (1.21.2).spawn-npcs: removed. Since 24w33a (1.21.2).snooper-enabled: removed. Since 21w43a (1.18).max-build-height: removed. Since 20w49a (1.17).previews-chat: removed. Since 22w42a (1.19.3).announce-player-achievements: removed. Since 17w18a (1.12).allowed-connection-ids: announced for a later version, not in this one. Since 26.4 (in development).enable-legacy-status: announced for a later version, not in this one. Since 26.4 (in development).status-contact-details: announced for a later version, not in this one. Since 26.4 (in development).
A count note: the wiki’s table lists 71 Java keys on 4 October 2026: 68 of the 69 that the 26.3 server writes, plus 3 that the wiki marks as upcoming in 26.4. One key in the real file, management-server-allowed-origins, is not in that table; the wiki describes it on its management protocol page. We count what the 26.3 server writes, so this page has 69. Other sites quote other counts for other versions.
Presets for a friends server
These are our recommendations, not Mojang’s: a starting point with the reasoning for each value and what it costs you. A value that is not listed stays at the default. Pick one in the generator below to start from it and edit it. We have not measured any of the load effects: no number here is a measurement.
Small friends survival (2 to 10 players)
A private survival world for a group that knows each other. It keeps the safety defaults and trims what a small group does not need.
Changes from the defaults
max-players=10: Group size plus a spare place. The default of 20 is more than a small group uses. Trade-off: an eleventh friend is turned away until you raise it.difficulty=normal: A middle setting for survival with friends. Trade-off: newcomers may find it harder than easy, the file default.simulation-distance=8: Keeps mobs and farms moving a little closer to players than the default 10, which lowers load. Trade-off: things far from every player freeze sooner. A recommendation, not a measurement.enforce-whitelist=true: Removing someone from the whitelist then also removes them if they are online. Trade-off: none for a trusted group, but it will kick the person you remove.spawn-protection=0: Among friends the no-build zone around spawn mostly gets in the way. Trade-off: nothing then stops a friend from changing spawn.
Left as it is on purpose
white-list: Stays true: only players you add can join. In 26.3 this is already the default.online-mode: Stays true: it makes the server check every player’s account.view-distance: Stays 10: this preset lowers simulation-distance instead; lower view-distance too if the server still lags.
Creative build server
A world to build in, without hostile mobs and with everyone in creative mode.
Changes from the defaults
gamemode=creative: New players start in creative mode.force-gamemode=true: Everyone joins in creative, even if they left in another mode. Trade-off: you cannot leave someone in survival on purpose without a command.difficulty=peaceful: Meant to remove the mobs that interrupt building. Trade-off: no hostile challenge at all if you later want one.spawn-protection=0: Builders often work near spawn. Trade-off: nothing then protects the spawn area from changes.max-players=10: Group size plus a spare place. Trade-off: an eleventh builder is turned away until you raise it.simulation-distance=6: With no hostile mobs there is less to keep moving far from players, so the cost of a higher value buys little. Trade-off: farms and animals far away freeze. A recommendation, not a measurement.
Left as it is on purpose
white-list: Stays true: only players you add can join.online-mode: Stays true: it makes the server check every player’s account.view-distance: Stays 10: builders like to see far, but each step up sends more world to every player.
Younger players / stricter
For a group of younger players run by an adult. It limits who can join and what operators can do. It does not filter chat or content, so it is not a substitute for supervision.
Changes from the defaults
enforce-whitelist=true: Removing someone from the whitelist also removes them if they are online.max-players=6: A small cap keeps the group easy to watch. Trade-off: a seventh player is turned away until you raise it.hide-online-players=true: Stops the server list from showing who is online, so a stranger who finds the address cannot read the players’ names.op-permission-level=3: An operator at level 3 cannot use /stop, which needs level 4 (the wiki’s page for that command); level 3 still allows the multiplayer management commands, so a level-3 operator can still kick, ban and change the whitelist. It only applies to players you make operator after the change: players already in ops.json keep the level stored there (INFERRED from the wiki’s permission level page). Safest for this group: do not make the children operators at all. Trade-off: to get level 4 for yourself, edit your entry in ops.json or use the server console.
Left as it is on purpose
white-list: Stays true: only players you add can join.online-mode: Stays true: it makes the server check every player’s account. Never turn it off for this kind of group.enforce-secure-profile: Stays true: chat stays signed, so messages can be reported.spawn-protection: Stays 16: players who are not operators cannot build or break blocks around spawn. This only applies when at least one player is an operator, and pistons or explosions can still reach the area (Spawn protection page, wiki).difficulty: Stays easy, the file default.enable-rcon: Stays false: no remote console to protect.
These settings do not make a server safe for children. They do not filter chat or content, and they do not replace an adult who knows who is playing.
Small computer / low memory
For a server that runs on a modest machine. It trades how far players see and how far the world keeps moving for a lighter load.
Changes from the defaults
view-distance=8: Sends two chunks less in every direction than the default 10, so less world per player. Trade-off: a shorter horizon.simulation-distance=5: Keeps mobs and crops moving only close to players (INFERRED for crops). Trade-off: farms stop working when nobody is near them.max-players=6: A smaller cap means fewer players loading world at once. Trade-off: a seventh player is turned away until you raise it.entity-broadcast-range-percentage=75: Sends far-away mobs and items to players at three quarters of the normal distance. Trade-off: things pop in a little later.
Left as it is on purpose
sync-chunk-writes: Stays true: a crash is less likely to corrupt the world. Turning it off would trade that safety for speed, and we do not recommend it.white-list: Stays true: only players you add can join.
Generator and file import
Pick a preset or start from the defaults, edit the values (each one is checked against its type and range), see what differs from the defaults, then copy the text or download it as server.properties. Or paste a file you already have to read it: it shows what differs from the defaults, which keys are unknown or no longer exist in 26.3, and which values are invalid. Everything happens in your browser; nothing is sent anywhere.
Our recommendation, not a Mojang statement. Choosing a preset replaces the values below.
Import an existing server.properties
Comments and blank lines are fine. Nothing leaves your browser.
Edit the values
Your file
Worth a look
Differences from the 26.3 defaults
The server fills missing keys with their defaults (wiki).
Sizing
view-distance, simulation-distance and max-players are the settings that change how much a server has to do. To estimate the memory a server needs for your group, use the Minecraft server RAM calculator, and treat its result as an estimate.
FAQ
How do I get to server.properties?
It is in the folder you start the server from (the wiki calls it the current working directory), next to the server file and the world folder. The server creates it the first time it starts, so if it is missing, start the server once. Stop the server before you edit it and start it again afterwards.
What IP goes in server.properties?
Normally none: leave server-ip empty. Then the server listens on all the machine’s addresses, which is what the wiki recommends. It is not the address your friends type; they use your public address or domain, plus the port if it is not 25565. A wrong value in server-ip is a classic reason nobody can connect (INFERRED).
Is it safe to open port 25565?
Opening the port makes the server reachable from the internet, which is how a home server gets players, and it also exposes the server program to anyone who can reach it. What limits who can actually join is on the server side: keep online-mode true so every account is checked, keep white-list true, and keep the game updated. We have not tested router set-ups and this is general advice (INFERRED), not a security guarantee: follow your router’s own instructions.
Why am I not whitelisted on my own server?
Since 26.3, white-list is true by default (MEASURED in the official 26.3 default file), so a new server turns away everyone who is not on the list. Operators are let in automatically (wiki). Add each friend, or set white-list to false only if the server is not reachable by strangers. The commands are in our guide to whitelist, op and ban commands.
Is 1 GB of RAM enough for a Minecraft server?
It depends on how many players are online, how far they see, the world and any mods; we have not measured it, so we will not give a yes or a no. Get an estimate for your group with the Minecraft server RAM calculator. Lowering view-distance and simulation-distance reduces what the server has to do (INFERRED).
Sources
- Minecraft Wiki: Server.properties (community wiki) (accessed 4 October 2026)
- Minecraft Wiki: Spawn protection (accessed 4 October 2026)
- Minecraft Wiki: Minecraft Server Management Protocol (accessed 4 October 2026)
- Minecraft Wiki: Game rule (accessed 4 October 2026)
- Oracle Java documentation: Properties.load (the file syntax) (accessed 4 October 2026)
- Minecraft Wiki: Permission level and the /stop command page (accessed 4 October 2026)
- Minecraft Wiki: Java Edition 26.3 (version history) (accessed 4 October 2026)
- Minecraft Wiki: Java Edition 25w35a (the keys that became game rules) (accessed 4 October 2026)
The key list, the defaults and the game rule names are MEASURED from the official Java Edition 26.3 server, run once on 4 October 2026 to write its default file and its game rule list; no server was left running. Types, ranges and version history come from the community wiki, whose text is licensed CC BY-NC-SA: we used it to check facts and wrote every sentence ourselves. None of this was tested in a running game.
Unofficial reference, not affiliated with, approved by or endorsed by Mojang or Microsoft. Minecraft is a trademark of Mojang. The presets are Arcadyo’s own recommendations, not statements by Mojang.