# This is the main Krypton configuration file. All settings in this file apply globally
# across the entire server, regardless of what they are.
#
# If you need any help with any of the settings in this file, you can join us on Discord
# at https://discord.gg/4QuwYACDRX

# Advanced settings. Don't touch these unless you know what you're doing.
advanced {
  # Whether to attempt to register the server as a JMX bean.
  enable-jmx-monitoring=true
  # Whether we should use the DSYNC option for saving region files to disk.
  synchronize-chunk-writes=true
}
# Other settings that don't quite fit in anywhere else.
other {
  # If we should enable bStats metrics for the server
  metrics=true
  # The duration (in seconds) a single tick must take before the single tick profiler reports it.
  save-threshold=5
}
# Proxy IP forwarding settings.
proxy {
  #
  # The method to use for forwarding a connecting user's information on
  # to Krypton from a proxy server. Supported values are:
  # - NONE - Disable forwarding support completely
  # - LEGACY - Use the BungeeCord/pre-1.13 method
  # - MODERN - Use Velocity's modern forwarding protocol
  # When any mode other than NONE is used, the server will be forced offline
  # and will ONLY accept connections from proxies. No users will be able to
  # direct connect.
  mode=NONE
  # The forwarding secret from Velocity. Only used in the MODERN forwarding protocol.
  secret=""
}
# Settings for the GS4 query protocol listener. If you don't know what that means, don't touch these :)
query {
  # Whether to enable the query protocol.
  enabled=false
  # The port the query listener should listen on.
  port=25566
}
# The main server settings.
server {
  # The threshold at which packets larger will be compressed. Set to -1 to disable.
  compression-threshold=256
  # The IP used by players to connect. 0.0.0.0 means listen on all interfaces.
  ip="0.0.0.0"
  # Whether the server authenticates users with Mojang.
  online-mode=true
  # The port used by players to connect.
  port=25565
}
# Status configuration
status {
  # The upper limit of the player count. Any players that try to join when this is reached will be kicked.
  max-players=20
  # The message of the day. Supports legacy and hex codes (using &#).
  motd="&#8000ffKrypton is a Minecraft server written in Kotlin!"
}
# Watchdog settings. The watchdog monitors the server for freezes.
watchdog {
  # The time (in milliseconds) before watchdog first warns you about the server not responding
  early-warning-delay=10000
  # How often (in milliseconds) watchdog should warn you in advanced that the server isn't responding
  early-warning-interval=5000
  # The message to send to players when we restart the server. Supports legacy and hex codes (&# format).
  restart-message="&cServer closed."
  # Whether we should attempt to restart the server if it crashes
  restart-on-crash=true
  # The script we should use to attempt to restart the server.
  restart-script="./start.sh"
  # The time (in seconds) that the server must not respond for before watchdog considers it dead.
  timeout-time=60
}
# Global world configuration options
world {
  # The amount of time (in ticks) between automatic world saves.
  autosave-interval=6000
  # The default difficulty. Valid values are: 0-3 (legacy), peaceful, easy, normal and hard (case insensitive).
  difficulty=normal
  # Forces the above gamemode for all players in all worlds.
  force-default-gamemode=false
  # The gamemode for this world. Valid values are: 0-3 (legacy), survival, creative, adventure and spectator (case insensitive).
  gamemode=survival
  # If this server is in hardcore mode. Currently does nothing.
  hardcore=false
  # The name of the folder with the world to load in it.
  name=world
  # The render distance of the server. This is how many chunks you can see in front of you, excluding the one you are in.
  view-distance=10
}
