Skip to main content
The features.toml file contains advanced configuration for optional features and performance tuning. All features are designed to match vanilla behavior by default.

Logging

Control server logging behavior.
logging.enabled
boolean
default:"true"
Whether logging is enabled.
logging.threads
boolean
default:"true"
Whether to include thread names in log output.
logging.color
boolean
default:"true"
Whether to enable colored log output in the console.
logging.timestamp
boolean
default:"true"
Whether to include timestamps in log entries.
logging.file
string
default:"latest.log"
Path to the log file.

Resource Pack

Configure server resource pack distribution.
resource_pack.enabled
boolean
default:"false"
Whether the resource pack system is enabled.
resource_pack.url
string
default:""
The URL to the resource pack file.Validation: Required when enabled = true.
resource_pack.sha1
string
default:""
The SHA1 hash (40 hexadecimal characters) of the resource pack.Validation: Required when enabled = true. Must be exactly 40 characters.
resource_pack.prompt_message
string
default:""
Custom prompt text shown to players when the resource pack is offered. Leave blank for the default prompt.
resource_pack.force
boolean
default:"false"
Whether players are forced to accept the resource pack. Players who decline will be disconnected.

World

World-specific settings beyond basic configuration.

Chunk Storage

world.chunk.type
ChunkFormat
default:"anvil"
Chunk storage format.Valid values:
  • "anvil" - Standard Anvil format (compatible with vanilla)
  • "linear" - Linear chunk storage format

Anvil Configuration

world.chunk.compression.algorithm
Compression
default:"LZ4"
Compression algorithm for Anvil chunk storage.Valid values:
  • "GZip" - GZip compression
  • "ZLib" - ZLib compression
  • "LZ4" - LZ4 compression (since 24w04a, fastest)
  • "Custom" - Custom compression (since 24w05a)
world.chunk.compression.level
u32
default:"6"
Compression level (algorithm-specific). Higher values = better compression but slower.
world.chunk.write_in_place
boolean
default:"false"
Whether chunks should be written in place (overwriting existing data) or appended.

Lighting

world.lighting
LightingEngine
default:"default"
Lighting engine configuration.Valid values:
  • "default" - Default lighting engine
  • "full" - Full lighting calculations
  • "dark" - Disable lighting (all dark)

Autosave

world.autosave_ticks
u64
default:"6000"
Number of ticks between autosave checks. At 20 TPS, 6000 ticks = 5 minutes.Set to 0 to disable autosave.

Networking

Packet Compression

networking.packet_compression.enabled
boolean
default:"true"
Whether network packet compression is enabled.
networking.packet_compression.threshold
u32
default:"256"
Compression threshold in bytes. Packets smaller than this will not be compressed.
networking.packet_compression.level
u32
default:"4"
Compression level between 0-9.
  • 1 = optimize for speed
  • 9 = optimize for compression ratio
  • 4 = balanced default

Authentication

networking.authentication.enabled
boolean
default:"true"
Whether to use Mojang authentication.
networking.authentication.url
Option<String>
default:"None"
Optional custom authentication URL for third-party auth servers (e.g., Drasl).
networking.authentication.connect_timeout
u32
default:"5000"
Connection timeout in milliseconds for authentication requests.
networking.authentication.read_timeout
u32
default:"5000"
Read timeout in milliseconds for authentication requests.
networking.authentication.prevent_proxy_connections
boolean
default:"false"
Whether to prevent connections via VPN/proxy services.
networking.authentication.services_url
Option<String>
default:"None"
Public services URL (used by Drasl and Mojang for player profiles).

Player Profiles

networking.authentication.player_profile.allow_banned_players
boolean
default:"false"
Allow players flagged by Mojang (e.g., banned, forced name change).
networking.authentication.player_profile.allowed_actions
Vec<ProfileAction>
default:"[\"FORCED_NAME_CHANGE\", \"USING_BANNED_SKIN\"]"
Profile actions that are allowed when allow_banned_players = true.Valid values:
  • "FORCED_NAME_CHANGE" - Player’s name was forcibly changed
  • "USING_BANNED_SKIN" - Player is using a banned skin

Textures

networking.authentication.textures.enabled
boolean
default:"true"
Whether to use player textures (skins, capes, elytras).
networking.authentication.textures.allowed_url_schemes
Vec<String>
default:"[\"http\", \"https\"]"
Allowed URL schemes for texture downloads.
networking.authentication.textures.allowed_url_domains
Vec<String>
default:"[\".minecraft.net\", \".mojang.com\"]"
Allowed domains for texture downloads.
networking.authentication.textures.types.skin
boolean
default:"true"
Enable player skins.
networking.authentication.textures.types.cape
boolean
default:"true"
Enable player capes.
networking.authentication.textures.types.elytra
boolean
default:"true"
Enable player elytra textures.

Query Protocol

networking.query.enabled
boolean
default:"true"
Whether the query protocol is enabled for server status requests.
networking.query.address
SocketAddr
default:"0.0.0.0:25565"
The address and port the query service binds to.

RCON (Remote Console)

networking.rcon.enabled
boolean
default:"false"
Whether RCON is enabled.
networking.rcon.address
SocketAddr
default:"0.0.0.0:25575"
The network address and port where the RCON server listens.
networking.rcon.password
string
default:""
The password required for RCON authentication.
Use a strong password! RCON provides full server control.
networking.rcon.max_connections
u32
default:"0"
Maximum number of concurrent RCON connections. 0 = unlimited.
networking.rcon.logging.logged_successfully
boolean
default:"true"
Whether successful RCON logins should be logged.
networking.rcon.logging.wrong_password
boolean
default:"true"
Whether failed login attempts with incorrect passwords should be logged.
networking.rcon.logging.commands
boolean
default:"true"
Whether all RCON commands should be logged.
networking.rcon.logging.quit
boolean
default:"true"
Whether RCON quit commands should be logged.

Proxy Support

networking.proxy.enabled
boolean
default:"false"
Whether proxy support is enabled.
networking.proxy.velocity.enabled
boolean
default:"false"
Whether Velocity proxy support is enabled.
networking.proxy.velocity.secret
string
default:""
Shared secret for authenticating connections from the Velocity proxy.Must match the forwarding-secret in your Velocity config.toml.
networking.proxy.bungeecord.enabled
boolean
default:"false"
Whether BungeeCord proxy support is enabled.

LAN Broadcast

networking.lan_broadcast.enabled
boolean
default:"false"
Whether LAN broadcast is enabled for local network discovery.
networking.lan_broadcast.motd
Option<String>
default:"None"
Optional one-line MOTD for LAN clients. Defaults to the server MOTD with newlines removed.
networking.lan_broadcast.port
Option<u16>
default:"None"
Optional port for LAN broadcast. Useful for predictable ports in Docker containers.

Commands

commands.use_console
boolean
default:"true"
Whether commands from the server console are accepted.
commands.use_tty
boolean
default:"true"
Whether to use rustyline for TTY input (enables command history and editing).
commands.log_console
boolean
default:"true"
Whether commands from players are logged in the console.
commands.default_op_level
PermissionLvl
default:"Zero"
The permission level for players not in the ops file.Valid values: Zero, One, Two, Three, Four (see Permissions)

Chat

chat.format
string
default:"<{DISPLAYNAME}> {MESSAGE}"
Custom chat format.Note: This does not apply when secure chat (signed messages) is enabled.Available placeholders:
  • {DISPLAYNAME} - Player’s display name
  • {MESSAGE} - The chat message
Example:
format = "[{DISPLAYNAME}]: {MESSAGE}"

PVP (Player vs Player)

pvp.enabled
boolean
default:"true"
Whether PVP is enabled on the server.
pvp.hurt_animation
boolean
default:"true"
Whether to show the red hurt animation and FOV bobbing when hit.
pvp.protect_creative
boolean
default:"true"
Whether players in creative mode are protected from PVP damage.
pvp.knockback
boolean
default:"true"
Whether knockback from attacks is applied.
pvp.swing
boolean
default:"true"
Whether players swing their hand when attacking.
URLs exposed to clients via the server links menu.
Whether server links are enabled.
URL for bug reports.
URL for support resources.
URL for server status page.
URL for player feedback.
URL for the community page.
URL for the official website.
URL for forums.
URL for news updates.
URL for announcements.
Custom key-value links.Example:
[server_links.custom]
Discord = "https://discord.gg/yourserver"
Wiki = "https://wiki.example.com"

Player Data

player_data.save_player_data
boolean
default:"true"
Whether saving player data is enabled.
player_data.save_player_cron_interval
u64
default:"300"
Time interval in seconds between automatic player data saves. Default is 5 minutes.

Fun

fun.april_fools
boolean
default:"true"
Whether April Fools features are enabled.

Example Configuration

features.toml
[logging]
enabled = true
threads = true
color = true
timestamp = true
file = "latest.log"

[resource_pack]
enabled = false
url = ""
sha1 = ""
prompt_message = ""
force = false

[world]
autosave_ticks = 6000

[world.chunk]
type = "anvil"

[world.chunk.compression]
algorithm = "LZ4"
level = 6

[world.chunk]
write_in_place = false

[world.lighting]
lighting = "default"

[networking.packet_compression]
enabled = true
threshold = 256
level = 4

[networking.query]
enabled = true
address = "0.0.0.0:25565"

[networking.rcon]
enabled = false
address = "0.0.0.0:25575"
password = ""
max_connections = 0

[commands]
use_console = true
use_tty = true
log_console = true
default_op_level = "Zero"

[chat]
format = "<{DISPLAYNAME}> {MESSAGE}"

[pvp]
enabled = true
hurt_animation = true
protect_creative = true
knockback = true
swing = true

[player_data]
save_player_data = true
save_player_cron_interval = 300

[fun]
april_fools = true

Build docs developers (and LLMs) love