Optimization

Modpack Performance Optimization Guide

A collection of performance optimization tips for a smooth, lag-free modpack experience.

Before You Start — Identify What Kind of "Lag" You Have

What people call "lag" is actually two different problems mixed together. Low FPS and low TPS (Ticks Per Second) have different causes and need different fixes. Press F3 in-game and you'll see both numbers in the top-left corner — check this first, otherwise you'll waste hours fixing the wrong thing.

  • Low FPS (typically below 30) — Your GPU/CPU can't keep up with rendering. Fix with in-game video settings + disabling shaders.
  • Low TPS (below 20) — Server-side simulation is falling behind. Caused by mod conflicts, chunk leaks, or overloaded automation. Fix with JVM settings and chunk cleanup.
  • Both low — Almost always insufficient RAM or a Java version mismatch.
  • Spend the first 5 minutes *checking F3 to see which side has the problem*. Everything else comes after.

    JVM Argument Settings — The Heart of Lag Fixing

    The single biggest factor in modpack performance is JVM (Java Virtual Machine) configuration. A lot of players only touch in-game settings and leave JVM at defaults — but tuning JVM properly can add 5–10 TPS to the same modpack.

    RAM Allocation — Too Much Is Also a Problem

  • Lightweight modpacks (50 mods or fewer): 4 GB
  • Medium modpacks (100–200 mods): 6–8 GB
  • Large modpacks (200+ mods): 8–12 GB
  • ATM10 / StoneBlock late-game: 12 GB recommended
  • ⚠️ Allocating too much RAM backfires: GC (Garbage Collection) cycles get longer, freezing the game for 1–2 seconds at a time. Allocating 12 GB on a 16 GB system also slows your OS down. *Never exceed 60% of your PC's total RAM.*

    Recommended JVM Arguments (G1GC-based)

    -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200
    -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC
    -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
    

    This is known as Aikar's Flags — a battle-tested G1GC tuning set used by Minecraft servers. Paste it into the CurseForge launcher under instance settings → "More Options" → JVM Arguments (alongside -Xmx/-Xms for memory).

    Matching Java Versions

  • 1.21+ NeoForge modpacks → Java 21 required
  • 1.20.1 Forge → Java 17
  • 1.18–1.19 → Java 17
  • Pre-1.16.5 → Java 8 (or Java 17 with compatibility)
  • *Wrong Java version = guaranteed crash.* The CurseForge launcher matches versions automatically, but on Prism Launcher and similar tools you have to set this per-instance manually.

    In-Game Settings — Squeezing Out FPS

    Video Settings (Top 4 Priorities)

  • Render Distance: 8–12 chunks. *16+ will lag in late game, no exceptions.*
  • Simulation Distance: 6–8 chunks. This is *heavier than render distance.*
  • VSync: ON (reduces unnecessary GPU heat, eliminates screen tearing)
  • Particles: Minimal. Once your automation lines grow, particles explode and tank FPS.
  • Additional Recommended OFF Settings

  • Clouds: OFF
  • Entity Shadows: OFF
  • Smooth Lighting: Minimum (or OFF)
  • Biome Blend: 0 (OFF)
  • Squeezing Even More from Specific Mods

  • Dynamic Surroundings: Disabling weather/sound effects can give you 30–50 extra FPS
  • Better Foliage: Turn off leaf detail
  • Particle Man / Particle Culling: Limit particle render distance
  • Embeddium / Sodium: If your modpack already includes it, enable everything under the *Performance* category
  • Chunk Management — Late-Game TPS Fixes

    In late game with heavy automation, you'll often see *FPS staying fine but the game stuttering anyway*. That's a TPS problem caused by too many loaded chunks.

    Common Causes of Chunk Leaks

  • Leaving Mekanism Digital Miner running while traveling far away: Its chunk loader keeps memory occupied
  • Multiple Create windmills / waterwheels: High CPU usage (heaviest among automation mods)
  • AE2 ME systems with large auto-craft queues: Long queues validate every tick
  • Multiple chunk loader mods in use: Often loads more permanently than intended
  • Fixes

  • F3+T to instantly reload chunks/resources (lightweight emergency fix)
  • Disable unused automation lines with Redstone
  • Install a *profiler mod* like Spark or Observable to see which mod/block is eating TPS (server-side, recommended for multiplayer)
  • In late game, the lightest setup is letting natural *player-adjacent chunk loading* do the work instead of permanent loaders
  • Shaders — What to Know Before Turning Them On

    Shaders make the game gorgeous but *cost you 30–50 FPS instantly.* Recommended approach:

  • Play the first 60 hours without shaders — get familiar with the modpack itself first
  • Start with light shaders: *Complementary Reimagined* (included by default in Better MC)
  • Heavier shaders (BSL, SEUS, etc.) only when you have GPU headroom in late game
  • Iris (for Fabric) or Oculus (for Forge) is the shader loader
  • *Distant Horizons* combined with shaders is too heavy — use one or the other, not both
  • Crash Troubleshooting Basics

    1. How to Read a crash-report

    Go to your instance folder → crash-reports/ and open the latest file in a text editor.

    ---- Minecraft Crash Report ----
    Time: ...
    Description: Watching Server

    java.lang.OutOfMemoryError: Java heap space at net.minecraft.world.chunk... (Mekanism: ProcessChamber...)

    The key is finding the error type + the mod name in this kind of structure.

    2. Common Errors and What They Mean

  • OutOfMemoryError → RAM shortage. Increase your -Xmx value
  • NoSuchMethodError → Java version mismatch (e.g., a Java 17 mod running on Java 8)
  • NullPointerException at modX → Configuration or compatibility issue with modX. Disable that mod's config
  • TickTimeoutException → A specific mod is taking too long per tick. Usually overloaded automation
  • 3. Step-by-Step Resolution

  • Find the mod name in the crash-report
  • In that mod's folder (config/{modid}/), disable the suspicious option
  • If that fails, *delete that mod alone* and try launching again (verify compatibility with other mods)
  • Last resort: report on the modpack's Discord or the "Issues" tab on CurseForge
  • Restore from your backup save
  • Recommended Measurement Tools

  • F3 (in-game debug): FPS, TPS, RAM usage, chunk count
  • Spark (mod): TPS profiling, shows which code/mod is heavy
  • JEI search bar: Search by mod name to track which mod added which item
  • Related Reading

  • [Beginner Modpack Guide](/en/guides/beginner-modpack-guide/) — installation, JEI, backups, general basics
  • [RLCraft Beginner Survival Guide](/en/guides/rlcraft-beginner/) — 1.12.2 RLCraft-specific tips
  • [Modpacks](/en/modpacks/) — see recommended RAM per modpack
  • 📦 Related Modpacks