FalconFalcon
Docs menuConfiguration

Administration

Configuration

server.properties holds one key=value per line. There are 72 keys. Each value is validated when the file is read: a bad value is reported in the log and the default is used.

Booleans accept true, false, 1 and 0, except movement-simulation, simulation, server-authoritative-block-breaking and disable-client-vibrant-visuals, which accept only true and false.

Identity and rules

KeyDefaultEffect
server-nameFalcon ServerName shown to clients
languageen_USServer language
gamemodesurvivalsurvival, creative, adventure or spectator. Numbers 1, 2 and 6 also map to the last three
difficultyeasypeaceful, easy, normal or hard
allow-cheatstrueSets the commands-enabled flag sent to clients
max-players101 or more
default-player-permission-levelmembervisitor, member or operator
spawn-protection16Radius around spawn where non-operators cannot change blocks
disable-player-interactionfalseSent to clients in the start-game data

Network

KeyDefaultEffect
server-port19132IPv4 port, 1 to 65535
server-portv619133IPv6 port, 1 to 65535
transportnethernetThe only accepted value
online-modetrueChecks Xbox Live authentication at login
network-encryptiontrueEncrypts the connection
enable-lan-visibilitytrueAnnounces the server on the LAN
allow-listfalseOnly allowlist.json entries can join. An empty list logs a warning
any-versionfalseLets every supported protocol join, not only the newest
compression-threshold10 to 65535, sent to clients in the network settings
compression-algorithmzlibzlib or snappy

With any-version on, older clients still receive the blocks, items and recipes of the newest version, and the server logs a warning.

Worlds and performance

KeyDefaultEffect
level-nameBedrock levelMain world, under worlds/
level-seedemptySeed of a new world
worlds-autoloademptyOther worlds to load at startup, comma-separated
view-distance324 to 96 chunks
tick-distance44 to 12 chunks. Chunks ticked around each player
max-threads80 to 256. Worker threads
autosave-interval6000Ticks between autosaves. 0 turns autosave off
auto-compaction-interval360Seconds between world database compactions. 0 turns it off
client-side-chunk-generation-enabledfalseSent to clients in the start-game data
block-network-ids-are-hashestrueSends block network IDs as hashes
movement-simulationfalseReplays player movement on the server and corrects clients that diverge from it
simulationtrueFormer name of movement-simulation, still read when that key is absent

Packs, skins and logs

KeyDefaultEffect
texturepack-requiredfalseForces clients to accept the packs
disable-custom-skinsfalseSent to clients in the start-game data
skin-change-cooldown30Minimum seconds between skin changes
disable-client-vibrant-visualstrueForces Vibrant Visuals off on clients
content-log-console-output-enabledfalsePrints content logs to the console

Movement and block breaking

KeyDefaultEffect
server-authoritative-movement-strictfalseCorrects every mismatch instead of absorbing small ones. No effect while movement-simulation=false
server-authoritative-block-breakingfalseThe server checks break progress
server-authoritative-block-breaking-range-scalar1.5Must be above 1. Scales the allowed reach. Also read as server-authoritative-block-breaking-pick-range-scalar
player-position-acceptance-threshold0.5Squared distance, in blocks, between the reported and simulated position above which movement is corrected
player-movement-action-direction-threshold0.85How directly a player must face a target to act on it, as a cosine from 0 to 1
player-tick-throttled-input-batch-size-1-1 or more. Input batching limit
player-tick-throttled-max-tick-credits-1-1 or more. Input tick credit limit

A file without movement-simulation keeps its simulation value, or turns the simulation on when strict mode is on.

Join by address

The client tries HTTPS before HTTP on the signaling port, and beside port 19132 it also tries 443 and 80.

KeyDefaultEffect
signaling-certificateemptyPEM certificate chain for HTTPS on the signaling port
signaling-private-keyemptyPEM private key of that certificate
signaling-extra-port0Second signaling port, 0 for none. Set 443 so clients typing port 19132 join without waiting
signaling-acme-domainemptyDomain players type. When set, the certificate is obtained and renewed with ACME into certificates/
signaling-acme-emailemptyContact address sent to the ACME directory
signaling-acme-directoryLet's EncryptACME directory URL, https:// only
signaling-acme-challengetls-alpn-01tls-alpn-01 answers on TCP 443, http-01 on TCP 80

A complete certificate and key pair takes precedence over ACME.

Rate limits

KeyDefault
max-inbound-packets-per-second2500
max-commands-per-second10
max-chat-messages-per-second2
max-form-responses-per-second20
max-movement-packets-per-second40
max-chat-message-length512
chat-restrictionNone. Also Dropped or Disabled

Wasm plugins

KeyDefaultEffect
wasm-plugin-memory-mb641 to 4096. Memory limit per plugin
wasm-plugin-fuel100000001 or more. Fuel per server call

Reserved keys

The server accepts and validates these keys, but they have no effect in the current version:

KeyDefault
force-gamemodefalse
player-idle-timeout30
content-log-file-enabledfalse
content-log-levelinfo
server-authoritative-dismount-strictfalse
server-authoritative-entity-interactions-strictfalse
server-build-radius-ratioDisabled
allow-inbound-script-debuggingfalse
allow-outbound-script-debuggingfalse
script-debugger-auto-attachdisabled
disable-personafalse
fluid-budget-ms20