OptiZomb

Performance optimization for Project Zomboid

This is an unofficial, unauthorized patch. OptiZomb is not affiliated with, endorsed by, or supported by The Indie Stone.

This software modifies core game behavior. Bugs are very likely. Crashes, save corruption, and unexpected behavior may occur. Back up your saves. The author is not responsible for any data loss or damage.

Use at your own risk.

Project Zomboid was never designed to handle massive hordes smoothly. The game's rendering and simulation code runs almost entirely on a single CPU core, and the GPU spends most of its time waiting instead of drawing. OptiZomb fixes both problems.

The Rendering Problem (OptiZomb Lite)

Every frame, vanilla Zomboid asks the GPU "did anything go wrong?" after setting up each light on each zombie. This sounds harmless, but it forces the GPU to completely stop what it's doing and report back — up to 10,000 times per frame. It's like a manager interrupting a worker to ask "any problems?" after every single task. We removed these unnecessary check-ins, and that alone eliminated roughly 85% of the frame time spent rendering zombies.

On top of that, we:

The Simulation Problem (OptiZomb Full)

Vanilla Zomboid updates every zombie one-by-one on the main thread. OptiZomb splits this work across all your CPU cores. Zombie movement, pathfinding, collision separation, and bone animation all run in parallel. Zombies far from the player get smart shortcuts — distant ones skip physics separation entirely, mid-range ones only check every few frames, and faraway zombies use simplified skeletons (skipping fingers, toes, and other bones you'd never notice).

We also fixed over a dozen hidden thread-safety bugs that would have caused crashes or glitches under parallel execution — from shared random number generators to sound system calls that can't run off the main thread.

Performance

Scenario Vanilla Lite Full
510 zombies (vanilla cap) ~10-15 FPS ~25-35 FPS ~35-45 FPS
1,000 zombies N/A (culled) ~10-20 FPS ~20-30 FPS
2,000+ zombies N/A (culled) ~5-10 FPS ~10-20 FPS

Estimates based on profiling data. Actual results vary by hardware, settings, and scene complexity. Vanilla hard-caps rendered zombies at 510.

Downloads

OptiZomb Lite

Rendering fixes only. Works client-side, safe* on any unpatched server. Install with the one-click installer.

Coming Soon

*Bugs likely, backup your saves.

SHA-256: 926df898fb3efac2cf468f56251cb0accfa8863d69f7cd47ecc03a57a1a3120b

OptiZomb Full

Everything in Lite plus multithreaded simulation. Both the client and the server must be running the same version.

Coming Soon

REPEAT. DO NOT USE WITH UNPATCHED SERVERS.

Why Full Requires Matching Versions

In multiplayer, the server is the authority on where every zombie is and what it's doing. The client and server need to agree on how zombies move, push each other apart, and interact with the world.

OptiZomb Full changes the rules for all of that — zombies separate differently, physics pushes are stronger, collision checks are throttled at distance, and Lua events are batched instead of fired immediately. If only one side has these changes, the server and client will quietly disagree about where zombies are.

You'll see zombies rubber-banding, teleporting, or walking through walls as the server corrects positions the client got wrong (or vice versa). This is called desync, and it gets worse the more zombies are on screen — exactly the scenario OptiZomb is built for.

To avoid this, everyone playing together needs to be on the same page: either all vanilla, or all patched.

Source Code

OptiZomb is closed source. The game's source code is the property of The Indie Stone, and this patch necessarily touches decompiled game code. Publishing the patch source would mean leaking their proprietary code, which we won't do. The patch is distributed as a binary only.

4,096 Zombies