Skip to content
Current coupon:10% offUse it in your order

server.properties: every Minecraft server setting explained

What each key in server.properties does, which value to pick and when to change it. Includes colored MOTD, resource packs, RCON and the changes in versions 1.21.9 and 26.x.

  • beginner
  • ~20 min
  • Updated 1 Oct 2026

The server.properties file controls the basic behavior of every Minecraft server: difficulty, player count, whitelist, view distance, the description in the server list and remote management. We'll go through every setting in the same order as in the customer area and, for each one, explain what it does, what to set and when to change it.

What you'll need

  • A Minecraft server at StormHost (or another Java server where you have access to the files)
  • The Server settings permission if you don't own the server (RCON also needs the Secrets permission)
  • About 20 minutes

How the file works#

server.properties is a plain text file in the server's main folder. Each line has the form key=value; lines starting with # are comments:

server.propertiesproperties
#Minecraft server properties
motd=Muj server
max-players=20
difficulty=normal
white-list=true
  • Values come in three kinds: switches (true = on, false = off), whole numbers and text.
  • The server only reads the file on startup. Every change takes effect only after a server restart.
  • The server rewrites the file itself on startup. It adds missing keys with their default value. Keys its version doesn't know stay in the file, but they're not used. That's why a key that no longer does anything can remain in the file after an update (see keys moved to game rules).
  • Accented characters in text (MOTD) work. When you save, the customer area converts them to the \u00E1 notation (for á), which Minecraft understands in every version.

Where to change the settings#

In the customer area, open My services, click your Minecraft server and go to the Server properties tab.

  1. Choose the editing mode at the top:

    • Form – settings split into the Game, Players, World, Network and RCON and Advanced groups, with value checks.
    • Text – the whole file as text. Useful for keys the form doesn't know.
  2. Change the values. At the top you'll see a counter such as Unsaved changes: 3.

  3. Click Save and restart. The server restarts and the changes take effect right away.

    If you click only Save, you'll see the message Saved. Changes take effect after a server restart. and the change applies on the next start.

Other buttons and messages:

ElementWhat it does
Add settingThe form only shows keys that are already in the file. Use this button to add a known key that's missing from the file.
Other keys (5) can be edited in text mode.The file contains keys the form doesn't know. Edit them in Text mode.
Discard changesResets the form to the saved state.
ReloadLoads the file from the server again. Use it when a message about the file having changed appears (see Troubleshooting).
Create from defaultsAppears when the server has never run and the file doesn't exist. It creates the file so you can edit it before the first start.

What you can't change

We set the server-ip, server-port and query.port keys automatically based on the server's address and port, so you won't find them in the form. You'll see them in text mode, but if you change them, we put them back when you save and you'll see the message Locked keys were restored to their original value: server-port.

On your own VPS, edit the file with a text editor, for example nano server.properties in the server folder, and then restart the server.

Game group#

SettingWhat it doesRecommended valueWhen to change
motd (Server description)Text under the server name in the server list. Supports colors via § codes (see Colors in the MOTD).A short description, for example §aSurvival §7- §f26.3Any time. About 59 characters fit on one line; longer text may not show in full in the list.
difficulty (Difficulty)Difficulty: peaceful (no monsters), easy, normal, hard. Affects damage from monsters, hunger and some mechanics (for example, zombies can only break doors on hard).normaleasy for kids and beginners, hard for experienced players. Older files use the numbers 0–3, which also work.
gamemode (Game mode)Default mode for new players: survival, creative, adventure (you can't break or place blocks without the right tool), spectator.survivalcreative for a building server, adventure for maps and minigames. Players who have already been on the server keep their mode (unless you turn on force-gamemode).
hardcoreAfter death, players become spectators and can't return to the game. Difficulty is locked to the hardest.falseOnly for “one life” challenges. Applies to a world created with hardcore turned on.
pvpWhether players can hurt each other.truefalse for a friendly survival. From version 1.21.9 this key does nothing; it's set with a game rule (see below).
force-gamemode (Force game mode)Every time players join, they get the default mode from gamemode.falsetrue on lobbies and minigames where nobody should stay in creative.
enable-command-block (Command blocks)Enables command blocks.falsetrue when you build maps with command blocks. From version 1.21.9 this key does nothing; it's set with a game rule.

Players group#

SettingWhat it doesRecommended valueWhen to change
max-players (Maximum players)How many players can be connected at once. Only an operator with "bypassesPlayerLimit": true in ops.json can join a full server.Depends on your plan's performance, for example 20–50The number says nothing about performance. If the server lags when full, lower it or move to a bigger plan.
online-mode (Account authentication)The server checks with Microsoft that the player owns genuine Minecraft and that the name belongs to them.trueOnly on a server behind a proxy (Velocity) that authenticates players itself. See the warning below.
white-list (Whitelist)Only whitelisted players can join.true for a private serverfalse for a public server. From version 26.3 the default is true, so a new server only lets in whitelisted players. Exception: a file created with the Create from defaults button has false.
enforce-whitelist (Enforce whitelist)When the whitelist reloads (for example with the whitelist reload command), players who aren't on it are kicked.true if you use the whitelistHas no effect with white-list=false.
spawn-protection (Spawn protection)A square around the spawn point where only operators can build and break blocks. A value of 16 protects a 33 × 33 block square (2 × 16 + 1). 0 turns protection off. If there are no operators on the server, protection doesn't apply.16 (default)0 when a plugin protects the spawn (for example WorldGuard), or when players should be able to build near spawn too. If players complain that they can't build or break blocks near spawn, this setting is why.
allow-flight (Allow flight)The server won't kick a player who is “flying” in survival.falsetrue when flying is enabled by plugins (/fly), mods or jetpacks. Otherwise players get kicked with Flying is not enabled on this server.
player-idle-timeout (Kick idle players)After how many idle minutes the server kicks a player. 0 = never.0On a busy public server, for example 15, so AFK players don't take up slots.
op-permission-level (Operator permission level)The level a player gets with the op command: 1 bypasses spawn protection, 2 game commands and command blocks, 3 player management (kick, ban, op), 4 everything including stop.4Lower it if you give op to people who shouldn't be able to stop the server. LuckPerms is the better option, though.
hide-online-players (Hide player list)The server list won't show the names of connected players (the count stays).falsetrue if you don't want to reveal who's playing.
enforce-secure-profile (Require signed chat)Only lets in players with a chat signing key from Mojang.truefalse when you use Geyser – otherwise Bedrock players couldn't chat.

online-mode=false

With authentication off, anyone can join under any name, including operators' names. An attacker can log in as you and get all your rights. The customer area shows a warning for this setting. Only turn it off on a server behind a Velocity proxy with forwarding enabled (guide), never on a server that's reachable directly.

You manage the whitelist and operators with commands, covered in detail in Whitelist, operators and bans.

World group#

SettingWhat it doesRecommended valueWhen to change
level-name (World folder)The name of the world folder. If the folder doesn't exist, the server creates a new world. Allowed are letters without accents, digits, spaces, _ and -.worldWhen you want to switch to another world (for example an uploaded one). The old world stays on the disk. See Upload your own world.
level-seed (Seed)The terrain generator seed. Empty = random seed.EmptyWhen you want a specific world (a seed from the internet or from single-player). Only applies to a newly created world. You can get the seed of the running world with the seed command.
level-type (World type)Generator: minecraft:normal, minecraft:flat (flat), minecraft:large_biomes (large biomes), minecraft:amplified (amplified, very demanding), minecraft:single_biome_surface (single biome).minecraft:normalOnly before a new world is created. Has no effect on an existing world.
view-distance (View distance)How many chunks around the player the server sends to the client (radius, 1 chunk = 16 × 16 blocks). Players never see further, even if their game is set higher.10Lower it to 8 or 6 when the server lags. The performance impact is big: 10 means 441 chunks per player, 8 only 289. A sensible range is 3–⁠32.
simulation-distance (Simulation distance)Within what radius (in chunks) around the player entities, redstone, crop growth and farms run.8–10Lower it to 6 when the server lags. Anything further from the player than the simulation reaches stops (farms, redstone, growth). Below 5, most larger farms stop working. It should be less than or equal to view-distance.
allow-nether (Nether)Whether players can go to the Nether through a portal.trueFrom version 1.21.9 this key does nothing; it's set with a game rule.
generate-structures (Generate structures)Villages, temples, strongholds and other structures in newly generated terrain.truefalse for clean terrain (building servers). Doesn't change terrain that's already generated.
spawn-monsters (Monsters)Whether monsters spawn naturally.trueFrom version 1.21.9 this key does nothing; it's set with a game rule.
spawn-npcs (Villagers)Whether villagers spawn.trueFrom version 1.21.2 this key does nothing and has no replacement.
max-world-size (Maximum world size)The radius in blocks from the center where the world border sits. The maximum is 29999984.Leave the defaultTo limit the world, use the worldborder command instead – you can change it while the server runs and it has its own center.

Performance

You save the most performance with view and simulation distance and by pre-generating the world. Details are in Minecraft server performance.

Network and RCON group#

SettingWhat it doesRecommended valueWhen to change
network-compression-threshold (Compression threshold)Packets larger than this many bytes are compressed. -1 turns compression off, 0 compresses everything.256Don't change it. A higher value saves CPU but increases data transfer.
enable-status (Show in the server list)The server answers server list queries (MOTD, player count). With false the server looks offline in the list, but players can still join.truePractically never.
enable-rcon (RCON)Turns on RCON – a remote console over the network (TCP).falseWhen you need to send commands from another program (a Discord bot, an admin tool).
rcon.password (RCON password)The password for connecting to RCON. RCON won't start without a password.A long random password from the password generatorIf you suspect it has leaked.
rcon.port (RCON port)The port RCON listens on. It must be one of the server's additional ports.An additional port from the Network tabWhen you remove or replace the port.
enable-query (Query)Turns on Query (the GameSpy4 protocol over UDP), which websites and tools use to get the list of players and plugins.falseWhen a statistics website requires it. Query answers on the query.port port, which we set automatically.

RCON and Query on the game port

The customer area warns you: RCON and Query need their own port. So always put RCON on an additional server port. Query uses UDP and must not share a port with another UDP program, typically Geyser or a voice chat plugin. If Geyser runs on the game port, don't turn Query on.

How to turn on RCON#

  1. Open the Network tab and, under Additional ports, click Add port. Note the number of the new port.

  2. Open the Server properties tab, Form mode, Network and RCON group.

  3. Turn on Remote console (RCON).

  4. Enter the new port number in RCON port. A port that doesn't belong to the server won't be saved and you'll see the message Use one of the server's ports: ….

  5. Paste a long random password into RCON password.

  6. Click Save and restart.

    After startup, the console shows a line RCON running on … with the address and your port. If you see No rcon password set in server.properties, rcon disabled! instead, the password is missing.

Only the service owner and members with the Secrets permission can turn on RCON, change it and see its password. Everyone else sees the password as ********, and saving doesn't change it.

RCON isn't encrypted

The password and commands travel over the network unencrypted. Use a long random password, don't put it into public tools and turn RCON off when you don't need it.

Advanced group#

SettingWhat it doesRecommended valueWhen to change
resource-pack (Resource pack)A direct link to a .zip resource pack that the server offers players when they join.EmptyWhen you have custom textures or sounds. For the steps, see Resource pack step by step.
resource-pack-sha1 (Resource pack SHA-⁠1)The pack's checksum (40 characters). It lets clients detect that the pack has changed and download it again.Always fill it in when you use a resource packAfter every change to the pack.
require-resource-pack (Require resource pack)Players who decline the pack are disconnected.falsetrue when the game isn't playable without the pack (custom items, maps).
sync-chunk-writes (Synchronous chunk writes)Chunk saving waits for the disk to confirm the write. Protects data in a crash but slows down saving.trueDon't change it. On Paper this key does nothing by default.

Other keys (text mode only)#

The form doesn't know these keys. Edit them in Text mode. If they're missing from the file, the server adds them with their default value on startup.

SettingWhat it doesRecommended valueWhen to change
accepts-transfersAccepts players redirected from another server with the transfer command.falsetrue when you move players between your own servers without a proxy.
broadcast-console-to-opsOperators in the game see the output of commands typed in the console.truefalse when it bothers you in the game.
broadcast-rcon-to-opsThe same for commands sent over RCON.truefalse when RCON is used by a bot that sends lots of commands.
bug-report-linkA bug report link in the server links menu in the game.EmptyWhen you have a website or Discord for bug reports.
chat-spam-threshold-secondsAutomatically kicks players for chat spam (from version 26.2). 0 turns the check off.10Lower it if the check on fast typing is too strict.
command-spam-threshold-secondsThe same for commands (from version 26.2).10See above.
enable-code-of-conductThe server shows rules from the codeofconduct folder (<language>.txt files, for example en_us.txt) and players have to accept them (from version 1.21.9).falsetrue when you want players to agree to the rules before playing.
enable-jmx-monitoringExposes tick times over JMX for monitoring tools.falseOnly with your own monitoring on a VPS.
entity-broadcast-range-percentageFrom what distance the server sends entities to players, as a percentage of the default (10–⁠1000).100Lowering it (for example to 75) eases the load on the network and clients on servers with many entities.
function-permission-levelThe permission level that datapack functions run with (1–⁠4).2Only when a datapack explicitly requires it.
generator-settingsGenerator settings for a flat world in JSON format.{}Only for a custom flat world, before it's created.
initial-enabled-packs / initial-disabled-packsDatapacks enabled or disabled when a new world is created (comma-separated).vanilla / emptyWhen you want experimental features from the moment the world is created.
log-ipsWrites players' IP addresses to the console and the log.truefalse when you don't want IP addresses in the log (privacy, streaming).
max-chained-neighbor-updatesA limit on chained block updates. Protects the server from freezing because of huge redstone circuits.1000000Don't change it.
max-tick-timeAfter how many milliseconds of a single tick the server decides it has frozen and shuts down (the watchdog). -1 turns the watchdog off. Not used on Paper and Purpur – there the watchdog is controlled by settings.timeout-time in spigot.yml (in seconds, default 60).60000Don't change it. With the watchdog off, a frozen server hangs forever.
pause-when-empty-secondsAfter how many seconds without players the server pauses the world (from version 1.21.2).Vanilla 60, Paper off by default (-1)On Vanilla, set -1 if farms and chunk loaders should keep running without players.
prevent-proxy-connectionsKicks a player whose internet provider differs from the one the authentication server sees. Weak protection against VPNs.falseLeave it at false, otherwise it kicks regular players too.
rate-limitHow many packets a player may send before the server kicks them. 0 = no limit.0Only when you have problems with packet spam.
region-file-compressionWorld compression on disk: deflate, lz4, none (Paper also supports gzip).deflatelz4 is faster, but the world takes up more space. The change only applies to newly saved chunks.
resource-pack-idAn optional resource pack UUID.EmptyOnly with several packs at once.
resource-pack-promptCustom text in the resource pack prompt.EmptyWhen you want to explain to players why they need the pack.
text-filtering-config, text-filtering-versionChat filtering used by Realms.Empty / 0Don't change them.
use-native-transportA faster network layer on Linux.trueDon't change it.

For advanced users: Server Management Protocol

From version 1.21.9 the server has a remote management interface (JSON-RPC over WebSocket) for managing players, the whitelist, operators and stopping the server. It's controlled by the keys management-server-enabled, management-server-host, management-server-port, management-server-secret, management-server-tls-enabled, management-server-tls-keystore, management-server-tls-keystore-password, management-server-allowed-origins and status-heartbeat-interval. It's off by default and only listens inside the server. The port must be one of the server's ports, and with TLS the server won't start without a certificate file (keystore). Only the owner and members with the Secrets permission can change these keys. If you don't need the interface, leave it off.

Keys moved to game rules#

In version 1.21.9, Mojang moved several keys from server.properties to game rules (gamerules). On a server running 1.21.9 or newer, these keys have no effect. A newly created file no longer contains them. If they're left in the file from an earlier version, the server ignores them – and changing them in the form does nothing. You set them with the gamerule command in the console (without a slash), and they're saved in the world.

Original keyGame rule from version 1.21.11 (and 26.x)Example command
pvppvpgamerule pvp false
allow-netherallow_entering_nether_using_portalsgamerule allow_entering_nether_using_portals false
spawn-monstersspawn_monstersgamerule spawn_monsters false
enable-command-blockcommand_blocks_workgamerule command_blocks_work true
  • gamerule – the command for reading and changing a game rule.
  • The second word is the rule name, the third the new value (true/false or a number). Without a value, the command prints the current setting.

Paper and Purpur: rules apply to each world separately

On Paper and Purpur, each dimension (Overworld, Nether, End) has its own game rules. A gamerule command typed in the console only changes the Overworld. To turn off PvP everywhere, for example, also type in the console:

text
execute in minecraft:the_nether run gamerule pvp false
execute in minecraft:the_end run gamerule pvp false
  • execute in minecraft:the_nether – the next command runs in the Nether (minecraft:the_end = the End).
  • run gamerule pvp false – the command that runs in that dimension.

On Vanilla, Fabric and NeoForge, rules apply to the whole server and one command is enough.

In versions 1.21.9 and 1.21.10 the rules still had their old names (allowEnteringNetherUsingPortals, spawnMonsters, commandBlocksEnabled, pvp). In version 1.21.11 all rules got new names with underscores. The spawn-animals and spawn-npcs keys were already removed in version 1.21.2 with no replacement.

You'll find a list of other rules in Console and commands.

Colors and formatting in the MOTD#

You set color and style with the § character and a code. A code applies to all text after it until you change it or reset it with §r.

CodeColor
§0black
§1dark blue
§2dark green
§3dark aqua
§4dark red
§5dark purple
§6gold
§7gray
§8dark gray
§9blue
§agreen
§baqua
§cred
§dlight purple
§eyellow
§fwhite
CodeStyle
§lbold
§oitalic
§nunderlined
§mstrikethrough
§k“obfuscated” text (characters keep changing randomly)
§rreset color and style

Example:

server.propertiesproperties
motd=§6§lStormCraft §r§7| §aSurvival §7| §fEnglish

Result: a bold gold name, gray separators, the word Survival in green and the word English in white.

  • Write the style after the color (§6§l). A new color resets the style.
  • Copy the § character from this page. On Windows you can also type it by holding Alt and entering 0167 on the numeric keypad.
  • Second line: both the form and text mode in the Server properties tab replace line breaks with a space. To get a two-line MOTD, write it directly in the file: stop the server, open server.properties in the Files tab and put \n between the lines, for example motd=§6First line\n§7Second line. Save (Ctrl+S) and start the server.

Server icon#

The icon in the server list comes from the server-icon.png image in the server's main folder. It must be a PNG of exactly 64 × 64 pixels. Upload it in the Files tab and restart the server.

Resource pack step by step#

  1. Prepare the resource pack as a .zip. The pack.mcmeta file must be directly in the root of the archive, not in a subfolder.
  2. Upload the archive to storage that offers a direct download link. The link must point straight to the .zip file, not to a page with a “Download” button. The pack can be at most 250 MiB.
  3. Calculate the archive's SHA-⁠1 checksum:

Windows

Open PowerShell in the folder with the archive and run:

PowerShell
(Get-FileHash .\<FILE>.zip -Algorithm SHA1).Hash.ToLower()
  • Get-FileHash – calculates the file's checksum.
  • -Algorithm SHA1 – uses the SHA-⁠1 algorithm that Minecraft requires.
  • .Hash.ToLower() – prints only the checksum, in lowercase.

macOS

In Terminal, in the folder with the archive, run:

bash
shasum -a 1 <FILE>.zip
  • shasum -a 1 – calculates the SHA-⁠1 checksum. The checksum is the first column of the output.

Linux

In a terminal, in the folder with the archive, run:

bash
sha1sum <FILE>.zip
  • sha1sum – calculates the SHA-⁠1 checksum. The checksum is the first column of the output.

Replace <FILE> with the archive name without the extension and without the angle brackets – so <FILE>.zip becomes, for example, textures.zip. The result is 40 characters made of digits and the letters a–f.

  1. In the Server properties tab, open the Advanced group.
  2. Paste the direct link into Resource pack. It must start with http:// or https:// (we recommend https://).
  3. Paste the calculated checksum into Resource pack SHA-⁠1.
  4. If the game isn't playable without the pack, turn on Require resource pack.
  5. Click Save and restart.

When players join, they'll be offered the pack to download. Every time you change the pack, calculate a new checksum and save it, otherwise players will stay on the old cached version.

Verify it works#

  1. After saving, wait for the restart and for the Done (…)! For help, type "help" line in the Console.
  2. In the Server properties tab, click Reload and check that the values stayed.
  3. In the game, open the server list and refresh it (Refresh). You'll see the new MOTD and slot count.
  4. For game rules, type the rule name without a value in the console, for example gamerule pvp, and check the output.

Troubleshooting#

The file changed in the meantime (the server rewrites it on start).#

Between opening the form and saving, the server rewrote the file (typically on startup). Click Reload and make your changes again. The safest way is to edit the settings while the server is stopped, or to use Save and restart straight away.

The change didn't take effect#

  • The server only reads the file on startup. Restart it.
  • The value may have been invalid and the server replaced it with the default on startup. Check for typos, true/false in lowercase and numbers without spaces.
  • level-seed, level-type and generate-structures only apply to a new world. They have no effect on an existing world.

Changing pvp, allow-nether or spawn-monsters did nothing (or the key is missing from the form)#

The server runs version 1.21.9 or newer, where these keys don't work. Set a game rule instead, see Keys moved to game rules.

You are not white-listed on this server!#

The whitelist is on (from version 26.3 also on a new server). Add the player with whitelist add <NICK> in the console, or turn the whitelist off (white-list=false). Details are in Whitelist, operators and bans.

Locked keys were restored to their original value: server-port.#

You tried to change the server's address or port. We set those automatically. You can see the server port in the Network tab; add more ports with the Add port button.

Use one of the server's ports: …#

The RCON (or Server Management Protocol) port must belong to the server. Add a port in the Network tab and enter it.

Players get disconnected after joining because of the resource pack#

  • The link doesn't point directly to a .zip. Open it in a private browser window – the file should start downloading right away.
  • The SHA-⁠1 doesn't match the pack (you changed the pack but not the checksum). Calculate it again.
  • The pack is larger than 250 MiB.

Flying is not enabled on this server#

The player is flying (plugin, mod; an elytra with fireworks doesn't count) and allow-flight is false. Turn on Allow flight.

Summary

  • Changes to server.properties only take effect after a restart – use Save and restart.
  • We set server-ip, server-port and query.port automatically; always put RCON on an additional port from the Network tab.
  • online-mode=false only behind a proxy with forwarding, otherwise anyone can log in as an operator.
  • From version 1.21.9, pvp, allow-nether, spawn-monsters and enable-command-block are game rules (the gamerule command).
  • From version 26.3 the whitelist is on by default on a new server.
  • view-distance and simulation-distance save the most performance.

Was this guide helpful?

Applies to

  • Minecraft Java 1.20 and newer
  • Minecraft 26.x
  • Paper, Purpur, Folia
  • Vanilla, Fabric, Forge, NeoForge

Services

Report a mistake in this guide

Search the guides