server.properties

The default server.properties file for Java Edition.

server.properties is a file that specifies settings for the Minecraft server software. There exists a variant for server.jar in Java Edition, as well as for Bedrock Dedicated Server in Bedrock Edition. Those variants are not compatible, but serve a similar purpose with similar syntax.

Java Edition

server.properties is located in the current working directory of the server software. That means if the server is started from some directory, the file will be also placed in that directory.

The file is UTF-8 encoded text using the Properties syntax, as defined for Properties.load(Reader). It can be edited with a text editor, such as Notepad, TextEdit, Kate, nano or Vim.

The software first attempts to load the file as UTF-8, but if that fails, ISO-8859-1 is used as a fallback.

The syntax generally consists of line (LF, CR, or CRLF) separated key-value pairs, separated by an = sign. The key is the setting identifier, and the value is used for that setting. All values are strings, but they might be interpreted as integers or other types by the software, depending on the key. Lines starting with # are comments and are ignored.

The server.properties file is regenerated by the server software on startup:

  1. If the file already exists, existing values are copied from it. Comments are ignored.
  2. Any missing keys or keys with invalid values are set to the defaults.
  3. The file is rewritten with UTF-8 encoding. This has the effects of Properties.store(Writer, String), including:
    • On the first line, a comment Minecraft server properties is written. The text of the comment is provided by the server software.
    • On the second line, a comment containing the timestamp of the file's generation in the format dow mon dd hh:mm:ss zzz yyyy in Java's DateTimeFormatter pattern syntax is written.
    • Some characters such as : are escaped in values with \.
    • Line endings are written as LF on Unix-like systems, and as CRLF on Windows.

After changes are made to the file, the server must be restarted for them to take effect.

Default content

As of 1.21.3, the server software generates the following server.properties file if it is not found:

#Minecraft server properties
#[Generation time]
accepts-transfers=false
allow-flight=false
allow-nether=true
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
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-monsters=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

Keys

Key Type Default Value Description
accepts-transfers boolean false Whether to accept incoming transfers via a transfer packet.
false - Incoming transfers are rejected, and the player is disconnected.
true - Incoming transfers are allowed, and the server must approve it.
allow-flight boolean false Whether players can use flight on the server while in Survival mode by using mods.

With allow-flight enabled, griefers may become more common, because it makes their work easier. In Creative mode, this has no effect.

false - Flight is not allowed (players in air for at least 5 seconds get kicked).
true - Flight is allowed, and used if the player has a fly mod installed.
allow-nether boolean true Whether players can travel to the Nether.
false - Nether portals do not work.
true - The server allows portals to send players to the Nether.
broadcast-console-to-ops boolean true Whether to send console command outputs to all online operators.
broadcast-rcon-to-ops boolean true Whether to send rcon console command outputs to all online operators.
difficulty string easy The difficulty (such as damage dealt by mobs and the way hunger and poison affects players) of the server.

If a legacy difficulty number is specified, it is silently converted to a difficulty name.

peaceful (0)
easy (1)
normal (2)
hard (3)
enable-command-block boolean false Whether command blocks are enabled.
enable-jmx-monitoring boolean false Whether to expose an MBean with the Object name net.minecraft.server:type=Server and two attributes averageTickTime and tickTimes exposing the tick times in milliseconds.

In order to enable JMX on the Java runtime you also need to use certain JVM flags: https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html.

enable-query boolean false Whether to enable query, which provides information about the server.
enable-rcon boolean false Whether to enable rcon, which allows access to the server console over a network.

It's not recommended to connect to rcon via untrusted networks, like the internet, as it is not encrypted. All data sent between the client and the server (including the rcon password) can be intercepted. Ideally, only connect to rcon from localhost.

enable-status boolean true Whether the server appears as "online" on the server list.

If set to false, status replies to clients are suppressed. This means the server appears as offline, but still accepts connections.

enforce-secure-profile boolean true Whether to only allow players with a Mojang-signed public key to join the server.

If this is not enabled, all chat messages will be left unsigned and unable to be reported. Clients will get warned about this when connecting to the server.

enforce-whitelist boolean false Whether to enforce changes to the whitelist.

When this option as well as the whitelist is enabled, players not present on the whitelist get kicked from the server after the server reloads the whitelist file.

false - Online players that are not on the whitelist are not kicked.
true - Online players that are not on the whitelist are kicked.
entity-broadcast-range-percentage integer (10-1000) 100 How close entities need to be to the player to be sent.

Higher values means they'll be rendered from farther away, potentially causing more lag.

This is expressed as a percentage. For example, setting to 50 makes entites only render at half the usual distance. This mimics the function on the client video settings (not unlike Render Distance, which the client can customize so long as it's under the server's setting).

force-gamemode boolean false Whether to switch players to the default game mode on join.
false - Players join in the game mode they left in.
true - Players always join in the default game mode.
function-permission-level integer (1-4) 2 The default permission level for functions.

See permission level for the details on the 4 levels.

gamemode string survival The default game mode.

If a legacy game mode number is specified, it is silently converted to a game mode name.

survival (0)
creative (1)
adventure (2)
spectator (3)
generate-structures boolean true Whether structures (such as villages) are generated.
false - Structures are not generated in new chunks.
true - Structures are generated in new chunks.

Note: Dungeons still generate if this is set to false.

generator-settings string {} Settings used to customize world generation.

Use depends on chosen level-type. For minecraft:flat, see Superflat#Multiplayer.

hardcore boolean false Whether to enable hardcore mode on created worlds.
hide-online-players boolean false Whether to disable sending the player list on status requests.
initial-disabled-packs string blank Datapacks to not be auto-enabled on world creation.

Specified as a comma-separated list.

initial-enabled-packs string vanilla Datapacks to be enabled on world creation.

Specified as a comma-separated list. Feature packs need to be explicitly enabled.

level-name string world The world name and the world directory path.

If a directory at this path exists and is a valid world, it will be loaded by the server. Otherwise, the server will generate a new world in this directory (creating the directory and it's parents if necessary) and use the provided value as it's name.

This can be both an absolute path, or a path relative to the working directory or the value of the --universe command line option if provided.

level-seed string blank The seed for the generated world.

A random seed is used if left blank.

level-type string minecraft:normal The preset for the generated world.

The vanilla namespace (minecraft:) can be omitted.

minecraft:normal - Standard world with hills, valleys, water, etc.
minecraft:flat - A flat world with no features. Can be modified with generator-settings.
minecraft:large_biomes - Same as default but all biomes are larger.
minecraft:amplified - Same as default but world-generation height limit is increased.
minecraft:single_biome_surface - A buffet world which the entire overworld consists of one biome. Can be modified with generator-settings.
log-ips boolean true Whether to show client IP addresses in messages printed to the server console or the log file.
max-chained-neighbor-updates integer​ 1000000 The limit of consecutive neighbor updates before skipping additional ones.

Negative values disable the limit.

max-players integer (0-(2^31 - 1)) 20 The maximum number of players that can play on the server at the same time.

Ops with bypassesPlayerLimit enabled can join the server even if the server is full. Extremely large values for this field result in the client-side user list being broken.

max-tick-time integer (-1 or 0–(2^63 - 1)) 60000 The maximum number of milliseconds a single tick may take.

After this limit is exceeded, the server watchdog stops the server with the message, A single server tick took 60.00 seconds (should be max 0.05); Considering it to be crashed, server will forcibly shutdown. and exits with an exit code of 1.

-1 - disable watchdog entirely
max-world-size integer (1-29999984) 29999984 The amount of blocks from the center of the world where the world border appears.

Setting the world border bigger causes the commands to complete successfully but the actual border does not move past this block limit. Setting the max-world-size higher than the default doesn't do anything.

motd string A Minecraft Server The message displayed in the server list of the client, below the server name.
  • The MOTD supports color and formatting codes.
  • The MOTD supports non-ASCII characters, such as "♥".
  • If the MOTD is over 59 characters, the server list may report a communication error.
network-compression-threshold integer 256 How big should a packet be to be compressed.

Packets the size of this many bytes or more will be compressed. A lower threshold will compress more packets, but compressing small amounts of data might end up with a larger result than the source.

-1 - disable compression entirely
0 - compress everything

Note: The Ethernet spec requires that packets less than 64 bytes become padded to 64 bytes. Thus, setting a value lower than 64 may not be beneficial. It is also not recommended to exceed the MTU, typically 1500 bytes.

online-mode boolean true Whether to only allow players verified with the Minecraft account database to join.

Set this to false only if the player's server is not connected to the Internet. Hackers with fake accounts can connect if this is set to false! If minecraft.net is down or inaccessible, no players can connect if this is set to true. Setting this variable to off purposely is called "cracking" a server, and servers that are present with online mode off are called "cracked" servers, allowing players with unlicensed copies of Minecraft to join.

true - Enabled. The server assumes it has an Internet connection and checks every connecting player.
false - Disabled. The server does not attempt to check connecting players.
op-permission-level integer (0-4) 4 The default permission level for ops when using /op.
pause-when-empty-seconds integer 60 How many seconds have to pass after no player has been online before the server is paused.
player-idle-timeout integer 0 How many minutes does the player have to idle to be kicked from the server.

If set to 0, idle players are never kicked.

Note: Idle time is reset when the server receives one of the following packets:
prevent-proxy-connections boolean false Whether to kick players if the ISP/AS sent from the server is different from the one from Mojang Studios' authentication server.
pvp boolean true Whether to enable PvP on the server.

Players shooting themselves with arrows receive damage only if PvP is enabled.

true - Players can kill each other.
false - Players cannot kill other players (also known as Player versus Environment (PvE)).

Note: Indirect damage sources spawned by players (such as lava, fire, TNT and to some extent water, sand and gravel) still deal damage to other players.

query.port integer (1-(2^16 - 2)) 25565 The UDP port number query (see enable-query) listens on.
rate-limit integer 0 The maximum amount of packets a player can send before getting kicked.

Setting to 0 disables this feature.

rcon.password string blank The password for rcon.

If the password is blank and rcon is enabled, it will not start as a safeguard.

rcon.port integer (1-(2^16 - 2)) 25575 The TCP port number rcon listens on.
region-file-compression string deflate The algorithm used for compressing chunks in regions.

Can be deflate, lz4, or none.

Chunks are not automatically recompressed when changed.

require-resource-pack boolean false Whether players are disconnected if they decline to use the resource pack.
resource-pack string blank The resource pack download URL.

The player may choose to download the resource pack when joining.

If this is empty, no resource pack is provided. The resource pack may not be larger than 250 MiB. Note that download success or failure is logged by the client, and not by the server.

resource-pack-id UUID in hyphenated hexadecimal format blank An optional UUID for the resource pack set by resource-pack to identify the pack with clients.
resource-pack-prompt string blank

A custom message to be shown on resource pack prompt when require-resource-pack is used.

Can be left empty for a default message. Expects chat component syntax, can contain multiple lines.

resource-pack-sha1 string blank An optional SHA-1 digest of the resource pack, in lowercase hexadecimal.

It is recommended to specify this, because it is used to verify the integrity of the resource pack.

Note: If the resource pack is any different, a yellow message "Invalid sha1 for resource-pack-sha1" appears in the console when the server starts.

server-ip string blank The IP address the server listens on. If empty, the server listens on all available IP addresses.

It is recommended to leave this empty.

server-port integer (1-(2^16 - 2)) 25565 The TCP port number the server listens on.

This port must be forwarded if the server is hosted in a network using NAT (if the player has a home router/firewall).

simulation-distance integer (3-32) 10 The maximum distance from players that living entities may be located in order to be updated by the server, measured in chunks in each direction of the player (radius, not diameter).

If entities are outside of this radius, then they are not ticked by the server and they are not visible to players.

10 is the default/recommended. If the player has major lag, this value is recommended to be reduced.

spawn-monsters boolean true Whether monsters can spawn.
true - Enabled. Monsters appear at night and in the dark.
false - Disabled. No monsters.

This setting has no effect if difficulty = 0 (peaceful). If difficulty is not = 0, a monster can still spawn from a monster spawner.

If the player has major lag, it is recommended to turn this off/set to false.

spawn-protection integer 16 The side length of the square spawn protection area as 2x+1.

Setting this to 0 disables the spawn protection. A value of 1 protects a 3×3 square centered on the spawn point. 2 protects 5×5, 3 protects 7×7, etc. This option is not generated on the first server start and appears when the first player joins. If there are no ops set on the server, the spawn protection is disabled automatically as well.

sync-chunk-writes boolean true Whether to enable synchronous chunk writes.
text-filtering-config blank Configuration for the chat filtering mechanism.

Used internally by Realms, not announced by Mojang and likely not meant to be used outside it.

text-filtering-version 0 The version of the configuration format used for text-filtering-config.

Valid values are 0 and 1.

use-native-transport boolean true Whether to use optimized packet sending/receiving on Linux.
true - Enabled. Enable Linux packet sending/receiving optimization.
false - Disabled. Disable Linux packet sending/receiving optimization.
view-distance integer (3-32) 10 The amount of world data the server sends the client, measured in chunks in each direction of the player (radius, not diameter).

This determines the server-side viewing distance.

10 is the default/recommended. If the player has major lag, this value is recommended to be reduced.

white-list boolean false Whether the whitelist is enabled.

With a whitelist enabled, users not on the whitelist cannot connect. Intended for private servers, such as those for real-life friends or strangers carefully selected via an application process, for example.

false - No white list is used.
true - The file whitelist.json is used to generate the white list.

Note: Ops are automatically whitelisted, and there is no need to add them to the whitelist.

Bedrock Edition

server.properties is located in the current working directory of the server process. That means if the server is started from some directory, the file will be also placed in that directory.

A default file is shipped with the server software. The file shipped with Windows builds has CRLF line endings, while the one shipped with Linux builds has LF line endings.

The file is UTF-8 encoded text using syntax inspired by the Properties syntax used in Java Edition. It can be edited with a text editor, such as Notepad, TextEdit, Kate, nano or Vim.

The syntax generally consists of line (LF or CRLF) separated key-value pairs, separated by an = sign. The key is the setting identifier, and the value is used for that setting. Lines starting with # are comments and are ignored.

Default content

The following default server.properties comes with the server software as of 1.21.92.1:

server-name=Dedicated Server
# Used as the server name
# Allowed values: Any string without semicolon symbol.

gamemode=survival
# Sets the game mode for new players.
# Allowed values: "survival", "creative", or "adventure"

force-gamemode=false
# force-gamemode=false (or force-gamemode is not defined in the server.properties)
# prevents the server from sending to the client gamemode values other
# than the gamemode value saved by the server during world creation
# even if those values are set in server.properties after world creation.
#
# force-gamemode=true forces the server to send to the client gamemode values
# other than the gamemode value saved by the server during world creation
# if those values are set in server.properties after world creation.

difficulty=easy
# Sets the difficulty of the world.
# Allowed values: "peaceful", "easy", "normal", or "hard"

allow-cheats=false
# If true then cheats like commands can be used.
# Allowed values: "true" or "false"

max-players=10
# The maximum number of players that can play on the server.
# Allowed values: Any positive integer

online-mode=true
# If true then all connected players must be authenticated to Xbox Live.
# Clients connecting to remote (non-LAN) servers will always require Xbox Live authentication regardless of this setting.
# If the server accepts connections from the Internet, then it's highly recommended to enable online-mode.
# Allowed values: "true" or "false"

allow-list=false
# If true then all connected players must be listed in the separate allowlist.json file.
# Allowed values: "true" or "false"

server-port=19132
# Which IPv4 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

server-portv6=19133
# Which IPv6 port the server should listen to.
# Allowed values: Integers in the range [1, 65535]

enable-lan-visibility=true
# Listen and respond to clients that are looking for servers on the LAN. This will cause the server
# to bind to the default ports (19132, 19133) even when `server-port` and `server-portv6`
# have non-default values. Consider turning this off if LAN discovery is not desirable, or when
# running multiple servers on the same host may lead to port conflicts.
# Allowed values: "true" or "false"

view-distance=32
# The maximum allowed view distance in number of chunks.
# Allowed values: Positive integer equal to 5 or greater.

tick-distance=4
# The world will be ticked this many chunks away from any player.
# Allowed values: Integers in the range [4, 12]

player-idle-timeout=30
# After a player has idled for this many minutes they will be kicked. If set to 0 then players can idle indefinitely.
# Allowed values: Any non-negative integer.

max-threads=8
# Maximum number of threads the server will try to use. If set to 0 or removed then it will use as many as possible.
# Allowed values: Any positive integer.

level-name=Bedrock level
# Allowed values: Any string without semicolon symbol or symbols illegal for file name: /\n\r\t\f`?*\\<>|\":

level-seed=
# Use to randomize the world
# Allowed values: Any string

default-player-permission-level=member
# Permission level for new players joining for the first time.
# Allowed values: "visitor", "member", "operator"

texturepack-required=false
# Force clients to use texture packs in the current world
# Allowed values: "true" or "false"

content-log-file-enabled=false
# Enables logging content errors to a file
# Allowed values: "true" or "false"

compression-threshold=1
# Determines the smallest size of raw network payload to compress
# Allowed values: 0-65535

compression-algorithm=zlib
# Determines the compression algorithm to use for networking
# Allowed values: "zlib", "snappy"

server-authoritative-movement-strict=false
# Set at true to be more strict toward the Player position and be less permissive in accepting the client info.
# This means clients will receive more position corrections. This will impact Player around moving block if there is high latency

server-authoritative-dismount-strict=false
# Set at true to be more strict toward the Player dismount position.
# This means clients will receive a correction on their dismount position in higher latency situation

server-authoritative-entity-interactions-strict=false
# Set at true to be more strict toward the Entity interactions.
# This means clients will be more strict towards Entity interactions. This will impact Players interacting with each other in higher latency situations.

player-position-acceptance-threshold=0.5
# This is the tolerance of discrepancies between the Client and Server Player position. This helps prevent sending corrections too frequently
# for non-cheating players in cases where the server and client have different perceptions about when a motion started. For example damage knockback or being pushed by pistons.
# The higher the number, the more tolerant the server will be before asking for a correction. Values beyond 1.0 have increased chances of allowing cheating.

player-movement-action-direction-threshold=0.85
# The amount that the player's attack direction and look direction can differ.
# Allowed values: Any value in the range of [0, 1] where 1 means that the
# direction of the players view and the direction the player is attacking
# must match exactly and a value of 0 means that the two directions can
# differ by up to and including 90 degrees.

server-authoritative-block-breaking-pick-range-scalar=1.5
# If true, the server will compute block mining operations in sync with the client so it can verify that the client should be able to break blocks when it thinks it can.

chat-restriction=None
# Allowed values: "None", "Dropped", "Disabled"
# This represents the level of restriction applied to the chat for each player that joins the server.
# "None" is the default and represents regular free chat.
# "Dropped" means the chat messages are dropped and never sent to any client. Players receive a message to let them know the feature is disabled.
# "Disabled" means that unless the player is an operator, the chat UI does not even appear. No information is displayed to the player.

disable-player-interaction=false
# If true, the server will inform clients that they should ignore other players when interacting with the world. This is not server authoritative.

client-side-chunk-generation-enabled=true
# If true, the server will inform clients that they have the ability to generate visual level chunks outside of player interaction distances.

block-network-ids-are-hashes=true
# If true, the server will send hashed block network ID's instead of id's that start from 0 and go up.  These id's are stable and won't change regardless of other block changes.

disable-persona=false
# Internal Use Only

disable-custom-skins=false
# If true, disable players customized skins that were customized outside of the Minecraft store assets or in game assets.  This is used to disable possibly offensive custom skins players make.

server-build-radius-ratio=Disabled
# Allowed values: "Disabled" or any value in range [0.0, 1.0]
# If "Disabled" the server will dynamically calculate how much of the player's view it will generate, assigning the rest to the client to build.
# Otherwise from the overridden ratio tell the server how much of the player's view to generate, disregarding client hardware capability.
# Only valid if client-side-chunk-generation-enabled is enabled

allow-outbound-script-debugging=false
# Allows script debugger 'connect' command and script-debugger-auto-attach=connect mode.

allow-inbound-script-debugging=false
# Allows script debugger 'listen' command and script-debugger-auto-attach=listen mode.

#force-inbound-debug-port=19144
# Locks the inbound (listen) debugger port, if not set then default 19144 will be used. Required when using script-debugger-auto-attach=listen mode.

script-debugger-auto-attach=disabled
# Attempt to attach script debugger at level load, requires that either inbound port or connect address is set and that inbound or outbound connections are enabled.
# "disabled" will not auto attach.
# "connect" server will attempt to connect to debugger in listening mode on the specified port.
# "listen" server will listen to inbound connect attempts from debugger using connect mode on the specified port.

#script-debugger-auto-attach-connect-address=localhost:19144
# When auto attach mode is set to 'connect', use this address in the form host:port. Required for script-debugger-auto-attach=connect mode.

#script-debugger-auto-attach-timeout=0
# Amount of time to wait at world load for debugger to attach.

#script-debugger-passcode=
# VSCode will prompt user for passcode to connect.

#script-watchdog-enable=true
# Enables the watchdog (default = true).

#script-watchdog-enable-exception-handling=true
# Enables watchdog exception handling via the events.beforeWatchdogTerminate event (default = true).

#script-watchdog-enable-shutdown=true
# Enables server shutdown in the case of an unhandled watchdog exception (default = true).

#script-watchdog-hang-exception=true
# Throws a critical exception when a hang occurs, interrupting script execution (default = true).

#script-watchdog-hang-threshold=10000
# Sets the watchdog threshold for single tick hangs (default = 10000 ms).

#script-watchdog-spike-threshold=100
# Sets the watchdog threshold for single tick spikes.
# Warning is disabled if property left unset.

#script-watchdog-slow-threshold=10
# Sets the wachdog threshold for slow scripts over multiple ticks.
# Warning is disabled if property left unset.

#script-watchdog-memory-warning=100
# Produces a content log warning when the combined memory usage exceeds the given threshold (in megabytes).
# Setting this value to 0 disables the warning. (default = 100, max = 2000)

#script-watchdog-memory-limit=250
# Saves and shuts down the world when the combined script memory usage exceeds the given threshold (in megabytes).
# Setting this value to 0 disables the limit. (default = 250, max = 2000)

#diagnostics-capture-auto-start=false
# Starts a diagnostics capture session at level load (default = false)

#diagnostics-capture-max-files=5
# Maximum number of diagnostics capture files to keep before cycling. (default = 5)

#diagnostics-capture-max-file-size=2097152
# Max size in bytes of current diagnostics capture file before system will cycle to a new file. (default = 2097152, 2mb)

#disable-client-vibrant-visuals=true
# If true, the server will tell clients to use the next best available graphics setting instead of Vibrant Visuals.

Keys

Option name Possible values Default value Description
allow-cheats true, false false If true, players can use cheats like commands can be used.
allow-inbound-script-debugging true, false false Allows script debugger 'listen' commands and script-debugger-auto-attach=listen mode.
allow-list true, false false If true then all connected players must be listed in the separate allowlist.json file.
allow-outbound-script-debugging true, false false Allows script debugger 'connect' commands and script-debugger-auto-attach=connect mode.
block-network-ids-are-hashes true, false true If true, the server will send hashed block network ID's instead of id's that start from 0 and go up. These id's are stable and won't change regardless of other block changes.
chat-restriction None, Dropped, Disabled None This represents the level of restriction applied to the chat for each player that joins the server. "None" is the default and represents regular free chat. "Dropped" means the chat messages are dropped and never sent to any client. Players receive a message to let them know the feature is disabled. "Disabled" means that unless the player is an operator, the chat UI does not even appear. No information is displayed to the player.
client-side-chunk-generation-enabled true, false true If true, the server will inform clients that they have the ability to generate visual level chunks outside of player intraction distances.
compression-algorithm zlib, snappy zlib Determines the compression algorithm to use for networking.
compression-threshold Integers in the range [1, 65535] 1 Determines the smallest size of raw network payload to compress.
content-log-file-enabled true, false false Enables logging content errors to a file.
default-player-permission-level visitor, member, operator member Permission level for new players joining for the first time.
diagnostics-capture-auto-start true, false false Starts a diagnostics capture session at level load.
diagnostics-capture-max-files Any positive integer 5 Maximum number of diagnostics capture files to keep before cycling.
diagnostics-capture-max-file-size Any positive integer 2097152 Max size in bytes of current diagnostics capture before system will cycle to a new file.
difficulty peaceful, easy, normal, hard easy Sets the difficulty of the world.

Values correlate to the integer gamemodes as follows:

peaceful (0)

easy (1)

normal (2)

hard (3)

disable-client-vibrant-visuals true, false true If true, the server will tell clients to use the next best available graphics setting instead of Vibrant Visuals.
disable-custom-skins true, false false If true, disable players customized skins that were customized outsode of the Character Creator or Marketplace skin packs. This is used to dissable possibly offensive custom skins players make.
disable-persona true, false false This option is only used internally.​
disable-player-interaction true, false false If true, the server will inform clients that they should ignore other players when interacting with the world. This is not server authoritative.
enable-lan-visibility true, false true Listen and respond to clients that are looking for servers on the LAN. This will cause the server to bind to the default ports (19132, 19133) even when server-port and server-portv6 have non-default values.
force-gamemode true, false false False (or not defined) prevents the server from sending to the client gamemode values other than the gamemode value saved by the server during world creation even if those values are set in server.properties after world creation. True forces the server to send to the client gamemode values other than the gamemode value saved by the server during world creation if those values are set in server.properties after world creation.
force-inbound-debug-port Integers in the range [1, 65535] 19144 Locks the inbound (listen) debugger port, if not set then default 19144 will be used. Required when using script-debugger-auto-attach=listen mode.
gamemode survival, creative, adventure survival Sets the game mode for new players. This is applied at the time the player first joins the server. Changing this setting does not change the gamemode for existing players.

Values correlate to the integer gamemodes as follows:

survival (0)

creative (1)

adventure (2)

level-name Any string Bedrock level The "level-name" value is used as the world name and its folder name in /worlds. The player may also copy their saved game folder here, and change the name to the same as that folder's to load it instead. Cannot contain illegal filename characters: /\n\r\t\f`?*\\<>|\":
level-seed Any string Defaults to empty Determines the world seed used to randomly generate the world. If left empty, a seed is chosen at random. After world creation, the world seed is stored in the levels own files and cannot be changed.
max-players Positive integer 10 The maximum number of players that can play on the server. Higher values have performance impact.
max-threads Any integer 8 Maximum number of threads the server tries to use. If set to 0 or removed then it uses as many as possible.
online-mode true, false true If true then all connected players must be authenticated to Xbox Live. Clients connecting to remote (non-LAN) servers will always require Xbox Live authentication regardless of this setting.
player-idle-timeout Any integer 30 After a player has idled for this many minutes they will be kicked. Uf set to 0 then players can idle indefinetely.
player-position-acceptance-threshold Any positive number 0.5 This is the tolerance of discrepancies between the client and server player position. This helps prevent sending corrections too frequently for non-cheating players in cases where the server and client have different perceptions about when a motion started, for example damage knockback or being pushed by pistons. The higher the number, the more tolerant the server will be before asking for a correction. Values beyond 1.0 have increased chances of allowing cheating.
player-movement-action-direction-threshold Any value in the range [0, 1] 0.85 The amount that the player's attack direction and look direction can differ. A value of 1 means that the direction of the players view and the direction the player is attacking must match exactly and a value of 0 means that the two directions can differ by up to and including 90 degrees.
script-debugger-auto-attach disabled, connect, listen disabled Attempt to attach script debugger at level load, requires that either inbound port or connect address is set and that inbound or outbound connections are enabled. "disabled" will not auto attach. "connect" server will attempt to connect to debugger in listening mode on the specified port. "listen" server will listen to inbound connect attempts from debugger using connect mode on the specified port.
script-debugger-auto-attach-connect-address host:port with port an integer in the range [1, 65535] localhost:19144 When auto attach mode is set to 'connect', use this address in the form host:port. Required for script-debugger-auto-attach=connect mode.
script-debugger-auto-attach-timeout Integer in the range [0, 10] 0 Amount of time to wait at world load for debugger to attach.
script-debugger-passcode Can be anything Defaults to empty VSCode will prompt user for passcode to connect
script-watchdog-enable true, false true Enables the watchdog.
script-watchdog-enable-exception-handling true, false true Enables watchdog exception handling via the events.beforeWatchdogTerminate event.
script-watchdog-enable-shutdown true, false true Enables server shutdown in the case of an unhandled watchdog exception.
script-watchdog-hang-exception true, false true Throws a critical exception when a hang occurs, interrupting script execution.
script-watchdog-hang-threshold Integer in the range [3000, 20000] 10000 Sets the watchdog threshold for single tick hangs.
script-watchdog-memory-limit Integer in the range [0-2000] 250 Saves and shuts dow the world when the combined script memory usage exceeds the given threshold (in megabytes). Setting this value to 0 disables the limit.
script-watchdog-memory-warning Integer in the range [0-2000] 100 Produces a content log warning when the combined memory usage exceeds the given threshold (in megabytes). Setting this value to 0 disables the warning.
script-watchdog-slow-threshold Integer in the range [5, 50] 10 Sets the watchdog threshold for slow scripts over multiple ticks. Warning is disabled if property left unset.
script-watchdog-spike-threshold Integer in the range [50, 500] 100 Sets the watchdog threshold for single tick spikes. Warning is disabled if property left unset.
server-authoritative-block-breaking-pick-range-scalar true, false false If true, the server computes block mining operations in sync with the client so it can verify that the client should be able to break blocks when it thinks it can.
server-authoritative-dismount-strict true, false false Set at true to be more strict toward the player dismount position. This means clients will receive a correction on their dismount position in higher latency situation.
server-authoritative-entity-interactions-strict true, false false Set at true to be more strict toward the entity interactions. This will impact players interacting with each other in higher latency situations.
server-authoritative-movement-strict client-auth, server-auth, server-auth-with-rewind server-auth Enables server authoritative movement. If server-auth, the server replays local user input on the server and sends down corrections when the client's position doesn't match the server's. If "server-auth-with-rewind" is enabled and the server sends a correction, the clients are instructed to rewind time back to the correction time, apply the correction, then replay all the player's inputs since then. This results in smoother and more frequent corrections.
server-build-radius-ratio Disabled or any value in the range [0.0, 1.0] Disabled If "Disabled" the server will dynamically calculate how much of the player's view it will generate, assigning the rest to the client to build. Otherwise from the overridden ratio tell the server how much of the player's view to generate, disregarding client hardware capability. Only valid if client-side-chunk-generation-enabled is enabled.
server-name Any string Dedicated Server This is the server name shown in the in-game play screen when connected via LAN, and in the pause menu. Cannot contain a ":" (colon).
server-port Integers in the range [1, 65535] 19132 Which IPv4 port the server should listen to.
server-portv6 Integers in the range [1, 65535] 19133 Which IPv6 port the server should listen to.
texturepack-required true, false false Force clients to use texture packs in the current world
tick-distance An integer in the range [4, 12] 4 The world is ticked this many chunks away from any player. Higher values have performance impact.
view-distance Any positive integer greater than or equal to 5 32 The maximum allowed view distance in number of chunks. Higher values have performance impact.

Java Edition Classic

BlockSprite rose.png: Sprite image for rose in Minecraft
This section describes content that has been removed from the game.
 
This feature was present in earlier versions of Java Edition, but has since been removed.
server.properties in early Classic.
Key Type Default Value Description
admin-slot boolean false Allow ops to join even if the server is full.
grow-trees boolean Whether or not the server allows planted saplings to grow into trees.
true - the server allows saplings to grow into trees.
false - the server does not allow saplings to grow into trees.
max-connections integer (1-3) The max number of connections the server accepts from the same IP address.

Note: If set higher than 3, it is changed back to 3.

max-players integer (0-256) The max numbers of players that can play on the server at the same time. Note that if more players are on the server it uses more resources. Note also, admin connections are not counted against the max players.
motd string MOTD is short for Message of the day, though the player does not need to change it every day. The MOTD is displayed when people join the server.
public boolean Whether the server should be displayed in the server list, or not.
true - The server appears in the server list - anyone can see it.
false - Only people with the URL that can be found in externalurl.txt and people who know the IP address and port can join the server
server-name string The name of the server. This is displayed in the server list and when someone is joining the server
  • A single line of text. Characters such as ' (apostrophe) may need to be escaped by adding a backslash before them.
verify-names boolean true If enabled, the server ensures that the client is logged in with the same IP address seen on Minecraft.net. This has caused problems for people trying to play on the same computer they are hosting the server on as the server sees the local IP address (127.0.0.1) while Minecraft.net sees the external IP address. It is recommended that this is enabled unless the player want to play on the player's server from the same computer the player is hosting it on.
true - Enabled. The server checks all names with Minecraft.net
false - Disabled. The server makes sure the IP address matches

History

This section is missing information about: the first introduction of many settings.
 
Please expand the section to include this information. Further details may exist on the talk page.
Java Edition Classic
server 1.2Currently earliest archived version.
Current options include port, server-name, max-players, motd, public.
server 1.3Added verify-names, which ensures that the client is logged in with the same IP address seen on Minecraft.net
server 1.5Added max-connections, which limits the maximum connections from one IP address.
server 1.9.1Added grow-trees, which won't grow trees unless set to true.
server 1.10Added a warning when verify-names was disabled.
Added admin-slot, which won't let non-admins in if the player count is almost reached.
Java Edition Alpha
server 0.2.0Added monsters option, if set to true it enables monsters.
server 0.2.4Added no-animals option, if set to true it disables animals.
server 0.2.5Added pvp option to disable or enable Player vs Player combat.
Renamed monsters to spawn-monsters and set the default to true
Renamed no-animals to spawn-animals.
Java Edition Beta
1.6Added allow-nether which if set to false denies entry to the nether.
Added view-distance which sets the maximum view distance.
Java Edition
1.0.0Beta 1.9 Prerelease 4Added debug, enable-query, enable-rcon, query.port, rcon.password and rcon.port.
1.111w49aAdded spawn-npcs, which specifies whether villagers can spawn.
12w01aAdded level-type.
releaseAdded generate-structures.
1.2.112w07aAdded max-build-height.
1.3.112w30aAdded snooper-enabled. It specified whether to send snoop data regularly to http://snoop.minecraft.net.
1.4.212w40aAdded spawn-protection.
1.513w05aSetting spawn-protection to 0 now disables spawn protection, instead of protecting a 1×1 area (MC-666).
1.7.213w38aAdded option to disable achievement announcements in chat.
1.814w17aAdded generator-settings.
1.814w28aAdded option to customize network compression.
1.814w32aSetting max-tick-time to 1 now disables the watchdog entirely.
1.1116w38aAdded prevent-proxy-connections.
1.1217w18aRemoved option announce-player-achievements as it was replaced by the gamerule announceAdvancements.
1.13?customized option for level-type is now the same as default. Before it was used to create a completely custom world.
1.1418w48adifficulty and gamemode settings now accept string names; integer values are still allowed as legacy option.
1.14.4Pre-Release 4Added function-permission-level option that controls what permission level functions have.
1.15Pre-Release 5Increased server resourcepack size limit to 100 MiB, used to be 50 MiB.
1.15.2?The ":" and "=" characters no longer need to be escaped with a backslash.
1.1620w14aAdded sync-chunk-writes option to disable the new synchronous chunk writing.
20w16aAdded enable-jmx-monitoring option that exposes an MBean that exposes the tick times in milliseconds.
20w18aAdded enable-status and entity-broadcast-range-percentage options.
1.16?Removed the buffet option for level-type. Was the same as default unless generator-settings was set.
Removed the default_1_1 option for level-type. Was the same as default, but counted as a different world type.
Removed the customized option for level-type.
1.16.220w28aAdded rate-limit to set the packet rate-limit for a user.
1.16.4Pre-release 1Added text-filtering-config.
1.1720w45aAdded require-resource-pack which forces users to accept the resource pack.
20w49aRemoved the max-build-height setting.
21w15aAdded resource-pack-prompt for custom message to be shown on resource pack prompt.
1.1821w38aAdded simulation-distance for control the range of entities could be updated.
21w43aRemoved snooper-enabled.
21w44aAdded hide-online-players, which when set to "True", does not send a player list on status requests.
Release Candidate 1Increased server resourcepack size limit to 250 MiB.
1.1922w11aAdded max-chained-neighbor-updates to limit the amount of consecutive neighbor updates before skipping additional ones.
level-type's now accept world preset ID instead.
22w17aAdded enforce-secure-profile, which when set to "True", prevents a player without a Mojang-signed public key from connecting to a server.
22w19aAdded previews-chat, which when set to "True", enables chat preview.
Added test-rainbow-chat.
Pre-release 1Removed test-rainbow-chat.
1.19.322w42aAdded initial-enabled-packs and initial-disabled-packs.
Removed previews-chat.
1.20pre1The file is now read in UTF-8 initially, with previous encoding (ISO 8859-1/Latin 1) as a fallback.
File is now written with UTF-8 encoding.
1.20.223w31aAdded new log-ips option (defaults to true).
When set to false, prevents player IP addresses from being included in the log when players join the game.
1.20.3Pre-Release 1Added resource-pack-id which defaults to empty. This is a unique id to identify the resource pack set with resource-pack.
1.20.524w04aAdded region-file-compression.
1.20.524w05aAdded none as an option to region-file-compression.
1.2124w21aAdded bug-report-link.
1.21.224w33aAdded pause-when-empty-seconds (default 60)
Removed spawn-animals, which specified whether animals can spawn, and spawn-npcs.
?Added text-filtering-version (default 0).
Bedrock Edition
1.6.1Initial release of Bedrock Dedicated Server.
Current options include server-name, gamemode, difficulty, allow-cheats, max-players, online-mode, white-list, server-port, server-port-v6, view-distance, tick-distance, player-idle-timeout, max-threads, level-name, level-seed, default-player-permission, texturepack-required.
1.7.0Renamed default-player-permission to default-player-permission-level.
1.12.0.28Added content-log-file-enabled which enables logging content errors to a file.
1.13.0Added compression-threshold, server-authoritative-movement, player-movement-score-threshold, player-movement-distance-threshold, player-movement-duration-threshold-in-ms, correct-player-movement.
1.16.100Changed default server-authoritative-movement, from "true" to "server-auth" (false is now "client-auth")
1.16.210Added new properties force-gamemode and server-authoritative-block-breaking, as well as server-auth-with-rewind option to server-authoritative-movement.
1.18.10Renamed white-list to allow-list.

External links

  • The website https://server.properties/ shows an example of Java Edition server.properties configuration, with additional comments written on the bottom.

Navigation