Direct answer

Set Folia threaded-regions.threads only after reserving physical CPU cores for chunk generation/I/O, Netty, JVM GC and other tasks. More tick threads do not guarantee higher TPS, especially if players concentrate in one region.

How to check it

  1. Check your available physical CPU cores, not just the vCPU number reported inside a VPS/container. Confirm actual CPU quotas and host contention.
  2. Record peak players and whether they are clustered or spread across independent regions.
  3. Check Folia region/tick activity, chunk generation demand, GC and CPU usage before changing thread allocation.

What to change

Folia’s FAQ offers a historical, rough planning model: first budget other workers, then allocate remaining cores up to around 80% of available CPU cores to total planned threads. This is not an 80%-CPU-utilization target or a requirement for every server.

# In Folia global config (structure varies by release):
threaded-regions:
  threads: 4  # example only: not a recommendation

Pre-generate terrain when feasible to reduce worker pressure. Change the tick-thread budget gradually while monitoring region TPS/MSPT and other thread pools.

Software and version notes

This advice is specific to Folia’s FAQ. The FAQ’s example was derived from an older ~330-player test and explicitly cautions that it needs tuning. Do not apply these settings to Paper/Purpur without verifying software-specific threading.

Verify the result

Repeat the same clustered and distributed player tests; monitor per-region behavior, overall CPU saturation, GC and chunk load latency. Revert any change that starves other work or makes performance less predictable.

References