Performance Tuning
Last updated
Last updated
BuildersWand is designed to be efficient, but server performance can vary based on configuration, hardware, and usage patterns. This guide helps you optimize the plugin for your specific server setup and usage requirements.
performance:
anti-lag:
enabled: true # Enable anti-lag features
max-blocks-per-tick: 100 # Maximum blocks processed per tick
max-processing-time: 10 # Maximum processing time per tick (ms)
operation-delay:
Block Limiting: Limits blocks processed per server tick
Time Limiting: Limits processing time per tick
Operation Spreading: Spreads large operations across multiple ticks
Queue Management: Queues operations when limits are reached
Low-End Servers (2-4GB RAM, 2-4 cores):
performance:
anti-lag:
max-blocks-per-tick: 50
max-processing-time: 5
operation-delay: 3
spread-operations: true
Mid-Range Servers (4-8GB RAM, 4-8 cores):
performance:
anti-lag:
max-blocks-per-tick: 100
max-processing-time: 10
operation-delay: 2
spread-operations: true
High-End Servers (8GB+ RAM, 8+ cores):
performance:
anti-lag:
max-blocks-per-tick: 200
max-processing-time: 15
operation-delay: 1
spread-operations: false
performance:
memory:
max-cached-selections: 10 # Maximum cached selections per player
cache-cleanup-interval: 600 # Cache cleanup interval (ticks)
max-memory-usage: 100 # Maximum memory usage (MB)
Selection Caching
Caches recent selections to avoid recalculation
Automatically cleans up old selections
Limits cache size per player
Memory Limits
Prevents excessive memory usage
Automatically frees memory when limits are reached
Monitors memory usage in real-time
Conservative Memory Settings:
performance:
memory:
max-cached-selections: 5
cache-cleanup-interval: 300
max-memory-usage: 50
Balanced Memory Settings:
performance:
memory:
max-cached-selections: 10
cache-cleanup-interval: 600
max-memory-usage: 100
Aggressive Memory Settings:
performance:
memory:
max-cached-selections: 20
cache-cleanup-interval: 1200
max-memory-usage: 200
wand:
rendering:
render-interval: 3 # Ticks between selection updates
Low-End Servers:
wand:
rendering:
render-interval: 5 # Less frequent updates
Mid-Range Servers:
wand:
rendering:
render-interval: 3 # Balanced updates
High-End Servers:
wand:
rendering:
render-interval: 1 # Frequent updates
wands:
basic:
particles:
enabled: true
count: 2 # Fewer particles for performance
advanced:
particles:
enabled: true
count: 3
expert:
particles:
enabled: true
count: 5
performance:
optimization:
async-processing: true # Use async processing where possible
batch-updates: true # Batch block updates
chunk-based-processing: true # Use chunk-based processing
max-chunks-per-operation: 4 # Maximum chunks per operation
Async Processing
Processes operations in background threads
Reduces main thread load
Improves server responsiveness
Batch Updates
Groups multiple block updates together
Reduces server tick impact
Improves overall performance
Chunk-Based Processing
Processes blocks by chunks
Reduces memory fragmentation
Improves cache efficiency
Conservative Processing:
performance:
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 2
Balanced Processing:
performance:
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 4
Aggressive Processing:
performance:
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 8
restrictions:
limits:
max-blocks-per-use: 10000 # Maximum blocks per wand use
max-blocks-per-second: 100 # Anti-lag rate limiting
daily-limit: 0 # Daily usage limit (0 = unlimited)
session-limit: 0 # Session usage limit (0 = unlimited)
Strict Restrictions (Low-End Servers):
restrictions:
limits:
max-blocks-per-use: 5000
max-blocks-per-second: 50
daily-limit: 100000
session-limit: 10000
Moderate Restrictions (Mid-Range Servers):
restrictions:
limits:
max-blocks-per-use: 10000
max-blocks-per-second: 100
daily-limit: 0
session-limit: 0
Loose Restrictions (High-End Servers):
restrictions:
limits:
max-blocks-per-use: 50000
max-blocks-per-second: 500
daily-limit: 0
session-limit: 0
wand:
physics:
break-enabled: true # Enable physics for block breaking
place-enabled: true # Enable physics for block placement
update-delay: 1 # Delay between physics updates
max-blocks-per-update: 50 # Maximum blocks per physics update
Performance-Focused:
wand:
physics:
break-enabled: false # Disable physics for performance
place-enabled: false
update-delay: 5
max-blocks-per-update: 25
Balanced:
wand:
physics:
break-enabled: true
place-enabled: true
update-delay: 1
max-blocks-per-update: 50
Realistic:
wand:
physics:
break-enabled: true
place-enabled: true
update-delay: 1
max-blocks-per-update: 100
performance:
anti-lag:
max-blocks-per-tick: 200
max-processing-time: 20
operation-delay: 1
spread-operations: false
memory:
max-cached-selections: 20
cache-cleanup-interval: 1200
max-memory-usage: 200
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 8
performance:
anti-lag:
max-blocks-per-tick: 100
max-processing-time: 10
operation-delay: 2
spread-operations: true
memory:
max-cached-selections: 10
cache-cleanup-interval: 600
max-memory-usage: 100
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 4
performance:
anti-lag:
max-blocks-per-tick: 50
max-processing-time: 5
operation-delay: 3
spread-operations: true
memory:
max-cached-selections: 5
cache-cleanup-interval: 300
max-memory-usage: 50
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 2
# Test performance with specific settings
/bw test performance
# Benchmark current configuration
/bw benchmark
# Stress test with multiple players
/bw stresstest <players> <duration>
Monitor these key metrics:
TPS (Ticks Per Second) - Should stay above 18
Memory Usage - Should not exceed 80% of available RAM
CPU Usage - Should not exceed 80% of available CPU
Block Processing Rate - Should match your settings
High CPU Usage:
Reduce max-blocks-per-tick
Increase operation-delay
Enable spread-operations
Reduce particle counts
High Memory Usage:
Reduce max-cached-selections
Decrease cache-cleanup-interval
Lower max-memory-usage
Enable more frequent cleanup
Low TPS:
Reduce processing limits
Enable async processing
Increase operation delays
Limit concurrent operations
Lag Spikes:
Enable operation spreading
Reduce batch sizes
Increase cleanup frequency
Monitor for memory leaks
performance:
anti-lag:
enabled: true
max-blocks-per-tick: 25
max-processing-time: 2
operation-delay: 5
spread-operations: true
memory:
max-cached-selections: 3
cache-cleanup-interval: 300
max-memory-usage: 25
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 1
performance:
anti-lag:
enabled: true
max-blocks-per-tick: 100
max-processing-time: 10
operation-delay: 2
spread-operations: true
memory:
max-cached-selections: 10
cache-cleanup-interval: 600
max-memory-usage: 100
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 4
performance:
anti-lag:
enabled: true
max-blocks-per-tick: 500
max-processing-time: 25
operation-delay: 1
spread-operations: false
memory:
max-cached-selections: 50
cache-cleanup-interval: 1800
max-memory-usage: 500
optimization:
async-processing: true
batch-updates: true
chunk-based-processing: true
max-chunks-per-operation: 16
This comprehensive performance tuning guide ensures BuildersWand runs efficiently on your server while providing the best possible user experience.