Skip to content
Generator

Server.properties Generator

Every setting in a Java server's server.properties, with what it does and the default your version's own server writes. Change what you need, then copy or download the file. Java Edition 1.17 to 26.3.

Start from

Load the file your server already has, or a preset. Everything stays editable.

Server basics

Who can join, how many, and the default game mode and difficulty.

motd

The text under the server name in the multiplayer list. Use the MOTD Generator for colors and two lines. Open the MOTD Generator.

Default: A Minecraft Server
max-players

How many players can be online at once. Operators cannot join a full server either, unless ops.json lets them bypass the limit.

Default: 20
Online modeonline-mode

Checks every player against Mojang's account servers. Turn it off only behind a proxy that checks accounts itself: without it anyone can join under any name.

Default: true
Whitelistwhite-list

Only players in whitelist.json can join. Operators can always join.

Default: true
Enforce whitelistenforce-whitelist

Kicks online players who are not on the whitelist when it is reloaded. Has no effect unless the whitelist is on.

Default: false
difficulty

The world's difficulty. Old number values (0 to 3) are still read and turned into these names.

Default: easy
gamemode

The game mode new players start in.

Default: survival
Force game modeforce-gamemode

Puts players back in the default game mode every time they join, instead of the mode they left in.

Default: false
Hardcorehardcore

Locks the difficulty to Hard, and players who die become spectators.

Default: false
World

Used when the world is first created. Changing them later does not regenerate existing chunks.

level-name

The world folder the server loads, or creates if it is missing.

Default: world
level-seed

The seed for a new world. Leave it empty for a random one.

Default: (empty)
level-type

The world preset for a new world.

Default: minecraft:normal
generator-settings

JSON settings for the flat and single-biome world types. Leave as it is for a normal world.

Default: {}
Generate structuresgenerate-structures

Villages, temples and other structures in new chunks. Dungeons still generate when it is off.

Default: true
max-world-size

The largest radius, in blocks, the world border can be set to.

Default: 29999984
spawn-protection

Non-operators cannot build within this many blocks of spawn (a square 2 × this + 1 wide). 0 turns it off. It only applies while the server has at least one operator.

Default: 16
Players and chat

Permissions, idle kicks, chat signing and what the server announces.

Allow flightallow-flight

Stops the server kicking Survival players who hover for over 5 seconds. Turn it on if players use flight mods or plugins. Creative flying is never affected.

Default: false
op-permission-level

What /op gives: 1 bypasses spawn protection, 2 adds cheat commands and command blocks, 3 adds player management (kick, ban, op), 4 adds server management (stop, save).

Default: 4
function-permission-level

The permission level functions in data packs run with.

Default: 2
player-idle-timeout

Kicks players who have not moved for this many minutes. 0 never kicks.

Default: 0
Require signed chatenforce-secure-profileNew in 1.19

Players need a Mojang-signed chat key to join. Turn it off only if players without one (some launchers) cannot get in.

Default: true
Hide online playershide-online-playersNew in 1.18

Leaves the player list out of the server list status, so nobody can see who is online.

Default: false
Block proxy connectionsprevent-proxy-connections

Kicks players whose connection comes from a different network than the one Mojang's login saw (a VPN or proxy).

Default: false
Log IP addresseslog-ipsNew in 1.20.2

Writes players' IP addresses to the log when they join.

Default: true
Show console commands to opsbroadcast-console-to-ops

Online operators see the output of commands typed in the console.

Default: true
Show RCON commands to opsbroadcast-rcon-to-ops

Online operators see the output of commands sent over RCON.

Default: true
text-filtering-configNew in 1.16.4

Settings for an external chat filter service. Used by Mojang's Realms; leave empty.

Default: (empty)
text-filtering-versionNew in 1.21.2

Which version of the external chat filter service the server talks to. Only matters with a text filtering config; leave it at 0.

Default: 0
Accept transfersaccepts-transfersNew in 1.20.5

Lets another server send players here with /transfer.

Default: false
bug-report-linkNew in 1.21

A web page where players can report bugs on your server. The server sends it to players, who can open it from the game.

Default: (empty)
Code of conductenable-code-of-conductNew in 1.21.9

Shows players a code of conduct to accept when they join, from text files in a codeofconduct folder beside server.properties, named by language (en_us.txt).

Default: false
chat-spam-threshold-secondsNew in 26.2

Kicks a player who sends chat messages faster than this allows. 0 turns the chat spam kick off.

Default: 10
command-spam-threshold-secondsNew in 26.2

The same for commands typed by players. 0 turns the command spam kick off.

Default: 10
Performance

How far the server loads and simulates, and how it saves and sends data.

view-distance

How many chunks around each player the server sends, as a radius. Lower is lighter on the server.

Default: 10
simulation-distanceNew in 1.18

How many chunks around each player keep ticking: mobs move, crops grow, redstone runs. Lower is lighter on the server.

Default: 10
entity-broadcast-range-percentage

How far away entities are sent to players, as a percentage of the normal distance. Higher shows mobs from further off but costs more.

Default: 100
max-tick-time

If one tick takes longer than this, the server decides it has frozen and stops. -1 turns the watchdog off.

Default: 60000
network-compression-threshold

Packets this many bytes or larger are compressed. -1 turns compression off, 0 compresses everything.

Default: 256
rate-limitNew in 1.16.2

Kicks a player who sends more packets than this per second. 0 turns the limit off.

Default: 0
Synchronous chunk writessync-chunk-writes

Waits for each chunk to be written to disk. Safer if the server crashes; turning it off can speed up saving.

Default: true
Native transportuse-native-transport

Uses Linux's faster network code when the server runs on Linux.

Default: true
max-chained-neighbor-updatesNew in 1.19

Limits how many block updates can chain in a row before the rest are skipped. A negative number removes the limit.

Default: 1000000
JMX monitoringenable-jmx-monitoring

Publishes tick times for Java monitoring tools (JMX). Also needs JVM flags.

Default: false
region-file-compressionNew in 1.20.5

How newly saved chunks are compressed. Changing it does not recompress chunks already saved.

Default: deflate
pause-when-empty-secondsNew in 1.21.2

Pauses the world once nobody has been online for this many seconds, so an empty server uses almost no CPU. 0 or less never pauses.

Default: 60
Resource pack and data packs

A pack players download on join, and the data packs a new world starts with.

initial-enabled-packsNew in 1.19.3

Data packs a NEW world starts with, comma separated. Experimental feature packs must be listed here to be on.

Default: vanilla
initial-disabled-packsNew in 1.19.3

Data packs a NEW world does not turn on automatically, comma separated.

Default: (empty)
resource-pack

A direct download link to a .zip players are offered on join.

Default: (empty)
resource-pack-sha1

The SHA-1 hash of the .zip, lowercase hex. Lets players reuse a cached copy and catches a wrong download.

Default: (empty)
Require the resource packrequire-resource-packNew in 1.17

Players who decline the pack are disconnected.

Default: false
resource-pack-promptNew in 1.17

A custom message on the download prompt, as a JSON text component.

Default: (empty)
resource-pack-idNew in 1.20.3

A UUID that names the pack, so players keep one cached copy across URL changes. Left empty, it is made from the URL.

Default: (empty)
Network and remote access

Ports, RCON, query and status replies.

server-port

The port players connect to. Forward it on your router if you host from home.

Default: 25565
server-ip

Listen on one IP address only. Leave it empty unless you know you need it.

Default: (empty)
Reply to the server listenable-status

When off, the server shows as offline in the multiplayer list but players can still join.

Default: true
Queryenable-query

Answers GameSpy4 query requests (player lists for server sites and bots).

Default: false
query.port

The UDP port for query.

Default: 25565
RCONenable-rcon

Remote console: run commands from another program. It is not encrypted, so never open its port to the internet.

Default: false
rcon.port

The TCP port for RCON.

Default: 25575
rcon.password

RCON does not start without one.

Default: (empty)
Management server

The server management protocol for remote tools. Off by default.

status-heartbeat-intervalNew in 1.21.9

How often the management server sends connected tools a status notification. 0 sends none.

Default: 0
Management servermanagement-server-enabledNew in 1.21.9

Starts the server management protocol (JSON-RPC over WebSocket) for remote admin tools.

Default: false
management-server-hostNew in 1.21.9

The address it listens on. Keep localhost unless a tool on another machine needs it.

Default: localhost
management-server-portNew in 1.21.9

Its port. 0 picks a free port each time the server starts.

Default: 0
management-server-secretNew in 1.21.9

The token tools sign in with: exactly 40 letters and digits. Left out, the server makes a random one and writes it to the file. Any other value stops the server starting while the management server is on.

Default: made by the server
Management TLSmanagement-server-tls-enabledNew in 1.21.9

Encrypts the connection. The server will not start with TLS on and no keystore.

Default: true
management-server-tls-keystoreNew in 1.21.9

Path to a PKCS12 keystore with the TLS certificate.

Default: (empty)
management-server-tls-keystore-passwordNew in 1.21.9

The keystore's password. The environment variable MINECRAFT_MANAGEMENT_TLS_KEYSTORE_PASSWORD wins over this if set.

Default: (empty)
management-server-allowed-originsNew in 1.21.11

Web pages allowed to sign in from a browser, comma separated. Empty blocks browser sign-in.

Default: (empty)

Every server.properties setting in Java 26.3

The default is what the 26.3 server itself writes to a new file.

Server basics

KeyDefaultWhat it does
motdA Minecraft ServerThe text under the server name in the multiplayer list. Use the MOTD Generator for colors and two lines.
max-players20How many players can be online at once. Operators cannot join a full server either, unless ops.json lets them bypass the limit.
online-modetrueChecks every player against Mojang's account servers. Turn it off only behind a proxy that checks accounts itself: without it anyone can join under any name.
white-listtrueOnly players in whitelist.json can join. Operators can always join.
enforce-whitelistfalseKicks online players who are not on the whitelist when it is reloaded. Has no effect unless the whitelist is on.
difficultyeasyThe world's difficulty. Old number values (0 to 3) are still read and turned into these names.
gamemodesurvivalThe game mode new players start in.
force-gamemodefalsePuts players back in the default game mode every time they join, instead of the mode they left in.
hardcorefalseLocks the difficulty to Hard, and players who die become spectators.

World

KeyDefaultWhat it does
level-nameworldThe world folder the server loads, or creates if it is missing.
level-seed(empty)The seed for a new world. Leave it empty for a random one.
level-typeminecraft:normalThe world preset for a new world.
generator-settings{}JSON settings for the flat and single-biome world types. Leave as it is for a normal world.
generate-structurestrueVillages, temples and other structures in new chunks. Dungeons still generate when it is off.
max-world-size29999984The largest radius, in blocks, the world border can be set to.
spawn-protection16Non-operators cannot build within this many blocks of spawn (a square 2 × this + 1 wide). 0 turns it off. It only applies while the server has at least one operator.

Players and chat

KeyDefaultWhat it does
allow-flightfalseStops the server kicking Survival players who hover for over 5 seconds. Turn it on if players use flight mods or plugins. Creative flying is never affected.
op-permission-level4What /op gives: 1 bypasses spawn protection, 2 adds cheat commands and command blocks, 3 adds player management (kick, ban, op), 4 adds server management (stop, save).
function-permission-level2The permission level functions in data packs run with.
player-idle-timeout0Kicks players who have not moved for this many minutes. 0 never kicks.
enforce-secure-profiletruePlayers need a Mojang-signed chat key to join. Turn it off only if players without one (some launchers) cannot get in. Added in 1.19.
hide-online-playersfalseLeaves the player list out of the server list status, so nobody can see who is online. Added in 1.18.
prevent-proxy-connectionsfalseKicks players whose connection comes from a different network than the one Mojang's login saw (a VPN or proxy).
log-ipstrueWrites players' IP addresses to the log when they join. Added in 1.20.2.
broadcast-console-to-opstrueOnline operators see the output of commands typed in the console.
broadcast-rcon-to-opstrueOnline operators see the output of commands sent over RCON.
text-filtering-config(empty)Settings for an external chat filter service. Used by Mojang's Realms; leave empty. Added in 1.16.4.
text-filtering-version0Which version of the external chat filter service the server talks to. Only matters with a text filtering config; leave it at 0. Added in 1.21.2.
accepts-transfersfalseLets another server send players here with /transfer. Added in 1.20.5.
bug-report-link(empty)A web page where players can report bugs on your server. The server sends it to players, who can open it from the game. Added in 1.21.
enable-code-of-conductfalseShows players a code of conduct to accept when they join, from text files in a codeofconduct folder beside server.properties, named by language (en_us.txt). Added in 1.21.9.
chat-spam-threshold-seconds10Kicks a player who sends chat messages faster than this allows. 0 turns the chat spam kick off. Added in 26.2.
command-spam-threshold-seconds10The same for commands typed by players. 0 turns the command spam kick off. Added in 26.2.

Performance

KeyDefaultWhat it does
view-distance10How many chunks around each player the server sends, as a radius. Lower is lighter on the server.
simulation-distance10How many chunks around each player keep ticking: mobs move, crops grow, redstone runs. Lower is lighter on the server. Added in 1.18.
entity-broadcast-range-percentage100How far away entities are sent to players, as a percentage of the normal distance. Higher shows mobs from further off but costs more.
max-tick-time60000If one tick takes longer than this, the server decides it has frozen and stops. -1 turns the watchdog off.
network-compression-threshold256Packets this many bytes or larger are compressed. -1 turns compression off, 0 compresses everything.
rate-limit0Kicks a player who sends more packets than this per second. 0 turns the limit off. Added in 1.16.2.
sync-chunk-writestrueWaits for each chunk to be written to disk. Safer if the server crashes; turning it off can speed up saving.
use-native-transporttrueUses Linux's faster network code when the server runs on Linux.
max-chained-neighbor-updates1000000Limits how many block updates can chain in a row before the rest are skipped. A negative number removes the limit. Added in 1.19.
enable-jmx-monitoringfalsePublishes tick times for Java monitoring tools (JMX). Also needs JVM flags.
region-file-compressiondeflateHow newly saved chunks are compressed. Changing it does not recompress chunks already saved. Added in 1.20.5.
pause-when-empty-seconds60Pauses the world once nobody has been online for this many seconds, so an empty server uses almost no CPU. 0 or less never pauses. Added in 1.21.2.

Resource pack and data packs

KeyDefaultWhat it does
initial-enabled-packsvanillaData packs a NEW world starts with, comma separated. Experimental feature packs must be listed here to be on. Added in 1.19.3.
initial-disabled-packs(empty)Data packs a NEW world does not turn on automatically, comma separated. Added in 1.19.3.
resource-pack(empty)A direct download link to a .zip players are offered on join.
resource-pack-sha1(empty)The SHA-1 hash of the .zip, lowercase hex. Lets players reuse a cached copy and catches a wrong download.
require-resource-packfalsePlayers who decline the pack are disconnected. Added in 1.17.
resource-pack-prompt(empty)A custom message on the download prompt, as a JSON text component. Added in 1.17.
resource-pack-id(empty)A UUID that names the pack, so players keep one cached copy across URL changes. Left empty, it is made from the URL. Added in 1.20.3.

Network and remote access

KeyDefaultWhat it does
server-port25565The port players connect to. Forward it on your router if you host from home.
server-ip(empty)Listen on one IP address only. Leave it empty unless you know you need it.
enable-statustrueWhen off, the server shows as offline in the multiplayer list but players can still join.
enable-queryfalseAnswers GameSpy4 query requests (player lists for server sites and bots).
query.port25565The UDP port for query.
enable-rconfalseRemote console: run commands from another program. It is not encrypted, so never open its port to the internet.
rcon.port25575The TCP port for RCON.
rcon.password(empty)RCON does not start without one.

Management server

KeyDefaultWhat it does
status-heartbeat-interval0How often the management server sends connected tools a status notification. 0 sends none. Added in 1.21.9.
management-server-enabledfalseStarts the server management protocol (JSON-RPC over WebSocket) for remote admin tools. Added in 1.21.9.
management-server-hostlocalhostThe address it listens on. Keep localhost unless a tool on another machine needs it. Added in 1.21.9.
management-server-port0Its port. 0 picks a free port each time the server starts. Added in 1.21.9.
management-server-secretrandomThe token tools sign in with: exactly 40 letters and digits. Left out, the server makes a random one and writes it to the file. Any other value stops the server starting while the management server is on. Added in 1.21.9.
management-server-tls-enabledtrueEncrypts the connection. The server will not start with TLS on and no keystore. Added in 1.21.9.
management-server-tls-keystore(empty)Path to a PKCS12 keystore with the TLS certificate. Added in 1.21.9.
management-server-tls-keystore-password(empty)The keystore's password. The environment variable MINECRAFT_MANAGEMENT_TLS_KEYSTORE_PASSWORD wins over this if set. Added in 1.21.9.
management-server-allowed-origins(empty)Web pages allowed to sign in from a browser, comma separated. Empty blocks browser sign-in. Added in 1.21.11.

How to use the Server.properties Generator

Every setting in a Java server's server.properties, with what it does and the default its own version writes, read from each version's real server. Settings added, removed or moved to game rules follow the version you pick.

Quick steps

  1. 1Pick your server's version at the top
  2. 2Open your current server.properties, or start from a preset
  3. 3Change what you need; search finds a setting by name
  4. 4Download the file, or copy it, and put it in your server folder

Example use cases

  • Setting up a new server without guessing what each key does
  • Moving a server to a new version and seeing which settings changed or became game rules
  • A whitelisted server for friends, or a lighter one for a small machine

Tips

Stop the server before you edit the file: it overwrites it when it starts
Seed, world type and structures only matter when the world is first made
Never open the RCON port to the internet: it is not encrypted
Copy the link to share your settings; it opens with the same changes

Frequently asked questions

Where is server.properties?

In the server folder, next to the server .jar. The server writes it the first time it starts. Edit it while the server is stopped: the server reads it once at startup.

What are the default server.properties settings?

This page lists every key with the default the 26.3 server writes itself: for example max-players=20, view-distance=10, difficulty=easy and white-list=true. Pick another version to see its own defaults.

Why is pvp missing from my server.properties?

In 1.21.9, allow-nether, spawn-monsters, enable-command-block and pvp were removed from server.properties and became game rules, so they can be changed while the server runs. Set them with /gamerule. Import an older file here and the tool shows the game rule to use for each one.

How do I make a server whitelist only?

Turn on white-list (and enforce-whitelist to kick anyone already online who is not on it), then add players with /whitelist add <name>. From 26.3 a new server starts with the whitelist on.

Do I need the whole file?

No. Choose "Only my changes" for a short file: when the server starts it adds every missing key with its default.

What does online-mode=false do?

The server stops checking players with Mojang, so anyone can join under any name, including an operator's. Only turn it off behind a proxy such as Velocity or BungeeCord that checks accounts itself.

Does this work for a Bedrock Dedicated Server?

No. Bedrock Dedicated Server's file is also called server.properties, but its settings are different (server-name, allow-cheats, tick-distance and server-port 19132, for example). This generator writes the Java Edition file.