Skip to content
GT New HorizonsGTNH 2.9.0 · Community server

GT New Horizons · Getting started

Low End PCs

GTNH is a huge modpack with many mods. Playing on a low performance PC (anything less than a sweet-spot PC from ~3 years ago) is not going to be an enjoyable experience. This page has some tips on making GTNH more tolerable on a potato PC.

Separate Server PC

Offloading all the server lifting onto a spare computer, even if it is lower performance than your gaming PC, will definitely help with FPS. See Server Setup for instructions on installing GTNH as a server/client instance.

Even setting up a separate server instance on the same PC can help improve performance since it is not sharing the same memory cap as the client. You can also play on one of the official or unofficial servers.

Configuration Changes

Launcher Choice

There are many different launchers that can run GTNH (see Installing and Migrating), but not all of them are compatible with Java 25 (GTNH 2.8+ only). Java 25 is so powerful because it reduces the amount of memory in object headers. That allows GTNH to run with less memory without any change to the code. For older releases, Java 17-21 is the best option because it also has reduced memory usage compared to Java 8.

Java 25

The single biggest performance improvement that can be made is using a launcher (Prism) that can run GTNH with Java 25.

World Chunkgen

Placing an ore vein in a chunk can be an expensive operation. Reducing the ore density and shrinking the size of ore veins will reduce the number of operations. You can safely reduce densities to 2 or 3.

The same goes for the GT red granites, black granites, basalts, and marbles. They can cause significant world chunkgen lag - a 50 block diameter rock is more than 65k blocks to place. Reduce their frequency and size to help with lag.

These settings can be found in config/gregtech/worldgeneration.cfg

Railcraft places abyssal stone "geodes" frequently in some biomes, and quarried stones across most biomes. They can be disabled in config/railcraft/railcraft.cfg

JVM Arguments (Java 24 + Java 25-26)

Only for Java 24 and 25-26

These arguments are shipped by default starting from Java 27

The following JVM arguments may be of interest for those playing on Java versions 24 and 25-26. For a more concrete guide, see installing and Migrating.

You should set your minimum and maximum memory to the same amount, or close. GTNH recommends between 4GB and 6GB of RAM. Use more RAM with careful consideration and testing. Setting -Xms much lower then -Xmm can cause pauses whilst the garbage collector tries to get back down to the minimum.

Java Argument Meaning
Java 24 -XX:+UnlockExperimentalVMOptions -XX:+UseCompactObjectHeaders Forces 64 bit mode
Java 25-26 -XX:+UseCompactObjectHeaders Enforces the Use of the G1GC. The following arguments are based on this.

JVM Arguments (Java 17-23)

Main Article: Installing and Migrating

JVM Arguments (Java 16 and earlier)

Not for Java 17+

Do not use these if you are using Java 17 or higher (and you should be) because they are already implemented. Use the settings recommended on the install page.

The following JVM arguments may be of interest. Sadly, not every setup is the same, so for maximum performance some fine-tuning might be needed.

You should set your minimum and maximum memory to the same amount, or close. GTNH recommends between 4GB and 6GB of RAM. Use more RAM with careful consideration and testing. Setting -Xms much lower then -Xmm can cause pauses whilst the garbage collector tries to get back down to the minimum.

Argument Meaning
-d64 Forces 64 bit mode
-XX:+UseG1GC Enforces the Use of the G1GC. The following arguments are based on this.
-XX:+UnlockExperimentalVMOptions This enables the following options
-XX:+DisableExplicitGC Disables explicit garbage collection (stops excess data collection from bad code)
-XX:MaxGCPauseMillis=80 Pause between garbage collection cycles in milliseconds. Higher Numbers might cause Microlags and increased RAM Usage, lower numbers can cause lag as well. This can be changed a bit if you are desperate.
-Dsun.rmi.dgc.server.gcInterval=2147483646 Disable Full GC runs to avoid frame stutter
-XX:G1NewSizePercent=20 This tunes the size of the space reserved for new objects. Since Java mods have a low object lifetime, this helps with GC performance.
-XX:G1ReservePercent=20 Reserve is what is kept free for the GC itself. If you have low total Memory (E.g. can not assign 6GB), try decreasing this to 10

Exploration Tips

Minecraft requests chunks up to 640 blocks away from the player. When exploring for new areas, try to minimize your speed and/or stop every 400-600 blocks to let the chunkgen catch up. Horses are convenient but can quickly outrun chunk loading. If you are interested in ore veins, it's better to do a spiral out from an area vs a fast run to a new zone. This also means the run back will be shorter.

Also, if you are in single player, try reducing your view distance. 10 is a good compromise between visibility and worldgen speed. Servers have a setting as well, view-distance.

Use a Different Java Virtual Machine

By default most Minecraft servers use Oracle's JVM, Hotspot. The OpenJ9 JVM has been shown to significantly improve the performance of modded Minecraft. This user has found version 0.14.2 to work with Minecraft Forge. The new JVM must be installed and then pointed to, for instance in MultiMC under "Java" in "Settings" this means changing "Java path:" to e.g. "C:/Program Files/AdoptOpenJDK/jdk-8.0.212.04-openj9/bin/javaw.exe". If you encounter problems you can change this back to your original Java installation.

https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/tag/jdk8u212-b04_openj9-0.14.2

https://www.reddit.com/r/feedthebeast/comments/as6p87/java_vms_and_you_how_to_reduce_your_ram_and_cpu/

Some have had good luck with GraalVM - get the Java 8 version: https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-21.2.0

General Tips

  1. Give 6GB of RAM to the modpack, or the maximum you can allocate without saturating your PC (If you have 4 or less total, it will be hardly playable at all. With 8 total, assign 5-6GB). The minimum amount of RAM given should match the maximum amount of RAM given for optimal performance, to prevent overly aggressive garbage collection behavior. Allocating more than 8GB may cause issues, since the Java Garbage Collector gets worse with larger amounts of memory. Remember the rest of your system needs some left over memory as well.
  2. Install a launcher to play on, most common option is Prism, but others such as CurseForge, Technic are also recommended. MultiMC is not recommended as much, see Guide to using GTNH with various launchers for more information
  3. Set the render distance to 2-10 chunks depending on your machine.
  4. Use "Advanced OpenGl" (standard Minecraft option) if possible (set it to Fast).
  5. Cap your FPS to 60, or lower if you struggle getting to 60, especially if you are short on allocated memory, as some of the memory allocation is done per rendered frame.
  6. Turn off Texture and Terrain animation (helps tremendously on Macs).
  7. If your FPS crashes in a particular area, look for improvements. There's a quest in HV to get a Concealment Key to hide your drawers which may help, for example.
  8. Avoid these to ensure a high FPS:
    1. Place items on ground, in biblio labels, in item frames, etc, especially items with animations or enchanted items
    2. Drawers or barrels that display their contents. Use drawer keys to hide them.
    3. Anything that draws text, e.g. Nuclear Control information panels.
  9. Specifically for versions before Version 2.6.0, Installing OptiFine and tuning it is an option - the E7 version works better with shaders. Note that you will need to check the options. For newer versions Angelica is a replacement that is installed by default in the pack.
    1. If you do use OptiFine, then remove better loading screen, as it has been reported that better loading screen takes longer to load with OptiFine. Also turn off multi chunk loading (set it to default) or it may crash.