Class overrides for Project Zomboid Build 42.22.2 (Windows, Linux, macOS): smoother frames, faster chunk loading,
a faster boot, and optional modern graphics. projectzomboid.jar is never modified; every change has a switch.
Steam Workshop · Latest release · Discord · Live benchmark dashboard · Install guide
Desktop (Ryzen 7 9800X3D, RTX 4090, 5120x2160, Linux), 120 km/h through Rosewood at 19:00, uncapped. Optimizations: every optimization at its default. Enhancements: the experimental ones too and every Visuals option but remembered places, HDR and upscaling. The stock car waits for chunks; its side shows where it passed the same spot. Runs
The daily re-measure of the newest release against the game as it ships, on the same desktop and routes (every scene and machine):
| Desktop, uncapped | Stock | Optimized | Faster | Optimized: GPU / game thread |
|---|---|---|---|---|
| 120 km/h drive | 107 fps · p99 21.5 ms | 663 fps · p99 3.3 ms | 6.2x | 97 / 70 % |
| 120 km/h drive, thunderstorm + heavy fog | 53 fps · p99 58.8 ms | 504 fps · p99 4.4 ms | 9.5x | 96 / 85 % |
| Spinning walk through Rosewood, thunderstorm + heavy fog | 31 fps · p99 95.6 ms | 293 fps · p99 9.0 ms | 9.3x | 82 / 95 % |
| Horde shootout on the Riverside pier (150 zombies) | 144 fps · p99 15.3 ms | 333 fps · p99 6.4 ms | 2.3x | 92 / 83 % |
| Downtown Louisville horde (~2,000 zombies) | 44 fps · p99 55.1 ms | 133 fps · p99 16.9 ms | 3.0x | 40 / 96 % |
Ryzen 7 9800X3D, RTX 4090, 5120x2160, Linux, Build 42.21, max zoom (the shootout at zoom 1), Enhancements off. Stock: the game as it ships; its 240 fps cap is never reached. Optimized: release a0cc7a4a (2026-10-15) at its defaults. Mean of two runs a side; stock 2026-10-02/04, Louisville stock 2026-10-15 (one run). With the experimental optimizations on too, Louisville runs at 222 fps (5.0x, below). Runs: drive · storm drive · storm walk · shootout · Louisville
Important
Windows and Mac players, Build 42.22 and later: one extra step, a Steam launch option. The game's jar is signed
since 42.22.1, so PZ Optimization now loads through a Java agent, and on these two systems the game only starts it
through a Steam launch option. After installing, in Steam: right-click Project Zomboid > Properties > General >
Launch Options and paste the line the installer prints (it also copies it to the clipboard on Windows). Keep any
options you had after %command%.
Windows (use your own game folder; both paths in full). Without it the game closes at once with the agent in
ProjectZomboid64.json: Windows does not find the game's Java libraries for the agent when Steam starts the game.
Found and fixed by tieeeeen1994, thank you.
"C:\Windows\System32\conhost.exe" --headless "C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\pzopt-launch.cmd" %command%
macOS (the app has no launcher file; without it the game runs stock):
JAVA_TOOL_OPTIONS="-javaagent:'/Users/<you>/Library/Application Support/Steam/steamapps/common/ProjectZomboid/Project Zomboid.app/Contents/Java/pzopt/agent/pzopt-agent.jar'" %command%
Before or right after uninstalling, clear that box again: with the line there and the files gone, the game does not start. (Install guide)
Read before subscribing
- Subscribing is not enough. This replaces game classes; it needs the one-time install below.
- Mods: untested, unsupported. Other mods may work alongside it; nobody checks them and problems with them are not fixed.
- Multiplayer: untested, unsupported. It installs on your client only; joining a server may work, may not.
- Something wrong? main menu > PZ OPTIMIZATION > "Stock game" preset, restart, then tell us on Discord.
- Subscribe to PZ_Optimization on the Workshop, let Steam download it.
- Mods (main menu): enable PZ_Optimization; a window shows your install command.
- Copy the command, paste it into PowerShell (Windows) or a terminal (Linux, macOS), Enter.
- Quit the game; the installer copies the files when it has closed.
- Start the game, disable the mod again. The main menu has a new PZ OPTIMIZATION item.
No window? Windows (PowerShell):
irm https://github.com/xD3I/PZ_Optimization/releases/latest/download/install.ps1 | iexLinux, macOS:
curl -fsSL https://github.com/xD3I/PZ_Optimization/releases/latest/download/install.sh | bashBy hand, no command: Steam: right-click the game, Manage > Browse local files. Go up to steamapps, then
workshop\content\108600\3805285544\mods\PZ_Optimization\42\pzopt-classes. Copy everything in it into the game folder
(where projectzomboid.jar is); an older version installed there? Uninstall it first (double-click
Uninstall-PZ-Optimization.cmd in the game folder), its old files would stay beside the new ones. Then, since Build 42.22,
open ProjectZomboid64.json in that folder with a text editor and add "-javaagent:pzopt/agent/pzopt-agent.jar", as the
first line inside "vmArgs": [ (comma included), and on Windows set the launch option above; macOS: only the launch
option. Uninstalling by hand: remove that line and the launch option first. Details: Install guide, Method C.
Every method, checking that it loaded, building from source: Install guide.
Lamps and room lights traced through walls, windows and fences. Off by default: PZ OPTIMIZATION > Enhancements > Lighting and shadows > Per-pixel lighting.
Downtown Louisville, population maxed (~2,000 zombies), uncapped, Enhancements off. Stock: the game as it ships. Optimized: every optimization on, the experimental ones included (2026-10-15). The race: desktop (Ryzen 7 9800X3D, RTX 4090, 5120x2160, Linux), both sides recorded, each counter from its own run's frame log on the route clock.
Fast boot and load: desktop (Ryzen 7 9800X3D, RTX 4090, Crucial T705 NVMe, 5120x2160, Linux), launch to the world on screen, caches warm, means of two runs per side: 17.6 → 7.8 s (boot 7.4 → 5.3 s, load 10.3 → 2.5 s). Runs Handheld efficiency: Ayaneo Flip (Ryzen AI 9 HX 370, Radeon 890M, 1920x1080, Linux), thunderstorm, 120 fps cap: 34 → 78 fps, energy per frame 618 → 315 mJ (defaults + efficient cores). Runs
macOS on OpenGL 4.1: MacBook Pro M1 Pro, a walk round a pond. Stock on Apple's OpenGL 2.1 (113 fps); ours on OpenGL 4.1 with lighting, shadows, ambient occlusion, reflections and god rays on (115 fps). Runs Low-end hardware mode: Dell laptop (Core i5-6300HQ 4 cores, GTX 960M, 1920x1080, Linux), 120 km/h highway drive: the "Low-end hardware" preset + dynamic resolution held to 60 fps, 29 → 42 fps, p99 93 → 50 ms. Runs
Every feature with its before / after card (driving, hordes, weather, zoom, sound, the UI; per-pixel light, the real sky, reflections, mirrors, car glass ...): Features.
Desktop (Ryzen 7 9800X3D, RTX 4090, 5120x2160, Linux), Build 42.21, uncapped; every side of a route ran back to back (2026-10-06/07). On the drive every other mod is within 3 % of stock; the two that gain in the horde do it by changing the launcher's garbage collector and heap. Runs · The whole comparison
Updates arrive in the main menu (PZ OPTIMIZATION > UPDATE, one click; the item reads "UPDATE AVAILABLE" when one is offered). After a game update the game runs stock (the overrides only load for the revision they were built for) until you run the install command again for a matching release. Updating from Build 42.21 to 42.22 with an older PZ Optimization installed: the game stops before the main menu (42.22 signs its jar and refuses the old build's files); run the install command (or the uninstall command below) once and it starts again.
To remove it: main menu > PZ OPTIMIZATION > Uninstall PZ Optimization. Game does not start, or already
unsubscribed? Steam > Project Zomboid > Manage > Browse local files, double-click Uninstall-PZ-Optimization.cmd
(Linux, macOS: bash uninstall-pz-optimization.bash there), or paste
irm https://github.com/xD3I/PZ_Optimization/releases/latest/download/uninstall.ps1 | iex into PowerShell
(Linux, macOS: curl -fsSL https://github.com/xD3I/PZ_Optimization/releases/latest/download/uninstall.sh | bash).
Unsubscribing and "Verify integrity of game files" leave these files in the game folder; the uninstaller removes them.
On a Mac, clear the Launch Options line in Steam first (above).
| Page | What is in it |
|---|---|
| Install guide | requirements, the four install methods, checking that it loaded, uninstall, the updater, game updates |
| Benchmarks | every scene on every machine (desktop, Windows, macOS, handheld, old laptop), the other mods, boot and load, frame pacing, latency, audio |
| Features | every optimization and enhancement with its before / after card |
| Settings | the PZ OPTIMIZATION screen, frame caps, upscaling and DLSS, the performance overlay, pzopt.properties |
| How it works | what each optimization changes in the game, the install without touching the jar, what was measured and dropped |
| Limitations and roadmap | what is not tested, known issues, what is next |
| Benchmark harness | the hands-off run rig, the run queue, Jev's verdicts, the repository layout |
| Every run, in order | the run log since 2026-09-24 (earlier runs); every edit to a game class in prose |
Build 42.22.2, game revision 3d39148846 (the jar is signed: the overrides load through a Java agent, one
launcher argument). They refuse to run against any other revision: they log one line and the game behaves as stock. Project Zomboid is by The Indie Stone. This repository contains no game assets; the
edited class sources under src/overrides/ are derived from the shipped jar for the sole purpose of these patches.
















