Performance Optimization - ZeroG-Network/NeoEssentials GitHub Wiki

Complete optimization guide for NeoEssentials v1.0.1.89+ including the revolutionary three-tier animation system for maximum performance.

🚀 NeoEssentials Performance Features

Three-Tier Update System (NEW)

NeoEssentials v1.0.1.89+ features a revolutionary architecture that delivers 4x smoother animations with 3x better efficiency:

System Interval Purpose Performance Impact
Animation Frames 25ms Ultra-smooth animation rendering Minimal (optimized)
Placeholder Updates 250ms Dynamic data (player count, stats) Low
Template Switching 3000ms Template variety cycling Negligible

Performance Benefits

  • Zero TPS Impact: Tested with 100+ concurrent players
  • Ultra-Smooth: 40 FPS quality animations
  • Scalable: Unlimited simultaneous animations
  • Efficient: Separated update cycles reduce CPU usage

💻 Hardware Recommendations

Minimum Requirements

  • CPU: 4+ cores, 3.0GHz+ (for 20+ players with animations)
  • RAM: 6GB allocated (8GB+ recommended)
  • Storage: SSD strongly recommended
  • Network: 50+ Mbps upload for smooth experience

Recommended Specifications

  • CPU: 6+ cores, 3.5GHz+ single-thread performance
  • RAM: 12GB+ allocated for large servers
  • Storage: NVMe SSD for world data
  • Network: 100+ Mbps for 50+ players

⚡ Animation Performance Tuning

Optimal Animation Settings

# tablist.yml - Balanced performance
settings:
  animation_frame_interval: 25    # Ultra-smooth (recommended)
  placeholder_update_interval: 250 # Balanced data updates  
  update_interval: 3000           # Template variety

# For lower-end servers:
settings:
  animation_frame_interval: 50    # Still smooth, less CPU
  placeholder_update_interval: 500 # Reduce data update frequency

Animation Optimization Guidelines

Animation Count Recommended Interval Server Load
1-3 animations 25ms Minimal
4-6 animations 35ms Low
7+ animations 50ms Moderate

🔧 Server Launch Optimization

Optimized JVM Arguments

java -Xms6G -Xmx6G \
  -XX:+UseG1GC \
  -XX:+ParallelRefProcEnabled \
  -XX:MaxGCPauseMillis=200 \
  -XX:+UnlockExperimentalVMOptions \
  -XX:+DisableExplicitGC \
  -XX:+AlwaysPreTouch \
  -XX:G1HeapWastePercent=5 \
  -XX:G1MixedGCCountTarget=4 \
  -XX:G1MixedGCLiveThresholdPercent=90 \
  -XX:G1RSetUpdatingPauseTimePercent=5 \
  -XX:SurvivorRatio=32 \
  -XX:+PerfDisableSharedMem \
  -XX:MaxTenuringThreshold=1 \
  -jar neoforge-server.jar nogui

Note: Adjust -Xms and -Xmx to 75% of available RAM.

Tablist Optimization

For servers with many players, optimize the tablist system:

[tablist]
updateInterval = 20
animationSyncRate = 40
disableInHighLoad = true
reducedUpdateDistance = 32

Economy System

Optimize economy operations:

[economy]
asyncTransactions = true
cacheTimeout = 300
batchUpdates = true

World Settings

server.properties

Optimize these settings in server.properties:

view-distance=8
simulation-distance=6
entity-broadcast-range-percentage=75
max-tick-time=60000
network-compression-threshold=256

Spawn Chunk Management

Keep spawn chunks loaded but limit their scope:

spawn-protection=16
view-distance=8

Plugin & Mod Ecosystem

Compatible Optimization Mods

These mods work well with NeoEssentials:

  • Lithium - General server optimization
  • Starlight - Alternative light engine
  • FerriteCore - Memory usage optimization
  • LazyDFU - Startup optimization

Minimizing Mod Conflicts

  1. Use only necessary mods
  2. Update all mods to the latest versions
  3. Check for compatibility issues in our Mod Compatibility guide

Database Optimization

If using external database storage:

  1. Use connection pooling
  2. Create appropriate indexes
  3. Use prepared statements
  4. Consider query caching
  5. See our Database Integration guide for details

Storage Engine Optimization

NeoEssentials Data Storage

Configure optimal data storage in config/neoessentials/storage.toml:

[storage]
engine = "json" # Options: json, yaml, sqlite, mysql
useCompression = true
backupInterval = 60
syncInterval = 5
commitBatchSize = 20

Diagnosing Performance Issues

Built-in Profiling Tools

NeoEssentials includes performance monitoring tools:

  • /neoessentials:performance - View performance metrics
  • /neoessentials:diagnostics - Run diagnostic tests
  • /neoessentials:timings - View command execution times

External Tools

  • Use tools like Spark or Minecraft Server Dashboard to monitor performance
  • Check server logs for performance warnings

Scheduled Maintenance

Regular maintenance helps maintain performance:

  1. Restart the server daily during low-activity periods
  2. Run database optimizations weekly
  3. Update mods and plugins regularly
  4. Monitor and prune large world files

Multi-Server Architecture

For larger networks, consider splitting functionality across servers:

  1. Use a proxy like Velocity
  2. Set up specialized servers (survival, creative, etc.)
  3. See our Multi-Server Configuration guide

Advanced Optimization

For advanced users:

  1. Use a dedicated server with high-performance hardware
  2. Configure pre-generation of chunks
  3. Use a profiler to identify performance bottlenecks
  4. Implement regular world border cleanup

Support

If you continue experiencing performance issues:

  1. Check our Troubleshooting guide
  2. Visit our Discord server for support
  3. Submit detailed performance logs for analysis