# Advanced configuration file for Nukkit
# Some of these settings are safe, others can break your server if modified incorrectly
# New settings/defaults won't appear automatically on this file when upgrading

settings:
  # Multi-language setting
  # Available: eng, chs, cht, jpn, rus, spa, pol, bra, kor, ukr, deu, ltu, idn, cze, tur, fin, vie, fra
  language: eng
  # Whether to send all strings translated to server locale or let the device handle them
  force-language: false
  shutdown-message: "Server closed"
  # Allow listing plugins via Query
  query-plugins: true
  # Show a console message when a plugin uses deprecated API methods
  deprecated-verbose: true
  # Number of AsyncTask workers
  # If set to auto, it'll try to detect the number of cores (and at least 4)
  async-workers: auto
  safe-spawn: true
  waterdogpe: false

network:
  maximum-stale-datagrams: 512
  # Threshold for batching packets, in bytes. Only these packets will be compressed
  # Set to 0 to compress everything, -1 to disable
  batch-threshold: 256
  # Compression level used of Zlib when sending batched packets. Higher = more CPU, less bandwidth usage
  compression-level: 7
  # Use AsyncTasks for compression. Adds half/one tick delay, less CPU load on main thread
  async-compression: false
  # 0：Create a new compressor for each compression request
  # 1：All compression requests are done with only one thread and one compressor
  # 2：Using the original Nukkit server-side algorithm for high stability, using ThreadLocal to create a compressor for each thread
  # 3：Modern hardware acceleration using the PowerNukkitX server, which improves on the original algorithm.
  zlib-provider: 2
  snappy: false

debug:
  # If > 1, it will show debug messages in the console
  level: 1
  # Enables commands: /status /gc
  commands: false
  ignored-packets:
    - LevelChunkPacket

timings:
  # Turn off the timing completely, no timing object will be created, which can help improve performance
  completely-close: false
  # Enable core and plugin timings by default
  enabled: false
  # Enable monitoring at verbose level, include high-frequency timings
  verbose: false
  # Interval between history frames in ticks
  # Default is 5 minutes (6000 ticks)
  history-interval: 6000
  # Length of the whole timing history in ticks
  # Default is 1 hour (72000 ticks)
  # This value is capped at a maximum of history-interval * 12
  history-length: 72000
  # For special cases of servers with special permission to bypass the max
  # This max helps keep data file sizes reasonable for processing on Aikar's Timing parser side
  # Setting this will not help you bypass the max unless Aikar has added an exception on the API side
  bypass-max: false
  # If set to true, name of your server won't be sent
  privacy: false
  ignore: []

level-settings:
  # The default format that levels will use when created
  default-format: anvil
  # Automatically change levels tick rate to maintain 20 ticks per second
  auto-tick-rate: true
  auto-tick-rate-limit: 20
  # Sets the base tick rate (1 = 20 ticks per second, 2 = 10 ticks per second, etc.)
  base-tick-rate: 1
  # Tick all players each tick even when other settings disallow this
  always-tick-players: false
  tick-redstone: true

chunk-saving:
  maximum-size-per-chunk: 1048576

chunk-sending:
  # Amount of chunks sent to players per tick
  per-tick: 8
  # Amount of chunks sent around each player
  max-chunks: 192
  # Amount of chunks that need to be sent before spawning the player
  spawn-threshold: 56
  # Save a serialized copy of the chunk in memory for faster sending
  # Useful in mostly-static worlds where lots of players join at the same time
  cache-chunks: false

chunk-ticking:
  # Max amount of chunks processed each tick
  per-tick: 40
  # Radius of chunks around a player to tick
  tick-radius: 3
  light-updates: false
  clear-tick-list: false

chunk-generation:
  # Max. amount of chunks in the waiting queue to be generated
  queue-size: 8
  # Max. amount of chunks in the waiting queue to be populated
  population-queue-size: 8

# Max tick rate for these entities
ticks-per:
  animal-spawns: 400
  monster-spawns: 1
  autosave: 6000
  cache-cleanup: 900

memory-compression:
  enable: true
  slots: 32
  default-temperature: 32
  threshold:
    freezing-point: 0
    boiling-point: 1024
    absolute-zero: -256
  heat:
    melting: 16
    single-operation: 1
    batch-operation: 32


# Max amount of these entities
spawn-limits:
  monsters: 70
  animals: 15
  water-animals: 5
  ambient: 15

player:
  # If true, player data will be saved as players/playername.dat
  # If false, nukkit won't save player data as "dat" files, in order that plugins can do something on it.
  save-player-data: true
  # The time between skin change action in seconds, set to 0 if you dont want the cooldown
  skin-change-cooldown: 30
  force-skin-trusted: false
  check-movement: true

aliases:
# Aliases for commands
# Examples:
# showtheversion: version
# savestop: [save-all, stop]

worlds:
# These settings will override the generator set in server.properties and allows loading multiple levels
# Examples:
#world:
# seed: 404
# generator: FLAT:2;7,59x1,3x3,2;1;decoration(treecount=80 grasscount=45)

anti-xray:
#world:
# enabled: true
# level: low
# pre-deobfuscate: true
