config.toml Reference

LapisMC uses TOML for configuration. The file is auto-generated on launch when executing ./lapismc --init.

config.toml
[server]
address = "0.0.0.0:25565"
max_players = 500
motd = "A LapisMC Go Server"

[performance]
# Number of worker goroutines for packet decoding. Set to 0 to auto-detect CPU logical cores.
worker_goroutines = 0
workstealing = true
read_buffer_bytes = 4096
write_buffer_bytes = 4096

[memory]
# Utilize sync.Pool to reduce garbage collection overhead during packet serialization.
use_byte_pools = true
# Standard Go runtime GOGC target (default: 100)
gc_percent = 100

Goroutine Pool Tuning

Unlike JVM threads, Go Goroutines are lightweight multiplexed threads managed directly by the Go runtime scheduler. LapisMC creates dedicated worker pools for packet compression, encryption, and tick scheduling.

💡 Production Tip

Leave worker_goroutines = 0 on bare-metal systems to let LapisMC match your system's hardware threads (GOMAXPROCS). In containerized environments (Docker/Kubernetes), explicitly set this value to match your container CPU limits.