Understanding Performance Factors
Voxy World Gen V2’s performance depends on three key systems:- Chunk generation pipeline - Controlled by
maxActiveTasksin config - TPS monitoring - Automatic throttling when server performance drops
- Hardware resources - CPU cores and RAM directly impact generation speed
Configuration Parameters
maxActiveTasks
Controls how many chunks can generate simultaneously. This is the primary performance tuning knob. Location:config/voxyworldgenv2.json
ChunkGenerationManager.java:109) that limits concurrent generation tasks. Each chunk generation acquires a permit, and releases it when complete.
Tuning guidelines:
High-end server (16+ cores, 16GB+ RAM)
High-end server (16+ cores, 16GB+ RAM)
Recommended: 32-48 tasksHigher parallelism takes full advantage of many cores. Monitor TPS - if throttling occurs frequently, reduce this value.
Mid-range server (8-16 cores, 8-16GB RAM)
Mid-range server (8-16 cores, 8-16GB RAM)
Recommended: 20-32 tasksDefault settings work well. Increase gradually while monitoring TPS.
Budget server or shared hosting (4-8 cores, 4-8GB RAM)
Budget server or shared hosting (4-8 cores, 4-8GB RAM)
Tellus integration enabled
Tellus integration enabled
Recommended: Increase by 50-100%Tellus uses optimized fast generation (see
ChunkGenerationManager.java:274). It can handle much higher concurrency efficiently.generationRadius
Defines how far from players to generate chunks (in chunks, not blocks).- Radius 64: ~12,800 chunks to generate per player
- Radius 128: ~51,200 chunks (default)
- Radius 256: ~204,800 chunks
- Start with 128 for balanced LOD coverage
- Reduce to 64 if initial generation takes too long
- Increase to 256+ only on high-end hardware for maximum view distance
saveNormalChunks
Controls whether generated LOD chunks are saved to disk.false):
- You want minimal disk usage
- You’re generating purely for LOD visualization with Voxy
- You don’t need chunks to persist when unloaded
ChunkGenerationManager.java:326) and tracked by LodChunkTracker. They’re kept in memory only and discarded when outside player view distance.
Disk savings: Approximately 95% reduction in world save size for generated-only chunks.
TPS Monitoring and Throttling
The mod includes automatic performance protection viaTpsMonitor.
How it works
- Tracks the last 20 server tick times (see
TpsMonitor.java:7) - Calculates average MSPT (milliseconds per tick)
- If MSPT exceeds 55.5ms (~18 TPS threshold), generation is paused
- Resumes when TPS recovers
TpsMonitor.java:14 sets MSPT_THRESHOLD = 1000.0 / 18.0
Monitoring throttling
F3 Debug Stats: Press F3 to see generation status in bottom-right corner:- Worker thread sleeps for 500ms (see
ChunkGenerationManager.java:169) - No new chunks are queued
- Active generation completes normally
Hardware Considerations
CPU Cores
Chunk generation is highly parallel. More cores = faster generation. Scaling:- 4 cores: Baseline (can support ~8-12 tasks)
- 8 cores: Good (20-24 tasks)
- 16+ cores: Excellent (32-48 tasks)
ChunkGenerationManager.java:141) dispatches work, but actual generation uses server threads.
RAM
Chunk generation is memory-intensive. Requirements:- Minimum: 4GB allocated to Minecraft
- Recommended: 8GB+ for large generation radii
- Optimal: 12GB+ with
saveNormalChunks: false(keeps more chunks in memory)
Disk I/O
WithsaveNormalChunks: true, disk speed matters.
- HDD: Bottleneck above 20 tasks due to write latency
- SSD: Handles 40+ tasks easily
- NVMe: No disk bottleneck, even at 60+ tasks
Recommended Settings by Scenario
Solo world, fast initial generation
- High task count for speed
- Standard radius for good LOD coverage
- No saves = minimal disk usage and faster generation
Multiplayer server, balanced performance
- Moderate task count leaves headroom for players
- Saves enabled so chunks persist for all players
Budget server, stability priority
- Low task count prevents server overload
- Smaller radius = less total work
- Saves enabled for data persistence
Tellus world, maximum LOD range
- Tellus fast generation supports high concurrency
- Large radius for distant mountain/terrain LODs
- No saves (Tellus regenerates efficiently)
Live Configuration Reload
You can reload config without restarting the server.Trigger reload
The mod automatically detects config changes on the next tick cycle. Alternatively, use ModMenu’s config screen (if installed) and click “Save”.
ChunkGenerationManager.java:357-361 handles config reload scheduling:
Monitoring Generation Progress
F3 Debug Statistics
EnableshowF3MenuStats in config (enabled by default):
- completed: Chunks generated and ingested into Voxy
- skipped: Chunks that already existed (loaded from saves)
- remaining: Chunks left to generate in current radius + ETA
- active: Current
maxActiveTasksin use - rate: Chunks per second (rolling 10-second average, see
GenerationStats.java:28-62) - voxy: Voxy mod integration status
Generation Rate Benchmarks
Expected rates for different hardware:- Budget (4 cores): 8-15 c/s
- Mid-range (8 cores): 20-35 c/s
- High-end (16+ cores): 40-80 c/s
- Tellus worlds: 2-3× faster than normal generation
Advanced: Multi-Dimensional Optimization
The mod generates chunks per-dimension, switching based on where most players are. Dimension priority logic (seeChunkGenerationManager.java:409-423):
- Count players in each dimension
- Switch to dimension with majority of players
- Save progress for previous dimension
- Load completion cache for new dimension
Troubleshooting Poor Performance
Generation is slow (< 10 c/s)
Generation is slow (< 10 c/s)
Causes:
maxActiveTaskstoo low → increase by 50%- TPS throttling active → reduce
maxActiveTasks - Disk bottleneck → use SSD or disable
saveNormalChunks - CPU bottleneck → check if other processes are using CPU
Server TPS drops below 15
Server TPS drops below 15
Cause:
maxActiveTasks overwhelming serverFix:- Reduce
maxActiveTasksby 50% - Reload config (edit and save
voxyworldgenv2.json) - TPS should recover within 30 seconds
High memory usage or OutOfMemoryError
High memory usage or OutOfMemoryError
Causes:
generationRadiustoo large for available RAM- Too many active chunks in memory
- Reduce
generationRadiusto 64 or 96 - Enable
saveNormalChunks: true(offloads to disk) - Allocate more RAM to Minecraft (increase
-XmxJVM arg)
Chunks generate but don't appear in Voxy
Chunks generate but don't appear in Voxy
Not a performance issue - see Troubleshooting Guide
Performance Monitoring Checklist
Run this checklist when optimizing:- Check F3 stats for throttling
- Monitor server TPS (should stay above 18)
- Verify generation rate matches hardware tier
- Check disk I/O utilization (should be < 80%)
- Confirm RAM usage is stable (not growing unbounded)
- Test config changes incrementally (±25% at a time)
- Wait 2-5 minutes after config changes to see effects
Next Steps
Troubleshooting
Solve common issues and debug problems
Multiplayer Setup
Optimize for dedicated servers and player load