How to Host a Lag-Free Modded Minecraft Server: Performance Tuning & Best Settings
Expert guide to running a heavily modded Minecraft server with high TPS, fast chunk generation, and zero lag - using VPSLab's NVMe Minecraft hosting.

A modded Minecraft server can turn into a lag-filled nightmare the moment a few players start chunk-loading or automation kicks in. The difference between a smooth 20 TPS experience and a stuttering mess often comes down to how you configure the server - and the hardware underneath.
VPSLab's Minecraft server hosting runs on NVMe SSD storage with dedicated CPU cores and free DDoS protection, giving you a solid foundation. This guide shows you how to tune the server software side to squeeze out every last bit of performance.
#1. Choose the right plan and server software
#RAM and CPU sizing
| Players | Mods/Plugins | Recommended RAM | CPU Threads |
|---|---|---|---|
| 2-5 | Light (<30) | 4 GB | 2 |
| 5-10 | Medium (30-80) | 8 GB | 3-4 |
| 10-20 | Heavy (80+) | 12-16 GB | 4-6 |
Because VPSLab uses dedicated vCPU threads (not shared, oversold cores), the CPU allocation you pick is what you actually get.
#Server jar selection
- For mods: Forge or Fabric (with performance mods like Lithium, Phosphor, and Sodium if the client also uses Fabric). Fabric often runs lighter for purely server-side modpacks.
- For plugins (and some mods): Paper or Purpur are excellent, especially if you combine mods with plugins via a hybrid loader like Magma or Mohist. Be ready for a bit more CPU overhead with hybrids.
Start with the jar your chosen modpack recommends, then tweak.
#2. Configure server.properties for performance
Edit server.properties in your server's root directory. The following
settings have the biggest impact on lag:
network-compression-threshold=256
simulation-distance=6
view-distance=8
max-tick-time=60000
max-players= (set to your expected peak, not max theoretical)
allow-flight=true
enable-jmx-monitoring=false
view-distance=8(or lower) drastically reduces the number of chunks the server sends to players, lowering CPU and bandwidth usage.simulation-distance=6limits the distance at which entities and redstone are processed. For modded worlds with heavy automation, dropping this to 4 can save massive CPU cycles.max-tick-time=60000prevents the watchdog from killing the server if a single tick takes too long (common with world-generating mods). This setting is safe on dedicated resources like VPSLab's.
#3. Tune the JVM flags
Don't use the default java -jar command. Pass optimised JVM arguments in
your start script:
java -Xms4G -Xmx8G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 \
-XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch \
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 \
-XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 \
-XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem \
-XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs \
-Daikars.new.flags=true -jar server.jar nogui
Replace -Xms4G and -Xmx8G with your actual allocated RAM (Xms = minimum,
Xmx = maximum). Using G1GC with Aikar's flags is the industry standard for
Minecraft servers and keeps garbage-collection pauses short.
#4. Install performance-boosting mods & plugins
#Forge / Fabric mods (server-side)
- Lithium (Fabric) - improves mob AI, physics, and block ticking.
- Phosphor / Starlight (Fabric) - rewrites the lighting engine for huge speed gains.
- FerriteCore (Forge/Fabric) - reduces memory usage.
- LazyDFU (Forge/Fabric) - delays DataFixerUpper initialisation, cutting startup time and memory.
#Paper / Purpur plugins
- ClearLag - removes ground items and entities on a configurable schedule.
- Chunky - pre-generates chunks so players don't generate new terrain on the fly.
- Spark - profiles CPU and memory usage in real time to spot lag sources.
#5. Pre-generate the world
One of the biggest lag spikes comes from new chunk generation. Use a plugin
like Chunky or the /forge generate command to pre-generate a radius of at
least 5,000 blocks before opening the server to players. Your NVMe storage
makes this process significantly faster than traditional HDD-based hosts.
#6. Schedule automatic restarts
Modded servers leak memory over time. A daily restart at off-peak hours
clears caches and prevents memory creep. On Linux you can use a simple cron
job or screen with a restart script; VPSLab's game server panel
includes built-in scheduled tasks once the feature rolls out for all titles.
#Why VPSLab works for modded Minecraft
- NVMe SSDs - fast chunk loading and world saves, even with huge modpacks.
- Dedicated vCPU threads - no noisy neighbours stealing your tick time.
- DDoS protection - keeps your server online, even if someone tries to knock it offline.
- Instant setup - deploy a Minecraft server in minutes and start tweaking immediately.
Ready to build a lag-free modded world? Deploy your Minecraft server now and put these settings to work on enterprise NVMe hardware.
Ready to deploy your own VPS?
Privacy-first hosting with crypto payments and instant setup.
Related articles
The Ultimate Guide to Buying a VPS with Cryptocurrency
Why pay with Bitcoin or Monero for hosting, how to complete your first crypto VPS purchase safely, and what to look for in a privacy-first provider.
How to Set Up a Secure, Privacy-First Windows RDP Server on VPSLab
Step-by-step guide to deploying a hardened Windows RDP VPS with full admin access, crypto payments, and zero KYC - perfect for privacy-conscious remote work.