Basalt’s settings live in basalt.toml, in the folder Basalt is started from. The file is created on first start with every setting at its default and a comment above each one.
The folder inside worlds/ to play. Created if it does not exist. See Worlds.
max_players
20
The most players allowed on at once.
gamemode
"survival"
The game mode a player gets the first time they join: "survival", "creative", "adventure" or "spectator".
force_gamemode
false
Puts every player in gamemode each time they join, not only the first time.
default_player_permission_level
"member"
The permission level of players not listed in permissions.json: "visitor", "member" or "operator". See Permissions, allowlist and bans.
allow_list
false
Only lets in players listed in allowlist.json. The allowlist on and allowlist off commands rewrite this line.
online_mode
true
Checks every player’s Xbox sign-in.
autosave_ticks
6000
Ticks between saving players and the world. 6000 ticks is five minutes.
enchant_bypass_limits
false
Lets /enchant and plugins put any enchantment on any item at any level up to 32767, ignoring vanilla’s maximum levels and conflicts. Off keeps vanilla’s rules.
Public addresses to give clients when the host is behind NAT, for example ["203.0.113.10"].
compression_threshold
256
Packet batches smaller than this many bytes are sent uncompressed.
botnet_detection
true
Watches for several connections flooding packets at once. When three or more send over 300 packets a second together and look coordinated (they started together, send the same packet, share a subnet or have just connected), their addresses are disconnected and turned away for a minute.
The farthest chunk radius sent to a player, however far their client asks to see.
tick_distance
4
The chunk radius around each player where the world runs: mobs, random ticks such as crop growth, and the chunks kept for a while after a player leaves. At least 1; values above view_distance are treated as view_distance.
chunk_unload_delay
300
Seconds a chunk nobody is near stays loaded before it is saved and unloaded. The chunks around a player who leaves stay this long too, with what they dropped.
mob_ai
true
Runs mob AI: wandering, following, attacking and pathfinding. Off, mobs stand where they are, though they still fall, get pushed and can be hurt.
mob_ai_kinds
[]
Mobs that keep their AI while mob_ai is off, as "minecraft:zombie" or just "zombie".
max_threads
8
The most threads Basalt uses for connections and for chunk work. 0 uses as many as the machine has; a number above the machine’s count is lowered to it.
player_tick
true
Runs each player’s hunger: exhaustion, saturation, starving and the health food gives back. Off, players never get hungry and only heal by other means, which suits lobbies and kit servers.
client_side_chunk_generation_enabled
true
Tells clients they may generate the look of chunks beyond the ones Basalt sends.
Advice on choosing these values is on the Performance page.
These settings limit what plugins can do through @minecraft/server-net. See HTTP requests.
Setting
Default
What it does
script_net_enabled
true
Lets plugins make HTTP requests and open WebSockets.
script_net_allowed_hosts
[]
The hosts plugins may reach, as "discord.com", or "*.example.org" for any host under example.org. Empty allows any host. Host names are checked, not the addresses they resolve to.
script_net_max_body_bytes
8388608
The largest HTTP response body or WebSocket message a plugin takes in, in bytes (8 MiB).
Each check has its own switch, and all are on by default. With a check off, Basalt accepts what the client sends for that case. What each check looks for is described on the Anti-cheat page.
Setting
Default
What it does
anticheat_proxy
true
Disconnects players whose login shows the signs of a proxy rewriting it, with “Proxy Detected”.
anticheat_crash_packets
true
Drops packets made to crash other clients: eating events for food the player does not hold, sounds and emotes that are not real ones.
anticheat_fly
true
Pulls back players who jump again while already in the air with no way to fly.
anticheat_fast_break
true
Catches inputs that carry many ticks of block breaking at once.
anticheat_criticals
true
Gives no critical hit for a fall the player did not jump or step into.
anticheat_reach
true
Refuses blocks used, and players or mobs hit, through walls or from out of reach.
anticheat_inventory
true
Refuses moves into the armour slots made with old-style inventory transactions.
anticheat_self_hit
true
Drops a player’s hit on themselves, which an honest client never sends.
anticheat_scaffold
true
Refuses block placements that come far too fast to make by hand, or land on a face the player is not looking at.