[Build 42] Ultimate Performance Boost: GraalVM 25 & Generational ZGC (english version)

Project Zomboid978 views32 favorites3 min readby Haf HunterUpdated Jun 9View on Steam ↗

how to

[Build 42] Ultimate Performance Boost: GraalVM 25 & Generational ZGC

This guide optimizes the Project Zomboid engine for maximum FPS and eliminates micro-stutters, even with massive zombie hordes and hundreds of mods.
Why do this?
The bundled Java version in Project Zomboid is stable but not tuned for maximum performance. By switching to GraalVM 25 and using the Generational Z-Garbage-Collector (ZGC), we leverage cutting-edge compiler technology specifically designed for CPU-intensive applications (like PZ).
DISCLAIMER / WARNING
Use at your own risk: These changes deeply alter the game's runtime environment. Neither I nor "The Indie Stone" are responsible for broken save games or instability.
Backup: Always create a backup of your jre64 folder and your .json file before making any changes!
Updates: Official Project Zomboid updates via Steam will often reset the ProjectZomboid64.json file and the jre64 folder. You will need to repeat these steps after an update.
Multiplayer: These optimizations are client-side and work in multiplayer. If you are hosting a dedicated server, these parameters must be set separately in the server startup files.

Step 1: Install GraalVM 25
    [] Download GraalVM Community (Java 25) for your system (e.g., Windows x64).Download link: https://www.graalvm.org/downloads/[] Go to your game folder:
    SteamLibrary\steamapps\common\ProjectZomboid
    [] Rename the jre64 folder to jre64_backup.[] Create a new folder named jre64 and extract the contents of the GraalVM archive into it.

Step 2: High-End Launch Parameters
Open the ProjectZomboid64.json file in the main directory using a text editor (e.g., Notepad++). Replace the entire
"vmArgs": [...]
block with this optimized code:
"vmArgs": [ "-Djava.awt.headless=true", "-Xms16g", "-Xmx16g", "-XX:+UnlockExperimentalVMOptions", "-XX:+EnableJVMCI", "-XX:+UseJVMCICompiler", "-XX:+UseZGC", "-XX:+ZGenerational", "-XX:+AlwaysPreTouch", "-XX:+DisableExplicitGC", "-Dzomboid.steam=1", "-Dzomboid.znetlog=1", "-Djava.library.path=win64/;.", "-XX:-CreateCoredumpOnCrash", "-XX:-OmitStackTraceInFastThrow" ],

What do these parameters do?
    [] -Xms16g -Xmx16g: Allocates a fixed 16 GB of RAM to the game (ideal for massive mod builds). (See RAM configurations in the next section!)[] -XX:+UseJVMCICompiler: Activates the highly optimized Graal compiler (the core of the FPS boost).[] -XX:+UseZGC -XX:+ZGenerational: The most advanced Garbage Collector. It ensures that RAM cleanups take under 1 millisecond – no more stuttering when loading chunks or zombies![] -XX:+AlwaysPreTouch: Allocates the RAM immediately on startup, preventing loading stutters while playing.

Addendum: RAM Configurations (16GB / 32GB+)
Not everyone has 64 GB of RAM. It is crucial to adjust the -Xms (Starting RAM) and -Xmx (Maximum RAM) values in the code above to match your system. The remaining parameters stay exactly the same for GraalVM.
System RAM
Recommended Setting (-Xms & -Xmx)
Target Audience
16 GB
"-Xms6g", "-Xmx6g"
Vanilla+ or small mod lists.
32 GB
"-Xms12g", "-Xmx12g"
Large mod lists (Brita, Raven Creek, etc.).
64 GB+
"-Xms16g", "-Xmx16g"
Extreme mod lists & Server Hosts.
Important: Never allocate your entire system RAM to the game. Windows and background apps need space too, otherwise you risk crashes (Bluescreens).
Step 3: Verify Success
Start the game and open console.txt (located in
C:\Users\YourName\Zomboid
).
Look at the first few lines. It should look something like this:
java.version=25 java.vm.vendor=Oracle Corporation (or GraalVM) JVM (max: 16384 Mb)

Tip: Search the log (console.txt) for JVMCI. If you see
java.runtime.version=25.0.3+9-LTS-jvmci-b01
or
java.vendor.version=Oracle GraalVM 25...
(depending on the latest version), the turbo boost is active!
FAQ - Frequently Asked Questions

Q: My game won't start after applying the changes!

ADouble-check the ProjectZomboid64.json. A missing comma or misplaced quotation mark will cause the game to crash instantly. Use an online JSON validator if you are unsure about the formatting.

Q: I see "Oracle Corporation" instead of "GraalVM" in the log.

A: That is completely normal. GraalVM is an Oracle product. The crucial line is
java.vm.version
. If -jvmci appears there, you did everything right!

Q: What happens when the game updates?

ASteam will likely overwrite your ProjectZomboid64.json. Simply copy and paste your optimized vmArgs back in. The jre64 folder usually remains intact, but you should double-check it just in case.

Q: My PC runs hotter than before.

AGraalVM optimizes more aggressively and utilizes your CPU performance much more efficiently. This is a sign that the engine is actually working harder to keep your FPS stable. Ensure your system has adequate cooling!

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.