difficultygamemodeforce-gamemodehardcorepvpspawn-monstersallow-flightallow-netherplayer-idle-timeoutenable-command-blocklevel-namelevel-seedlevel-typegenerator-settingsgenerate-structuresinitial-enabled-packsinitial-disabled-packsmax-world-sizespawn-protectionserver-ipserver-portmax-playersmotdview-distancesimulation-distancenetwork-compression-thresholduse-native-transportprevent-proxy-connectionsrate-limitstatus-heartbeat-intervalonline-modewhite-listenforce-whitelistop-permission-levelfunction-permission-levelenforce-secure-profileaccepts-transferstext-filtering-configtext-filtering-versionenable-code-of-conductbug-report-linkcommand-spam-threshold-secondschat-spam-threshold-secondshide-online-playerslog-ipsmax-tick-timeentity-broadcast-range-percentagesync-chunk-writesmax-chained-neighbor-updatespause-when-empty-secondsregion-file-compressionenable-jmx-monitoringenable-rconrcon.portrcon.passwordbroadcast-rcon-to-opsbroadcast-console-to-opsenable-queryquery.portenable-statusmanagement-server-enabledmanagement-server-hostmanagement-server-portmanagement-server-secretmanagement-server-tls-enabledmanagement-server-tls-keystoremanagement-server-tls-keystore-passwordmanagement-server-allowed-originsresource-packresource-pack-sha1resource-pack-idresource-pack-promptrequire-resource-pack#Minecraft server propertiesdifficulty=easygamemode=survivalforce-gamemode=falsehardcore=falsepvp=truespawn-monsters=trueallow-flight=falseallow-nether=trueplayer-idle-timeout=0enable-command-block=falselevel-name=worldlevel-seed=level-type=minecraft\:normalgenerator-settings={}generate-structures=trueinitial-enabled-packs=vanillainitial-disabled-packs=max-world-size=29999984spawn-protection=16server-ip=server-port=25565max-players=20motd=A Minecraft Serverview-distance=10simulation-distance=10network-compression-threshold=256use-native-transport=trueprevent-proxy-connections=falserate-limit=0status-heartbeat-interval=0online-mode=truewhite-list=falseenforce-whitelist=falseop-permission-level=4function-permission-level=2enforce-secure-profile=trueaccepts-transfers=falsetext-filtering-config=text-filtering-version=0enable-code-of-conduct=falsebug-report-link=command-spam-threshold-seconds=10chat-spam-threshold-seconds=10hide-online-players=falselog-ips=truemax-tick-time=60000entity-broadcast-range-percentage=100sync-chunk-writes=truemax-chained-neighbor-updates=1000000pause-when-empty-seconds=60region-file-compression=deflateenable-jmx-monitoring=falseenable-rcon=falsercon.port=25575rcon.password=broadcast-rcon-to-ops=truebroadcast-console-to-ops=trueenable-query=falsequery.port=25565enable-status=truemanagement-server-enabled=falsemanagement-server-host=localhostmanagement-server-port=0management-server-secret=management-server-tls-enabled=truemanagement-server-tls-keystore=management-server-tls-keystore-password=management-server-allowed-origins=resource-pack=resource-pack-sha1=resource-pack-id=resource-pack-prompt=require-resource-pack=false
Put server.properties in your server folder, next to the server jar, then restart. Everything runs in your browser. Nothing is uploaded.
server.properties is the plain text settings file that controls a Minecraft Java Edition server: difficulty, game mode, world name, player count, the whitelist and dozens more. This generator gives every setting a typed input and a short explanation, so you can build a correct file without memorizing each key. It covers all the current keys through 26.2.
When you first run a dedicated server, Minecraft writes a default server.properties next to the server jar. Editing it by hand is easy to get wrong: a typo in a key name is silently ignored, and an out-of-range number can stop the server from starting. Use the form above to set what you want, watch the file build live on the right, then copy or download it.
The file is a standard Java properties file: one key=value pair per line. Order does not matter and the server only reads it at startup, so every change needs a restart.
1. Pick a preset (Vanilla Survival, Creative Build, Hardcore or Minigame) to start close to what you want, or leave everything at the vanilla defaults.
2. Change any setting. Booleans toggle on and off, numbers and dropdowns have the valid range built in, and the file preview updates as you type.
3. Use the search box or the show changed only toggle to focus on the keys you care about. Changed keys are marked in green.
4. Copy the file or download server.properties, drop it in your server folder, and restart.
These are the settings most people come to change. The full list, including RCON, query, performance and resource pack options, is in the generator above with a description on each one.
| Key | Values | What it does |
|---|---|---|
| difficulty | peaceful / easy / normal / hard | Hostile mobs and hunger; easy by default |
| gamemode | survival / creative / adventure / spectator | Default mode for new players |
| max-players | 0 to 2147483647 | Player slots; default 20 |
| view-distance | 2 to 32 chunks | Render radius sent to clients; default 10 |
| simulation-distance | 2 to 32 chunks | Tick radius; lower this first to fix lag |
| spawn-protection | blocks (0 disables) | Build-protected radius around spawn; default 16 |
| pvp | true / false | Players can hurt each other; default true |
| online-mode | true / false | Mojang account check; keep true |
| white-list | true / false | Restrict joining to whitelist.json |
| motd | text | Server-list message; supports color codes |
A laggy server is usually fixed in two lines. simulation-distance is the one to drop first: it sets how far from each player the world actually runs (mobs, redstone, crop growth, hoppers). Going from 10 to 6 roughly halves the active area without changing how far players can see.
view-distance only controls how many chunks are drawn, so it is cheaper on the server but heavier on bandwidth. On a crowded server, entity-broadcast-range-percentage below 100 reduces the entity data sent to each player. Lowering max-players to match what your hardware can really handle prevents the slow death spiral when a server is overfull.
pause-when-empty-seconds stops the world ticking after the server has been empty for a while, which frees the CPU between sessions. None of these touch your world data; they only change how hard the server works.
Keep online-mode set to true so only authenticated accounts can join. If you want a closed server, turn on white-list and add players from the console with /whitelist add. For remote administration, enable-rcon lets you run commands from outside the game, but only ever with a long random rcon.password and the RCON port firewalled off the public internet.
Leave enable-command-block off unless you specifically build with command blocks, and keep op-permission-level no higher than you need. These are the settings that decide who can do what on your server.
It sits in your server's root folder, the same folder as the server jar (the .jar you double-click or run). On first launch the server creates a default server.properties there. To use the file from this tool, stop the server, replace the file, then start it again.
Set the difficulty line to peaceful, easy, normal or hard. Peaceful turns off hostile mobs and hunger damage, hard lets starvation kill you. Save the file and restart the server. You can also change it live with the /difficulty command in the server console.
online-mode=true checks every player against the official Mojang and Microsoft accounts, so only the real owner of a name can join. Keep it on. Setting it to false lets anyone connect under any username and is only meant for a private offline LAN. A public server with online-mode off will be griefed and impersonated.
View distance controls how many chunks are sent to players, simulation distance controls how many chunks actually tick. For a small server 10 is fine. If you lag, lower simulation-distance first (8 or even 6); it is the single biggest performance lever because it shrinks the area where mobs, redstone and crops run.
Set white-list=true and restart, then add players from the console with /whitelist add PlayerName. Only listed players can join. Set enforce-whitelist=true as well if you want anyone removed from the list to be kicked immediately rather than on their next reconnect.
No. The server reads server.properties once at startup, so any edit needs a server restart to take effect. A few settings have an equivalent in-game command (/difficulty, /gamerule, /whitelist) that changes them live, but the file itself is only re-read on launch.
Browse more Minecraft tools: