Skip to main content

nukkit-mot.yml

Advanced Nukkit-MOT server configuration. Settings are grouped and sorted by category.

For standard Minecraft server settings, see server.properties.

Performance Settings

async-workers

Data TypeDefault Value
Stringauto

number of async worker threads

if set to auto, it will try to automatically detect the number of cores and use that

auto-tick-rate

Data TypeDefault Value
Booleanon

allow the server to automatically change level tick rate to maintain 20 ticks per second

auto-tick-rate-limit

Data TypeDefault Value
Integer20

how much the server can temporary drop tick rate

base-tick-rate

Data TypeDefault Value
Integer1

default tick rate

1 = 20 ticks per second, 2 = 10 ticks per second, etc.

recommended to keep it as default (1)

always-tick-players

Data TypeDefault Value
Booleanoff

Always tick players

thread-watchdog

Data TypeDefault Value
Booleanon

enable a task that checks if the server is frozen and kills it

useful if you have an auto restart script or the server runs on a panel with this feature

thread-watchdog-tick

Data TypeDefault Value
Integer60000

Milliseconds the watchdog waits, if the Nukkit-MOT main thread is suspended for more than 60000 milliseconds, a fatal error is thrown and execution is terminated

do-level-gc

Data TypeDefault Value
Booleanon

do level garbage collection between ticks

ticks-per-autosave

Data TypeDefault Value
Integer6000

how often world autosave task runs

in ticks, 20 ticks = 1 second

level-auto-compaction

Data TypeDefault Value
Booleanon

enable automatic LevelDB compaction for worlds

level-auto-compaction-ticks

Data TypeDefault Value
Integer36000

how often the automatic LevelDB compaction task runs

in ticks, 20 ticks = 1 second (default: 36000 = 30 minutes)

leveldb-cache-mb

Data TypeDefault Value
Integer64

Sets the maximum chunk data cache size per world to reduce disk I/O.

Consider increasing this value if you have plenty of RAM and only a few large worlds. Consider decreasing it if you have many worlds and limited RAM.

use-native-leveldb

Data TypeDefault Value
Booleanoff

use native leveldb implementation

enable-spark

Data TypeDefault Value
Booleanoff

Enabling Spark for Performance Analysis

See: https://spark.lucko.me/docs

Network Settings

zlib-provider

Data TypeDefault Value
Integer2

select zlib provider

0 = ZlibOriginal, 1 = ZlibSingleThreadLowMem, 2 = ZlibThreadLocal

default: 2

warning

Using other providers may negatively impact server performance.

compression-level

Data TypeDefault Value
Integer5

Zlib compression level for sent packets (0-9)

higher = more cpu usage but less bandwidth usage

chunk-compression-level

Data TypeDefault Value
Integer7

Zlib compression level for chunk data (0-9)

higher = more cpu usage but smaller chunk packets

compression-threshold

Data TypeDefault Value
Integer256

don't compress batch packets smaller than this (Zlib only)

use-snappy-compression

Data TypeDefault Value
Booleanoff

Use Snappy compression for packets

rak-packet-limit

Data TypeDefault Value
Integer120

A number of datagram packets each address can send within one RakNet tick (10ms)

IPs exceeding this limit will be temporarily banned

Data TypeDefault Value
Booleanon

When enabled, the server will send a Cookie to the client during the connection process to verify the client's legitimacy.

This enhances connection security and helps prevent potential malicious connections or attacks.

note

If you cannot join the server (especially when using a proxy), try setting this to false.

timeout-milliseconds

Data TypeDefault Value
Integer25000

how long should the server wait before kicking player if no response from the client

in milliseconds, 1000 milliseconds = 1 second

query-plugins

Data TypeDefault Value
Booleanoff

include list of plugins in query (enable-query=on)

use-waterdog

Data TypeDefault Value
Booleanoff

Attempt to get the real IP of clients provided by WaterdogPE

See: https://waterdog.dev/

viaproxy-username-prefix

Data TypeDefault Value
String

Username prefix for ViaProxy connections

enable-proxy-protocol

Data TypeDefault Value
Booleanoff

Enables HAProxy Proxy Protocol v2 parsing for UDP proxies such as FRP.

When a trusted proxy sends a valid PPv2 header, Nukkit-MOT replaces the proxy source address with the real client address. This allows IP-based logs, bans, and plugins to see the player's real IP instead of the proxy IP.

warning

Enable this only when your server is behind a compatible UDP proxy. Whitelisted proxy sources must send a valid PPv2 header.

proxy-protocol-whitelist

Data TypeDefault Value
List<String>["127.0.0.1/32"]

List of trusted proxy source IPs or CIDR ranges allowed to send Proxy Protocol headers.

Use proxy addresses here, not player addresses. Examples: 127.0.0.1/32, 10.0.0.0/8, 203.0.113.5/32

note

This whitelist currently supports IPv4/CIDR entries.

If the list is empty, all source IPs are trusted for Proxy Protocol, which is less secure.

Headerless or invalid packets coming from a whitelisted source will be dropped.

Chunk Settings

sending-per-tick

Data TypeDefault Value
Integer4

how many chunks can be sent per tick

ticking-per-tick

Data TypeDefault Value
Integer40

how many chunks can be ticked per tick

ticking-radius

Data TypeDefault Value
Integer3

radius of chunks around players to get ticked

generation-queue-size

Data TypeDefault Value
Integer8

how many chunks can be waiting for generation

generation-population-queue-size

Data TypeDefault Value
Integer8

how many chunks can be waiting for population

light-updates

Data TypeDefault Value
Booleanon

Light updates

clear-chunk-tick-list

Data TypeDefault Value
Booleanon

Allow the server to clear the list chunkTickList that tracks which chunks need logical updates after each game tick is completed.

This can help optimize server performance by preventing unnecessary computations, especially in the case of large servers or when there are many chunks to manage.

spawn-threshold

Data TypeDefault Value
Integer56

how many chunks need to be loaded before player spawns

cache-chunks

Data TypeDefault Value
Booleanoff

save chunks to memory for faster sending

async-chunks

Data TypeDefault Value
Booleanon

enable asynchronous chunk sending

this can improve the performance a lot when lots of chunks are being sent to players on different versions

it's recommended to keep this enabled

Entity Settings

spawn-eggs

Data TypeDefault Value
Booleanon

Enable spawn eggs, allowing entity spawning via spawn eggs

mob-ai

Data TypeDefault Value
Booleanon

Enable creature AI

auto-spawn-task

Data TypeDefault Value
Booleanon

enable task for auto spawning of mobs and animals

spawning works by the server's difficulty setting

note: spawn-animals, spawn-mobs or both must be enabled if you want anything to be spawned

despawn-task

Data TypeDefault Value
Booleanon

enable despawning of mobs and animals without a name tag

note

there are special cases such as the ender dragon, withers and villagers that do not despawn

ticks-per-spawns

Data TypeDefault Value
Integer200

how often entity auto spawn task runs

in ticks, 20 ticks = 1 second

ticks-per-despawns

Data TypeDefault Value
Integer12000

how long entities live

in ticks, 20 ticks = 1 second

World Settings

nether

Data TypeDefault Value
Booleanon

Generate Nether world

end

Data TypeDefault Value
Booleanon

Generate End world

vanilla-portals

Data TypeDefault Value
Booleanon

Vanilla portals

portal-ticks

Data TypeDefault Value
Integer80

Ticks required for the player to trigger the portal

multi-nether-worlds

Data TypeDefault Value
List

if you need multiple nether worlds, list worlds which should have their own nethers here, otherwise using the default nether world

anti-xray-worlds

Data TypeDefault Value
List

list of worlds where the experimental built-in anti xray is enabled

example: [world, survival, factions]

do-not-tick-worlds

Data TypeDefault Value
List

list of worlds where random block ticking is disabled

this disables plants growing, leaves decaying, dirt turning into grass, falling blocks etc.

you may want to add your lobby and minigame worlds here

entity-spawning-disabled-worlds

Data TypeDefault Value
List

list of worlds where entity auto spawning is not allowed

example: [lobby, pvp, creative]

load-all-worlds

Data TypeDefault Value
Booleanon

Load all worlds

auto-save-disabled-worlds

Data TypeDefault Value
List

Worlds where level auto-save is disabled

worlds

Data TypeDefault Value
Map

Custom world configurations. Each entry defines a world with its own generator, seed and generator settings.

Example:

worlds:
my_world:
generator: normal
seed: 12345
generator-settings: ""
my_flat_world:
generator: flat
seed: 0
generator-settings: ""

Each world entry supports:

  • generator - World generator type (default: normal)
  • seed - World seed (default: 0)
  • generator-settings - Generator specific settings (default: empty)

Player Settings

save-player-data

Data TypeDefault Value
Booleanon

if enabled, saving player data by their uuid in the format NukkitX uses and automatically converting player data in the old format to the new format

do not disable if new player data exists

save-player-data-by-uuid

Data TypeDefault Value
Booleanon

if enabled, saving player data by their uuid in the format NukkitX uses and automatically converting player data in the old format to the new format

do not disable if new player data exists

persona-skins

Data TypeDefault Value
Booleanon

persona skins allowed

note

default steve skin will show if disabled

enabling do-not-limit-skin-geometry may be required for some persona skins to be usable

skin-change-cooldown

Data TypeDefault Value
Integer15

Skin change cooldown in seconds

do-not-limit-skin-geometry

Data TypeDefault Value
Booleanon

disables maximum skin geometry size checks

may be required for some persona skins to be usable

do-not-limit-interactions

Data TypeDefault Value
Booleanoff

disables a hack which is used to limit right click interaction spamming by client

space-name-mode

Data TypeDefault Value
Stringignore

Handling player names with spaces

"disabled" - Players with names containing spaces are prohibited from entering the server

"ignore" - Ignore names with spaces (default)

"replacing" - Replace spaces in player names with "_"

xp-bottles-on-creative

Data TypeDefault Value
Booleanon

allow players to throw experience bottles on creative

stop-in-game

Data TypeDefault Value
Booleanoff

allow op to use /stop command in game

op-in-game

Data TypeDefault Value
Booleanon

allow op to use /op command to op other players in game

Debug Settings

debug-level

Data TypeDefault Value
Integer1

set a higher value (1-3) if you want more debug logging

ansi-title

Data TypeDefault Value
Booleanoff

Enable to display server occupancy information in Windows CMD title

deprecated-verbose

Data TypeDefault Value
Booleanon

Verbose API deprecations

call-data-pk-send-event

Data TypeDefault Value
Booleanon

you can disable DataPacketSendEvent for better performance if none of your plugins uses it

call-batch-pk-send-event

Data TypeDefault Value
Booleanon

you can disable BatchPacketsEvent for better performance if none of your plugins uses it

call-entity-motion-event

Data TypeDefault Value
Booleanon

If no plugin uses it, you can disable EntityMotionEvent for better performance

block-listener

Data TypeDefault Value
Booleanon

enable checks used for snow and iron golems, monster egg stone etc.

automatic-bug-report

Data TypeDefault Value
Booleanon

enable automatic bug reports

update-notifications

Data TypeDefault Value
Booleanon

notify operators about new Nukkit MOT releases on join

bstats-metrics

Data TypeDefault Value
Booleanon

enable bStats metrics

https://bstats.org/plugin/server-implementation/Nukkit/

data collected anonymously: server software (Nukkit MOT), player count, players game versions, xbox auth required, Java version, operating system, cpu arch & core count, host country

hastebin-token

Data TypeDefault Value
String

Hastebin token for generating debug links

See: https://www.toptal.com/developers/hastebin/documentation

Game Feature Settings

achievements

Data TypeDefault Value
Booleanon

enable player achievements

announce-player-achievements

Data TypeDefault Value
Booleanon

broadcast achievement earned messages to all players

bed-spawnpoints

Data TypeDefault Value
Booleanon

allow players to set spawn point using beds and respawn anchors

explosion-break-blocks

Data TypeDefault Value
Booleanon

enable explosion damage to blocks

affects all explosions such as tnt, creepers and end crystals

drop-spawners

Data TypeDefault Value
Booleanon

Drop spawners upon destruction

anvils-enabled

Data TypeDefault Value
Booleanon

enable anvils

vanilla-bossbars

Data TypeDefault Value
Booleanoff

show boss bar for wither and ender dragon (experimental)

use-client-spectator

Data TypeDefault Value
Booleanon

Use client spectator

enable-experiment-mode

Data TypeDefault Value
Booleanon

Enable experiment mode

multiversion-min-protocol

Data TypeDefault Value
Integer0

Minimum protocol for multiversion

multiversion-max-protocol

Data TypeDefault Value
Integer-1

Maximum protocol for multiversion

enable-raw-ores

Data TypeDefault Value
Booleanon

Enable raw ores; when enabled, coarse copper, coarse iron, and raw gold drop from higher-version players

As of 1.17.0

enable-new-paintings

Data TypeDefault Value
Booleanon

Enable the new paintings added in version 1.21

enable-new-chicken-eggs-laying

Data TypeDefault Value
Booleanon

Enable new chicken eggs laying (Blue Egg & Brown Egg)

forced-safety-enchant

Data TypeDefault Value
Booleanon

Enable forced safety enchantments (up max lvl)

enable-vibrant-visuals

Data TypeDefault Value
Booleanon

Enable vibrant visuals effects support

enable-raytracing

Data TypeDefault Value
Booleanon

Enable raytracing support

temp-ip-ban-failed-xbox-auth

Data TypeDefault Value
Booleanoff

Temporary ban failed Xbox authentication

strong-ip-bans

Data TypeDefault Value
Booleanoff

Strong IP bans

check-op-movement

Data TypeDefault Value
Booleanoff

enable movement checking for operators

NetEase Settings

client-support

Data TypeDefault Value
Booleanoff

Enable NetEase client support will allow NetEase players to enter the server

only-allow-netease-client

Data TypeDefault Value
Booleanoff

Only NetEase players are allowed to enter the server, and after opening, Microsoft version players will be prohibited from entering the server, and only NetEase players will be allowed to join the server