server.properties

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:
- If the file already exists, existing values are copied from it. Comments are ignored.
- Any missing keys or keys with invalid values are set to the defaults.
- 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 propertiesis 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 yyyyin Java'sDateTimeFormatterpattern 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.
- On the first line, a comment
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.
|
| 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.
|
| allow-nether | boolean | true | Whether players can travel 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. |
| bug-report-link | string | blank | The URL for the report_bug server link.
If empty, the link is not sent. |
| 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.
|
| 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.
|
| 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.
|
| 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. |
| generate-structures | boolean | true | Whether structures (such as villages) are generated.
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 |
| 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 (
|
| 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 |
| 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.
|
| 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.
|
| 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.
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.
|
| 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.
|
| 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.
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 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 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.
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.
|
| 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.
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

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.
| |
| 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.
| |
| server-name | string | The name of the server. This is displayed in the server list and when someone is joining the server
| |
| 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.
|
History
| Java Edition Classic | |||||||
|---|---|---|---|---|---|---|---|
| server 1.2 | Currently earliest archived version. | ||||||
Current options include port, server-name, max-players, motd, public. | |||||||
| server 1.3 | Added verify-names, which ensures that the client is logged in with the same IP address seen on Minecraft.net | ||||||
| server 1.5 | Added max-connections, which limits the maximum connections from one IP address. | ||||||
| server 1.9.1 | Added grow-trees, which won't grow trees unless set to true. | ||||||
| server 1.10 | Added 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.0 | Added monsters option, if set to true it enables monsters. | ||||||
| server 0.2.4 | Added no-animals option, if set to true it disables animals. | ||||||
| server 0.2.5 | Added 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.6 | Added 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.0 | Beta 1.9 Prerelease 4 | Added debug, enable-query, enable-rcon, query.port, rcon.password and rcon.port. | |||||
| 1.1 | 11w49a | Added spawn-npcs, which specifies whether villagers can spawn. | |||||
| 12w01a | Added level-type. | ||||||
| release | Added generate-structures. | ||||||
| 1.2.1 | 12w07a | Added max-build-height. | |||||
| 1.3.1 | 12w30a | Added snooper-enabled. It specified whether to send snoop data regularly to http://snoop.minecraft.net. | |||||
| 1.4.2 | 12w40a | Added spawn-protection. | |||||
| 1.5 | 13w05a | Setting spawn-protection to 0 now disables spawn protection, instead of protecting a 1×1 area (MC-666). | |||||
| 1.7.2 | 13w38a | Added option to disable achievement announcements in chat. | |||||
| 1.8 | 14w17a | Added generator-settings. | |||||
| 1.8 | 14w28a | Added option to customize network compression. | |||||
| 1.8 | 14w32a | Setting max-tick-time to 1 now disables the watchdog entirely. | |||||
| 1.11 | 16w38a | Added prevent-proxy-connections. | |||||
| 1.12 | 17w18a | Removed 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.14 | 18w48a | difficulty and gamemode settings now accept string names; integer values are still allowed as legacy option. | |||||
| 1.14.4 | Pre-Release 4 | Added function-permission-level option that controls what permission level functions have. | |||||
| 1.15 | Pre-Release 5 | Increased 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.16 | 20w14a | Added sync-chunk-writes option to disable the new synchronous chunk writing. | |||||
| 20w16a | Added enable-jmx-monitoring option that exposes an MBean that exposes the tick times in milliseconds. | ||||||
| 20w18a | Added 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.2 | 20w28a | Added rate-limit to set the packet rate-limit for a user. | |||||
| 1.16.4 | Pre-release 1 | Added text-filtering-config. | |||||
| 1.17 | 20w45a | Added require-resource-pack which forces users to accept the resource pack. | |||||
| 20w49a | Removed the max-build-height setting. | ||||||
| 21w15a | Added resource-pack-prompt for custom message to be shown on resource pack prompt. | ||||||
| 1.18 | 21w38a | Added simulation-distance for control the range of entities could be updated. | |||||
| 21w43a | Removed snooper-enabled. | ||||||
| 21w44a | Added hide-online-players, which when set to "True", does not send a player list on status requests. | ||||||
| Release Candidate 1 | Increased server resourcepack size limit to 250 MiB. | ||||||
| 1.19 | 22w11a | Added 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. | |||||||
| 22w17a | Added enforce-secure-profile, which when set to "True", prevents a player without a Mojang-signed public key from connecting to a server. | ||||||
| 22w19a | Added previews-chat, which when set to "True", enables chat preview. | ||||||
Added test-rainbow-chat. | |||||||
| Pre-release 1 | Removed test-rainbow-chat. | ||||||
| 1.19.3 | 22w42a | Added initial-enabled-packs and initial-disabled-packs. | |||||
Removed previews-chat. | |||||||
| 1.20 | pre1 | The 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.2 | 23w31a | Added 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.3 | Pre-Release 1 | Added resource-pack-id which defaults to empty. This is a unique id to identify the resource pack set with resource-pack. | |||||
| 1.20.5 | 24w04a | Added region-file-compression. | |||||
| 1.20.5 | 24w05a | Added none as an option to region-file-compression. | |||||
| 1.21 | 24w21a | Added bug-report-link. | |||||
| 1.21.2 | 24w33a | Added 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.1 | Initial 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.0 | Renamed default-player-permission to default-player-permission-level. | ||||||
| 1.12.0.28 | Added content-log-file-enabled which enables logging content errors to a file. | ||||||
| 1.13.0 | Added compression-threshold, server-authoritative-movement, player-movement-score-threshold, player-movement-distance-threshold, player-movement-duration-threshold-in-ms, correct-player-movement. | ||||||
| 1.16.100 | Changed default server-authoritative-movement, from "true" to "server-auth" (false is now "client-auth") | ||||||
| 1.16.210 | Added new properties force-gamemode and server-authoritative-block-breaking, as well as server-auth-with-rewind option to server-authoritative-movement. | ||||||
| 1.18.10 | Renamed white-list to allow-list. | ||||||
External links
- The website https://server.properties/ shows an example of Java Edition
server.propertiesconfiguration, with additional comments written on the bottom.
| |||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
| Editions |
| ||||||
|---|---|---|---|---|---|---|---|
| Development |
| ||||||
| Technical |
| ||||||
| Multiplayer | |||||||
| Exclusive features |
| ||||||
| Removed | |||||||