Skip to main content
The server.properties file contains the standard Minecraft server configuration options. This file is located in your server’s root directory and is shared across all server implementations.

Location

server-root/
└── server.properties

Core Settings

server-port
integer
default:"25565"
The port number the server listens on for incoming connections.
server-ip
string
default:""
The IP address the server should bind to. Leave empty to bind to all available interfaces.
max-players
integer
default:"20"
Maximum number of players that can connect simultaneously.
network-compression-threshold
integer
default:"256"
Packets larger than this size (in bytes) will be compressed. Set to -1 to disable compression.
Lower values increase CPU usage but reduce bandwidth. Higher values do the opposite.
online-mode
boolean
default:"true"
Whether to authenticate players with Mojang’s authentication servers.
Only disable this if you’re using a proxy with its own authentication (BungeeCord/Velocity).
level-name
string
default:"world"
The name of the world folder. The server will create this folder if it doesn’t exist.
level-seed
string
default:""
The seed for world generation. Leave empty for a random seed.
level-type
string
default:"minecraft:normal"
The type of world to generate. Options:
  • minecraft:normal - Standard world generation
  • minecraft:flat - Superflat world
  • minecraft:large_biomes - Larger biome sizes
  • minecraft:amplified - Extreme terrain generation
generator-settings
string
default:""
JSON settings for custom world generation. Used with custom world types.
allow-nether
boolean
default:"true"
Whether the Nether dimension is enabled.
Paper also provides a global configuration option misc.enable-nether for this setting.
spawn-protection
integer
default:"16"
Radius in blocks around spawn where only operators can place/break blocks. Set to 0 to disable.
difficulty
string
default:"easy"
The world difficulty level: peaceful, easy, normal, or hard.
hardcore
boolean
default:"false"
If true, players are banned upon death and the difficulty is locked to hard.
pvp
boolean
default:"true"
Enable player versus player combat.
gamemode
string
default:"survival"
Default gamemode for new players: survival, creative, adventure, or spectator.
force-gamemode
boolean
default:"false"
Force players to join in the default gamemode.
max-world-size
integer
default:"29999984"
Maximum radius of the world border in blocks. The diameter will be 2x this value.
view-distance
integer
default:"10"
The number of chunks sent to players (radius around the player). Higher values increase server load.
For better performance, use values between 6-10. Players can set lower values in their client.
simulation-distance
integer
default:"10"
The number of chunks around players where mobs spawn and entities tick. Cannot exceed view-distance.
entity-broadcast-range-percentage
integer
default:"100"
Percentage to scale entity tracking range. Lower values reduce bandwidth but may cause entities to disappear.
resource-pack
string
default:""
URL to a resource pack. Players will be prompted to download it.
resource-pack-sha1
string
default:""
SHA-1 hash of the resource pack for verification.
resource-pack-prompt
string
default:""
Custom message shown to players when prompted to download the resource pack.
require-resource-pack
boolean
default:"false"
If true, players must accept the resource pack to join the server.
max-tick-time
integer
default:"60000"
Maximum time (in milliseconds) a single tick can take before the server watchdog triggers.
Set to -1 to disable the watchdog. Only do this if you understand the implications.
sync-chunk-writes
boolean
default:"true"
Whether chunk writes should be synchronous. Disabling may improve performance but risks data loss.
enable-command-block
boolean
default:"false"
Enable command blocks on the server.
function-permission-level
integer
default:"2"
Permission level for functions. Levels: 1-4 (1=bypass spawn protection, 2=use command blocks, 3=operator commands, 4=all commands).
motd
string
default:"A Minecraft Server"
Message of the day displayed in the server list. Supports color codes with §.
server-name
string
default:"Unknown Server"
The name of the server shown in various contexts.
enable-status
boolean
default:"true"
Whether the server appears in the server list and responds to status requests.
hide-online-players
boolean
default:"false"
Hide player list from server queries.
enforce-secure-profile
boolean
default:"true"
Require players to have signed chat messages (1.19.1+).
prevent-proxy-connections
boolean
default:"false"
Block players connecting through proxies.
Do not enable if using BungeeCord or Velocity!
enforce-whitelist
boolean
default:"false"
Kick players not on the whitelist immediately.
white-list
boolean
default:"false"
Enable the whitelist system.
enable-jmx-monitoring
boolean
default:"false"
Enable JMX monitoring for advanced server metrics.
enable-rcon
boolean
default:"false"
Enable remote console (RCON) for server management.
rcon.port
integer
default:"25575"
Port for RCON connections.
rcon.password
string
default:""
Password for RCON authentication.
Use a strong password and restrict access to trusted IPs only!
broadcast-rcon-to-ops
boolean
default:"true"
Send RCON output to online operators.
broadcast-console-to-ops
boolean
default:"true"
Send console command output to online operators.

Example Configuration

# Network
server-port=25565
max-players=100
online-mode=true
network-compression-threshold=256

# World
level-name=world
difficulty=normal
gamemode=survival
allow-nether=true

# Performance
view-distance=8
simulation-distance=8
max-tick-time=60000
sync-chunk-writes=true

# Server Info
motd=Welcome to my Paper server!
enable-status=true

Paper Global Config

Server-wide Paper-specific settings

World Configuration

Per-world Paper configuration
Changes to server.properties require a server restart to take effect, except for certain settings that can be changed with commands (like difficulty).

Build docs developers (and LLMs) love