Low End PCs

From GT New Horizons

GT New Horizons 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 GregTech: New Horizons more tolerable on a potato PC.

Java 17+

The single biggest performance improvement you can do is make sure you use a launcher (Prism or MultiMC) that can run GT:NH with Java 17 or greater. Java 17+ has significantly improved garbage collection compared to Java 8.

Playing using a 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 GT:NH 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

These changes will affect your game experience, but not in super significant ways.

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

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 chuck 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-". If you encounter problems you can change this back to your original Java installation.



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 MultiMC/Prism Launcher and use that instead of a curse/twitch/technic launcher. (Guide to using GTNH with MultiMC/Prism here)
  3. Install OptiFine and tune it - the E7 version works better with shaders. Note that you will need to check the options.
  4. If you 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.
  5. Set the render distance to 2-10 chunks depending on your machine.
  6. Use "Advanced OpenGl" (standard Minecraft option) if possible (set it to Fast).
  7. Cap your FPS to 60, or lower if you struggle getting to 60.
  8. Turn off Texture and Terrain animation (helps tremendously on Macs).
  9. 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.
  10. 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 draw text, e.g. Nuclear Control information panels.