Project Zomboid

Project Zomboid

297 ratings
Multi-Cpu Enhance *FIXED*
7
3
4
2
2
2
2
2
2
2
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
763.470 KB
7 Apr @ 8:18am
1 Change Note ( view )

Subscribe to download
Multi-Cpu Enhance *FIXED*

Description
THIS MOD *FIXED*

VOTE IF YOU LIKE THIS MOD !

✅ Drastically increase FPS
✅ Reduce lag and stuttering
✅ Optimize memory management
✅ Improve gaming experience even on less powerful PCs

Here are the files I modified:
ProjectZomboid64.json
ProjectZomboid64.bat

These modifications are compatible and tested with the latest version of the game
(Build 41 ,Build 41 Server and Build 42.7.0)
and work on both Windows 10 and Windows 11 PCs.
ONLY 64BIT VERSION.

📌DOWNLOAD LINK ON YOUTUBE VIDEO DESCRIPTION(i cant upload .bat files) IF THE MOD DOESNT WORK WITH ---- B41----

NOW WORKING WITH SERVER B41! (FIX ON YOUTUBE)

📌 NOTE ON MULTI-CPU OPTIMIZATIONS:
Project Zomboid is primarily a single-threaded game, so even with these optimizations, most of the workload remains on a single CPU core. The changes I've made still improve overall performance by optimizing:
• Memory management (multi-threaded garbage collector)
• Memory access on NUMA systems
• Secondary operations like texture loading and data compression
These optimizations cannot fully transform the game into a multi-threaded application, but they maximize efficiency within the limitations of the game engine.


If you have 32gb and the game needs, it automatically allocates more memory

This mod require a manual installation by replacing an existing Project Zomboid File
Once installed you have to enable it like others mods
Backup the old files!


HOW TO MANUAL INSTALL ON WINDOWS:

YOU NEED ONLY 2 STEPS

📌 STEP 1

- locate your 'Project Zomboid' installation folder (by default should be something like: "C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid")

- edit the ProjectZomboid64.bat

- replace all with this code:

@setlocal enableextensions
@cd /d "%~dp0"
SET _JAVA_OPTIONS=

SET PZ_CLASSPATH=.\guava-23.0.jar;commons-compress-1.27.1.jar;commons-io-2.18.0.jar;istack-commons-runtime.jar;jassimp.jar;javacord-3.8.0-shaded.jar;javax.activation-api.jar;jaxb-api.jar;jaxb-runtime.jar;lwjgl.jar;lwjgl-natives-windows.jar;lwjgl-glfw.jar;lwjgl-glfw-natives-windows.jar;lwjgl-jemalloc.jar;lwjgl-jemalloc-natives-windows.jar;lwjgl-opengl.jar;lwjgl-opengl-natives-windows.jar;lwjgl_util.jar;sqlite-jdbc-3.48.0.0.jar;trove-3.0.3.jar;uncommons-maths-1.2.3.jar;imgui-binding-1.86.11-8-g3e33dde.jar;commons-codec-1.10.jar;javase-3.2.1.jar;totp-1.0.jar;core-3.2.1.jar;./

:: Rileva hardware del sistema
for /f "tokens=2 delims==" %%a in ('wmic OS get TotalVisibleMemorySize /value') do set /a total_mem=%%a/1024
for /f "tokens=2 delims==" %%a in ('wmic cpu get NumberOfCores /value') do set /a num_cores=%%a
for /f "tokens=2 delims==" %%a in ('wmic cpu get NumberOfLogicalProcessors /value') do set /a num_threads=%%a

:: Imposta memoria in base alla RAM disponibile
if %total_mem% GTR 16000 (
SET MEM_MAX=10240m
SET MEM_MIN=4096m
) else if %total_mem% GTR 12000 (
SET MEM_MAX=8192m
SET MEM_MIN=2048m
) else if %total_mem% GTR 8000 (
SET MEM_MAX=6144m
SET MEM_MIN=2048m
) else (
SET MEM_MAX=4096m
SET MEM_MIN=1024m
)

:: Imposta thread pool e GC in base a CPU
if %num_cores% LEQ 2 (
set GC_THREADS=1
set CONCURRENT_THREADS=1
set FJ_PARALLELISM=2
) else if %num_cores% LEQ 4 (
set GC_THREADS=2
set CONCURRENT_THREADS=2
set FJ_PARALLELISM=4
) else if %num_cores% LEQ 8 (
set GC_THREADS=4
set CONCURRENT_THREADS=2
set FJ_PARALLELISM=6
) else (
set GC_THREADS=6
set CONCURRENT_THREADS=3
set FJ_PARALLELISM=8
)

:: Avvia con impostazioni ottimizzate per multi-core
echo Avvio Project Zomboid con ottimizzazioni multi-core...
echo CPU: %num_cores% core, %num_threads% thread
echo RAM: %total_mem% MB (Allocati: %MEM_MAX%)
echo Thread concorrenti: %FJ_PARALLELISM%

".\jre64\bin\java.exe" -verbose:class -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -XX:+UseZGC -XX:ZCollectionInterval=120 -XX:ConcGCThreads=%CONCURRENT_THREADS% -XX:+UnlockExperimentalVMOptions -XX:+AlwaysPreTouch -XX:+UseNUMA -XX:+DisableExplicitGC -Xmx%MEM_MAX% -Xms%MEM_MIN% -Djava.library.path=./win64/;./ -Dguava.library.path=. -Djogl.disable.openglcore=false -XX:+OptimizeStringConcat -Dzomboid.multithreading=true -Dzomboid.thread.model=worksteal -Dzomboid.thread.priority=high -Dzomboid.threadpool.size=%num_cores% -Djava.util.concurrent.ForkJoinPool.common.parallelism=%FJ_PARALLELISM% -cp %PZ_CLASSPATH% zombie.gameStates.MainScreenState %1 %2

IF %ERRORLEVEL% NEQ 0 (
echo Tentativo con impostazioni di memoria ridotte...
".\jre64\bin\java.exe" -verbose:class -Djava.awt.headless=true -Dzomboid.steam=1 -Dzomboid.znetlog=1 -XX:-CreateCoredumpOnCrash -XX:-OmitStackTraceInFastThrow -XX:+UseG1GC -Xmx3072m -Xms1024m -Djava.library.path=./win64/;./ -Dguava.library.path=. -Dzomboid.multithreading=true -Dzomboid.threadpool.size=2 -cp %PZ_CLASSPATH% zombie.gameStates.MainScreenState %1 %2
)

PAUSE


📌 STEP 2

- in another window open the mod folder (by default should be: "C:\Program Files (x86)\Steam\steamapps\workshop\content\108600\3459875383\mods\Multicpu\42\)

ex:
Program Files (x86
└───Steam
└───steamapps
└───workshop
└───content
└───108600
└───3459875383
└───mods
└───Multicpu
└───42


- copy the file ProjectZomboid64.json

- paste it in the same folder inside Project Zomboid installation folder

ex:
replace "C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\ProjectZomboid64.json"
with "C:\Program Files (x86)\Steam\steamapps\workshop\content\108600\3459875383\mods\Multicpu\42\ProjectZomboid64.json"

This will overwrite the original file with patched one

THANKS TO MY BRO : _salv0

Workshop ID: 3459875383
Mod ID: Multi-CPU
Popular Discussions View All (2)
2
5 Jul @ 12:14am
THANK YOU TO ALL OF YOU
4Zeta
1
16 Apr @ 9:43am
JOIN ITALIAN SERVER
4Zeta
213 Comments
newguy 14 hours ago 
Thank to your mod my old save before b42.11 update have a relative stable 60 fps, now it only have 12-24 fps. I really need an update for 42.11.
Mr.White 19 hours ago 
pls make fix for b42.11
TexasOmertosa 4 Aug @ 10:05pm 
not working in b42.11
一个小学生 4 Aug @ 7:34pm 
without this, i can barely move
化け物 4 Aug @ 7:29pm 
update plz
LONe 4 Aug @ 4:52pm 
Currently, there is a crash while loading after launching the game.
Pepek 30 Jul @ 10:58am 
Args for Linux Server Part 2
```
"vmArgs": [
"-Djava.awt.headless=true",
"-Xmx16G",
"-Xms4G",
"-XX:ParallelGCThreads=4",
"-XX:+UseNUMA",
"-XX:+AlwaysPreTouch",
"-XX:+DisableExplicitGC",
"-Dzomboid.steam=1",
"-Dzomboid.znetlog=1",
"-Djava.library.path=linux64/:natives/",
"-Djava.security.egd=file:/dev/urandom",
"-XX:-CreateCoredumpOnCrash",
"-XX:-OmitStackTraceInFastThrow",
"-Djogl.disable.openglcore=false",
"-XX:+OptimizeStringConcat",
"-XX:+UseZGC",
"-XX:ZCollectionInterval=120",
"-XX:ConcGCThreads=2",
"-XX:+UnlockExperimentalVMOptions"
]
}
```

Remember to download missing library

commons-codec-1.10.jar
commons-compress-1.27.1.jar
commons-io-2.18.0.jar
core-3.2.1.jar
guava-23.0.jar
javase-3.2.1.jar
sqlite-jdbc-3.48.0.0.jar
totp-1.0.jar
Pepek 30 Jul @ 10:57am 
Args for Linux Server PART 1
```
{
"mainClass": "zombie/network/GameServer",
"classpath": [
"java/.",
"java/commons-compress-1.27.1.jar",
"java/commons-io-2.18.0.jar",
"java/istack-commons-runtime.jar",
"java/jassimp.jar",
"java/guava-23.0.jar",
"java/javacord-2.0.17-shaded.jar",
"java/javax.activation-api.jar",
"java/jaxb-api.jar",
"java/jaxb-runtime.jar",
"java/lwjgl.jar",
"java/lwjgl-natives-linux.jar",
"java/lwjgl-glfw.jar",
"java/lwjgl-glfw-natives-linux.jar",
"java/lwjgl-jemalloc.jar",
"java/lwjgl-jemalloc-natives-linux.jar",
"java/lwjgl-opengl.jar",
"java/lwjgl-opengl-natives-linux.jar",
"java/lwjgl_util.jar",
"java/sqlite-jdbc-3.48.0.0.jar",
"java/trove-3.0.3.jar",
"java/uncommons-maths-1.2.3.jar",
"java/commons-codec-1.10.jar",
"java/javase-3.2.1.jar",
"java/totp-1.0.jar",
"java/core-3.2.1.jar"
],
```
Deus 17 Jul @ 12:12pm 
Trying the mod out in the most recent update.. game wont launch after editing bat and json file?
kongputi 15 Jul @ 10:11pm 
Is there a Mac OS version? I really need it!