Direct answer
Paper’s chunk-system.worker-threads controls parallel chunk generation. In its reference configuration, a negative value delegates worker count selection to the server; the automatic result is based on physical CPU cores, not an invitation to allocate all vCPUs.
How to check it
- Inspect
config/paper-global.ymlchunk-system.worker-threadsand the actual number of physical cores/CPU quotas available. - Use spark and chunk-load observations during exploration; compare against a pre-generated world to isolate generation cost.
- Check whether tick-thread work or GC is already CPU-bound before allocating more workers.
What to change
PaperMC currently documents a default -1 for automatic selection. For machines with at most three physical cores, the reference describes one worker; otherwise automatic selection caps it at half the physical cores. A manual positive value should be tested on staging, not copied from a generic “best config.”
# config/paper-global.yml (Paper):
chunk-system:
worker-threads: -1 # automatic selection
io-threads: -1 # separate chunk I/O settingSoftware and version notes
Worker threads generate chunks; io-threads handle disk read/write and use a different automatic behavior. See the Paper global config reference. Folia/Leaf releases may differ.
Verify the result
Test the same new-chunk exploration rate and monitor CPU usage, tick latency and chunk loading. Keep -1 unless there is a demonstrated improvement from manual tuning.