Skip to content

server.properties

Build a Minecraft server.properties file with presets, a short explanation for every setting and warnings when a value looks wrong.

Start from

Pick a preset, then adjust anything below

Basics

What players see first

3 changed
Survival SMP
Whitelisted survival

Two lines under the server name in the multiplayer list. & colour codes are turned into §, and symbols are escaped for you.motd

Players allowed online at once. Ops on the whitelist can bypass it via ops.json.max-players

Mode for new players.gamemode

Mob damage, hunger and which mobs spawn.difficulty

World

Generation and the map itself

1 changed

Folder the world is loaded from or created in.level-name

Only used when the world is first created.level-seed

Preset used when the world is first generated.level-type

JSON for superflat or single-biome worlds. Leave as {} for defaults.generator-settings

World border radius in blocks.max-world-size

Radius around spawn that only ops can edit. 0 turns it off. Ignored while there are no ops.spawn-protection

Gameplay

Rules while playing

Kicks AFK players after this many minutes. 0 never kicks.player-idle-timeout

Permission level datapack functions run with.function-permission-level

Players & access

Who can join and what they can do

1 changed

Default level given by /op.op-permission-level

Time window the server uses to spot chat spam.chat-spam-threshold-seconds

Time window the server uses to spot command spam.command-spam-threshold-seconds

Performance

Distances, ticking and saving

1 changed

Chunks sent to players in each direction. The biggest RAM and bandwidth lever.view-distance

Chunks around players where mobs, crops and redstone tick. Biggest CPU lever.simulation-distance

How far away entities are sent to clients, as a percent of the default.entity-broadcast-range-percentage

Stops ticking after the server has been empty this long. 0 never pauses.pause-when-empty-seconds

Crashes the server if one tick takes longer than this. -1 disables the watchdog.max-tick-time

Compression for newly written chunks.region-file-compression

Limit on consecutive block updates before skipping. Stops lag machines.max-chained-neighbor-updates

Network

Ports, query, RCON and packets

Leave empty unless your host tells you otherwise.server-ip

TCP port players connect to.server-port

Packets bigger than this many bytes are compressed. -1 turns it off (proxy on the same machine).network-compression-threshold

Kicks players sending more packets per second than this. 0 is no limit.rate-limit

UDP port for query.query.port

TCP port for RCON.rcon.port

Required for RCON. Use a long random string.rcon.password

Advanced

Resource packs, datapacks and the rest

Direct download link to a .zip.resource-pack

Lets clients cache the pack and detect changes.resource-pack-sha1

Optional. Identifies the pack on the client.resource-pack-id

Custom message on the download prompt (JSON text).resource-pack-prompt

Comma-separated, applied when the world is created.initial-enabled-packs

Comma-separated, applied when the world is created.initial-disabled-packs

Shown to players on disconnect screens.bug-report-link

Used by Realms. Leave empty.text-filtering-config

Interface the management API listens on.management-server-host

0 picks a free port.management-server-port

Token clients must send to use the API.management-server-secret

Path to the keystore file.management-server-tls-keystore

Password for the keystore.management-server-tls-keystore-password

How often the management API sends status notifications. 0 is off.status-heartbeat-interval

Since 1.21.9, PvP, the Nether, monster spawning and command blocks are game rules: use /gamerule pvp, allowEnteringNetherUsingPortals, spawnMonsters and enableCommandBlocks.
server.properties
#Minecraft server properties
#Generated by ZCraft Tools (tools.zcraftstudios.com) for Java Edition 26.3 and newer
accepts-transfers=false
allow-flight=false
broadcast-console-to-ops=true
broadcast-rcon-to-ops=true
bug-report-link=
chat-spam-threshold-seconds=10
command-spam-threshold-seconds=10
difficulty=normal
enable-code-of-conduct=false
enable-jmx-monitoring=false
enable-query=false
enable-rcon=false
enable-status=true
enforce-secure-profile=true
enforce-whitelist=true
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
management-server-enabled=false
management-server-host=localhost
management-server-port=0
management-server-secret=
management-server-tls-enabled=true
management-server-tls-keystore=
management-server-tls-keystore-password=
max-chained-neighbor-updates=1000000
max-players=30
max-tick-time=60000
max-world-size=29999984
motd=\u00a7a\u00a7lSurvival SMP\n\u00a77Whitelisted survival
network-compression-threshold=256
online-mode=true
op-permission-level=4
pause-when-empty-seconds=60
player-idle-timeout=0
prevent-proxy-connections=false
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=8
spawn-protection=0
status-heartbeat-interval=0
sync-chunk-writes=true
text-filtering-config=
use-native-transport=true
view-distance=10
white-list=true

Save it as server.properties in the server folder (next to the jar) and restart.

About server.properties

server.properties sits in the server root and is read once at startup, so restart after editing it. Missing keys are filled in with their defaults, and keys the server doesn’t know are ignored. Paper, Purpur and Spigot use the same file and add their own settings in separate YAML files.

Some settings only apply when the world is first created: level-seed, level-type, generator-settings and the initial datapacks. Changing them later has no effect on existing chunks.

In 1.21.9 Mojang moved pvp, allow-nether, spawn-monsters and enable-command-block to game rules. 26.2 added chat-spam-threshold-seconds and command-spam-threshold-seconds, and 26.3 turns white-list on by default for new servers. Pick your version above so the file only contains keys your server reads. The file is read as ISO-8859-1, so the MOTD’s § signs and symbols are written as \u00A7-style escapes.

ZCraft Studios

Want us to set up your server?

Our team installs and configures plugins, sets up game modes, fixes errors and tunes performance. You talk to us directly on Discord.