Low End PCs

From GT New Horizons

This is a big modpack with a lot of 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.

Play using a separate server PC[edit | edit source]

Setting up a server PC is outside the scope of this page, but using one will definitely help with performance. Offloading all the server lifting onto a spare computer, even if it is lower performance than your gaming PC, will definitely help with FPS.

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[edit | edit source]

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

World Chunkgen[edit | edit source]

Placing an ore in a chunk is an expensive operation. Reducing the ore density and shrinking the size of oreveins 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[edit | edit source]

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 with careful consideration and testing. Setting -Xms much lower than -Xmm can cause pauses whilst the garbage collector to try 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 (helping when mod devs can't code)
-XX:MaxGCPauseMillis=80 Pause between garbage collection cicles 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 willing to try stuff.
-Dsun.rmi.dgc.server.gcInterval=2147483646 Disable Full GC runs to avoid 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[edit | edit source]

Minecraft appears to request chunks 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.

General tips[edit | edit source]

  1. Give 6G 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 and use that instead of a curse/twitch/technic launcher. (Guide to using GTNH with multimc 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.
  11. See below:

Use a different Java Virtual Machine[edit | edit source]

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