-
Notifications
You must be signed in to change notification settings - Fork 0
Home
prop11 edited this page Sep 8, 2026
·
2 revisions
Welcome to the official documentation and technical wiki for Project Zomboid Optimiser (PZO).
PZO is a comprehensive, low-level performance suite and runtime instrumentation engine for Project Zomboid Build 42 and Build 41. It optimizes both desktop clients and dedicated multiplayer servers through live JVM bytecode transformations, native C/C++ hardware acceleration, high-precision timer governors, off-heap network buffer pooling, and multi-core simulation engines.
- Micro-Stutter Elimination: Elevates OS multimedia timer resolution from 15.6ms down to 1.0ms, synchronizing frame pacing and eliminating micro-freezes.
- Multi-Core Chunk Streaming: Neutralizes thread contention and log locks during fast vehicle travel and map exploration.
-
Vanilla Bug Fixes: Patches recursive bugs (such as the
IsoGridSquare.isWallToStackOverflowError bug) directly in memory. - Deep Memory Caching: Replaces expensive repeated allocations with off-heap page-aligned direct memory pools.
- In-Game F10 Control Center: Real-time telemetry monitoring, thread configuration, and optimization toggles accessible in-game.
- Zero-Rubberband Networking: Off-heap Netty direct byte buffer pooling and 4096 UDP datagram sockets for 10-64+ player servers.
-
Multi-Threaded Zombie Simulation: Scales
ForkJoinPoolparallelism across all host CPU cores (up to 32 worker threads) for pathfinding and horde migration. -
Zero-Lag World Saves: 256KB asynchronous disk write buffering for SQLite databases (
players.db,vehicles.db) and map chunks. -
Linux & Container Native Sanitizer: Automatically resolves
steamclient.sopaths and symlinks for Pterodactyl, Docker, and Linux hosts. -
Live Telemetry Daemon: Exports real-time server metrics (TPS, heap usage, GC pause ms, thread counts) to
pzo_server_telemetry.jsonevery 5 seconds.
| Environment | Supported Versions | Architecture | Optimization Mode |
|---|---|---|---|
| Windows Desktop | Build 42 / Build 41 | x86_64 (64-bit) | 1-Click Installer (install.bat), Native DLL, JavaAgent |
| Linux Desktop & Steam Deck | Build 42 / Build 41 | x86_64 (64-bit) | Shell script (pzo_optimizer.sh), Native SO, JavaAgent |
| macOS (Intel & Apple Silicon) | Build 42 / Build 41 | x86_64 / Rosetta 2 | Command script (pzo_optimizer.command), JavaAgent |
| Linux Dedicated Servers | Build 42 / Build 41 | x86_64 (64-bit) | Headless JavaAgent (-javaagent:PZOServerEngine.jar) |
| Pterodactyl & Docker Panels | Build 42 / Build 41 | x86_64 (64-bit) | Headless JavaAgent (-javaagent:PZOServerEngine.jar) |
Explore the sections below to get started:
-
- Automated installers for Windows, Linux, Steam Deck, and macOS.
- Manual configuration via
ProjectZomboid64.json. - Verifying engine status in the main menu and in-game.
-
- Deploying
PZOServerEngine.jaron 3rd-party hosting providers (Pterodactyl, Docker, G-Portal, Indifferent Broccoli, Nitrado). - Configuring
ProjectZomboid64.jsonwithout breaking native Linux launchers. - Recommended JVM memory sizing (
-Xmsand-Xmx).
- Deploying
-
- Using the F10 Optimization Control Center.
- Telemetry overlay and performance tabs.
- Main menu status indicator and notice modals.
-
Architecture and Optimizations
- Technical breakdown of bytecode transformations, native C/C++ libraries, and memory governors.
- How off-heap Netty buffer pooling and multi-core scheduling work.
-
- Coexistence with ZombieBuddy (
zbNative). - Compatibility with workshop mods, overhaul mods, and Java mod loading.
- Coexistence with ZombieBuddy (
-
- Solutions for common errors (e.g.
SteamAPI_Init() failed - Steam must be running). - Diagnostic checklist and log locations.
- Solutions for common errors (e.g.