Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

enable-command-block

Enables command blocks

Type: boolean

Default:

true

enable-jmx-monitoring

Exposes 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 for enabling JMX on the Java runtime you also need to add a couple of JVM flags to the startup as documented here.

Type: boolean

Default:

false

enable-query

Enables GameSpy4 protocol server listener. Used to get information about server.

Type: boolean

Default:

false

enable-rcon

Enables remote access to the server console. Must be enabled for systemd to be able to safely shut down the server.

Note: By default, rcon is enabled, and its port is set to server-port+1. However, the rcon port does not get opened in the firewall by default, meaning it can only be accessed from localhost.

Type: boolean

Default:

true

enable-status

Makes the server appear as “online” on the server list.

If set to false, it will suppress replies from clients. This means it will appear as offline, but will still accept connections.

Type: boolean

Default:

true

allow-flight

Allows users to use flight on the server while in Survival mode, if they have a mod that provides flight installed.

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.

Type: boolean

Default:

true

allow-nether

Allows players to travel to the Nether.

  • false - Nether portals do not work.
  • true - The server allows portals to send players to the Nether.

Type: boolean

Default:

true

announce-player-achievements

Whether to announce achievements in chat or not.

  • false - Achievements are silenced.
  • true - Achievements are logged in chat.

Type: boolean

Default:

true

broadcast-console-to-ops

Send console command outputs to all online operators.

Type: boolean

Default:

true

broadcast-rcon-to-ops

Send rcon console command outputs to all online operators.

Type: boolean

Default:

true

difficulty

Defines the difficulty (such as damage dealt by mobs and the way hunger and poison affects players) of the server.

GTNH is balanced around difficulty 3, changing this default will affect gameplay

Type: integer between 0 and 3 (both inclusive)

Default:

3

enforce-white-list

Enforces the whitelist on the server.

When this option is enabled, users who are not present on the whitelist (if it’s enabled) get kicked from the server after the server reloads the whitelist file.

Type: boolean

Default:

false

entity-broadcast-range-percentage

Controls how close entities need to be before being sent to clients. Higher values means they’ll be rendered from farther away, potentially causing more lag. This is expressed the percentage of the default value. For example, setting to 50 will make it half as usual. 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).

Accepted values: integers 0-500

Type: integer between 0 and 500 (both inclusive)

Default:

100

force-gamemode

Force players to join in the default game mode.

  • false - Players join in the gamemode they left in.
  • true - Players always join in the default gamemode.

Type: boolean

Default:

false

function-permission-level

Sets the default permission level for functions.

Type: integer between 1 and 4 (both inclusive)

Default:

2

gamemode

Defines the mode of gameplay.

Type: integer between 0 and 3 (both inclusive)

Default:

0

generate-structures

Defines whether structures (such as villages) can be 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.

Type: boolean

Default:

true

generator-settings

The settings used to customize world generation. Follow its format and write the corresponding JSON string. : are automatically escaped.

Type: strings concatenated with “\n”

Default:

""

hardcore

If set to true, server difficulty is ignored and set to hard and players are set to spectator mode if they die.

Type: boolean

Default:

false

level-name

The “level-name” value is used as the world name and its folder name. 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.

Characters such as ’ (apostrophe) may need to be escaped by adding a backslash before them.

Type: string

Default:

"World"

level-seed

Sets a world seed for the player’s world, as in Singleplayer. The world generates with a random seed if left blank.

Some examples are: minecraft, 404, 1a2b3c.

Type: string

Default:

""

level-type

Determines the type of map that is generated.

DO NOT CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING

GTNH expects the level type to be rwg for structure and ore generation, more info on the wiki.

  • rwg - The default GTNH level type
  • default - Standard world with hills, valleys, water, etc.
  • flat - A flat world with no features, can be modified with generator-settings.
  • largeBiomes - Same as default but all biomes are larger.
  • amplified - Same as default but world-generation height limit is increased.
  • buffet - Only for 1.15 or before. Same as default unless generator-settings is set.

Type: string

Default:

"default"

max-build-height

The maximum height in which building is allowed. Terrain may still naturally generate above a low height limit. Cannot be sight higher than 256, only lower;

Type: integer between 1 and 256 (both inclusive)

Default:

256

max-players

The maximum number of players that can play on the server at the same time. Note that more players on the server consume more resources. Note also, op player connections are not supposed to count against the max players, but ops currently cannot join a full server. However, this can be changed by going to the file called ops.json in the player’s server directory, opening it, finding the op that the player wants to change, and changing the setting called bypassesPlayerLimit to true (the default is false). This means that that op does not have to wait for a player to leave in order to join. Extremely large values for this field result in the client-side user list being broken.

Type: positive integer, meaning >0

Default:

20

max-tick-time

The maximum number of milliseconds a single tick may take before 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. Once this criterion is met, it calls System.exit(1).

  • -1 - disable watchdog entirely (this disable option was added in 14w32a)

Type: signed integer

Default:

60000

max-world-size

This sets the maximum possible size in blocks, expressed as a radius, that the world border can obtain. 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 appear to do anything.

Examples:

  • Setting max-world-size to 1000 allows the player to have a 2000×2000 world border.
  • Setting max-world-size to 4000 gives the player an 8000×8000 world border.

Type: integer between 1 and 29999984 (both inclusive)

Default:

29999984

motd

This is the message that is displayed in the server list of the client, below the name.

  • The MOTD supports color and formatting codes.
  • The MOTD supports special characters, such as “♥”. However, such characters must be converted to escaped Unicode form. An online converter can be found here.
  • If the MOTD is over 59 characters, the server list may report a communication error.

Type: string

Default:

"A Minecraft Server"

network-compression-threshold

By default it allows packets that are n-1 bytes big to go normally, but a packet of n bytes or more gets compressed down. So, a lower number means more compression but compressing small amounts of bytes might actually end up with a larger result than what went in.

  • -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.

Type: signed integer

Default:

256

online-mode

Server checks connecting players against Minecraft account database. 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.

Type: boolean

Default:

true

op-permission-level

Sets the default permission level for ops when using /op. All levels inherit abilities and commands from levels before them.

  • 1 - Ops can bypass spawn protection.
  • 2 - Ops can use all singleplayer cheats commands (except /publish, as it is not on servers; along with /debug) and use command blocks. Command blocks, along with Realms owners/operators, have the same permissions as this level.
  • 3 - Ops can use most multiplayer-exclusive commands, including /debug, and commands that manage players (/ban, /op, etc).
  • 4 - Ops can use all commands including /stop, /save-all, /save-on, and /save-off.

Type: integer between 1 and 4 (both inclusive)

Default:

2

pause-when-empty-seconds

How many seconds have to pass after no player has been online before the server is paused.

Type: signed integer

Default:

60

player-idle-timeout

If non-zero, players are kicked from the server if they are idle for more than that many minutes.

Note: Idle time is reset when the server receives one of the following packets:

  • Click Window
  • Enchant Item
  • Update Sign
  • Player Digging
  • Player Block Placement
  • Held Item Change
  • Animation (swing arm)
  • Entity Action
  • Client Status
  • Chat Message
  • Use Entity

Type: signed integer

Default:

0

prevent-proxy-connections

If the ISP/AS sent from the server is different from the one from Mojang’s authentication server, the player is kicked.

  • true - Enabled. Server prevents users from using vpns or proxies.
  • false - Disabled. The server doesn’t prevent users from using vpns or proxies.

Type: boolean

Default:

false

pvp

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.

Type: boolean

Default:

true

query-port

Minecraft: query.port

Sets the port for the query server (see enable-query).

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

25565

rate-limit

Sets the maximum amount of packets a user can send before getting kicked. Setting to 0 disables this feature.

Type: signed integer

Default:

0

rcon-password

Minecraft: rcon.password.

Sets the password for RCON: a remote console protocol that can allow other applications to connect and interact with a Minecraft server over the internet.

A default password has been set because an empty password does not work with mcrcon. This same default password is the default value of $MCRCON_PASS. If you set this, you must also set $MCRCON_PASS environment variable for the corresponding systemd unit.

Note: By default, rcon is enabled, and its port is set to server-port+1. However, the rcon port does not get opened in the firewall by default, meaning it can only be accessed from localhost.

Type: string

Default:

"whatisloveohbabydonthurtmedonthurtmenomore"

rcon-port

Minecraft: rcon.port.

Sets the RCON network port.

Note: By default, rcon is enabled, and its port is set to server-port+1. However, the rcon port does not get opened in the firewall by default, meaning it can only be accessed from localhost.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

config.minecraft.server-properties.server-port + 1

require-resource-pack

When this option is enabled (set to true), players will be prompted for a response and will be disconnected if they decline the required pack.

Type: boolean

Default:

false

resource-pack

Optional URI to a resource pack. The player may choose to use it.

The resource pack may not have a larger file size than 100 MiB (Before 1.15: 50 MiB (≈ 50.4 MB)). Note that download success or failure is logged by the client, and not by the server.

Type: string

Default:

""

resource-pack-sha1

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. Due to the nature of hash functions, errors have a tiny probability of occurring, so this consequence has no effect.

Type: string

Default:

""

server-ip

The player should set this if they want the server to bind to a particular IP. It is strongly recommended that the player leaves server-ip blank.

Set to blank, or the IP the player want their server to run (listen) on.

Type: string

Default:

""

server-port

TCP Port on which this instance will be listening.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

25565

snooper-enabled

Sets whether the server sends snoop data regularly to http://snoop.minecraft.net.

Type: boolean

Default:

true

spawn-animals

Determines if animals can spawn.

Type: boolean

Default:

true

spawn-monsters

Determines if monsters can spawn.

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

Type: boolean

Default:

true

spawn-npcs

Determines whether villagers can spawn.

Type: boolean

Default:

true

spawn-protection

Determines 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.

Type: signed integer

Default:

1

sync-chunk-writes

Enables synchronous chunk writes.

Type: boolean

Default:

true

use-native-transport

Linux server performance improvements: optimized packet sending/receiving on Linux

Type: boolean

Default:

true

view-distance

Sets the amount of world data the server sends the client, measured in chunks in each direction of the player (radius, not diameter). It determines the server-side viewing distance.

Type: integer between 3 and 32 (both inclusive)

Default:

8

white-list

Enables a whitelist on the server.

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.

NixOS Note: The whitelist is maintained statefully, either manually or through console commands.

Type: boolean

Default:

true