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

  1. Inspect config/paper-global.yml chunk-system.worker-threads and the actual number of physical cores/CPU quotas available.
  2. Use spark and chunk-load observations during exploration; compare against a pre-generated world to isolate generation cost.
  3. 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 setting

Software 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.

References