Repository navigation
Client patches 0.2.9 for Project Zomboid 42.21.0
Unofficial client-side fixes for Project Zomboid 42.21.0 on Windows. This package only works with that exact game version: the installer checks the SHA-256 of projectzomboid.jar and refuses any other build.
New in 0.2.9
- Disconnected to the main menu while someone builds nearby (42.21.0 bug, also in 42.20.4). When someone builds, removes or breaks a wall, door or floor near you while your game is loading that part of the map, you can be disconnected to the main menu. The console shows a single error in
WorldRegionToMetaGrid.recalculateBuildingAndRoomIDs, such asCannot read field "def" because "isoRoom" is nullor anArrayIndexOutOfBoundsException. The game's map-loading thread and its rebuild of nearby player-built buildings change the same room tables at the same moment, and nothing keeps them apart. The client fixes now let only one of them change those tables at a time; the game's own code still does all the work. Reported to TIS (forum thread).
This was checked with automated tests against the real game classes, with the unpatched game as a negative control: a stress test hit this crash in all 300 runs without the fix (including the exact "isoRoom" is null error) and ran 2.1 million rebuilds without an error with it. A single-player test that keeps rebuilding player-built rooms while the map streams in ran 12 rounds without an error. It can be turned off with the JVM flag -Dmdc.metaGridLock=off.
Players who do not install the package see no difference: everything here runs only on your own computer and changes nothing on the server or for other players.
Also included (unchanged from 0.2.8)
- Car upside down deep under the ground, falling forever with a black screen: a car your own game simulates that is upside down at least one floor below the ground is turned upright, still facing the same way, and put back on the ground.
- Car thrown tens or hundreds of tiles away while driving (42.21.0 bug), when everything around the car unloads at once while driving into an area that has not loaded yet.
- Engine sound cuts out, then the driver is pulled back to an old position (42.21.0 bug), when the map chunk under the car unloads.
- Car pushed under the floor in a collision, black screen: an upright car is put back on the ground in the same frame.
- Disconnected to the main menu near player-built houses (42.21.0 bug), when someone builds or removes something nearby while that part of the map is still loading (a different cause from the new fix above; both are included).
- Less lag where many mod vehicles are parked: an unchanged pose of a door, hood, window or armor part is not recalculated every frame (KI5 series, W900 semi trucks and similar).
- Objects vanish in player-built rooms (42.21.0 bug). TIS has fixed this internally (forum thread).
- Invisible players, zombies and vehicles (only the shadow and name tag remain): texture-pipeline leak fixes, plus a higher texture wait limit in the standard variant.
- A chunk-streaming log for black-edge reports (logging only, no behavior change).
Technical details: client patches, §2cd, §2ca, §2by, §2bz, §2bu, §2br, §2bs, §2bl and §2j.
Install
- Close the game and extract the whole zip into any folder: your Desktop or Downloads is fine, it does not need to be in the game folder. The installer finds the game through Steam by itself, even on another drive, and asks you to paste the path only if it cannot.
- Run
Install-Patches.bat, type1(install or update), then1(client fixes). - Press Enter to take the recommended variant (standard for 32 GB RAM or more, low-memory otherwise), then
Y.
The menus follow your Windows display language (English or Traditional Chinese). Press L in the main menu to switch, or start it with Install-Patches.bat -Lang en.
Before any game update, run Uninstall-Patches.bat from the extracted folder and choose A. Keep that folder, or download the same zip again when you need it. Updating with the patches still installed can stop you from joining servers or cause errors right after connecting.
Upgrading from 0.2.0–0.2.8: run the new installer the same way; there is no need to uninstall first.
Verify the download
SHA256SUMS.txt lists the SHA-256 of the zip. In PowerShell:
Get-FileHash .\MinidoracatClientPatches-42.21.0-0.2.9.zipBuilt from commit 75ac7c4 against projectzomboid.jar SHA-256 e1a69eb743ede60b213a0fe7f8b83d4fcab773036d256cc4543a336f3b058a33 (42.21.0). The installer also verifies every file it writes against the package manifest.
Notes
- The zip contains modified copies of a few classes from
projectzomboid.jar(© The Indie Stone), generated from the unmodified official 42.21.0 jar by the patcher in this repository. This is an unofficial project with no affiliation with The Indie Stone. - The installer only manages its own files, never overwrites unknown loose classes, and rolls back an interrupted install.
繁體中文:Project Zomboid 42.21.0 的客戶端修補(Windows)。0.2.9 新增一項斷線修正:
- 附近有人蓋或拆東西時,被斷線送回主選單(42.21.0 官方 bug,42.20.4 也有):你正在載入那一帶地圖時,附近有人蓋、拆或打壞牆、門、地板,可能被斷線送回主選單。主控台只有一條錯誤,出在
WorldRegionToMetaGrid.recalculateBuildingAndRoomIDs,像是Cannot read field "def" because "isoRoom" is null或ArrayIndexOutOfBoundsException。原因是遊戲載入地圖的執行緒,和「重建附近自建建築」同時改同一份房間表,兩邊沒有互相等待。現在一次只讓其中一邊改,實際的工作照舊由遊戲自己的程式完成。已回報官方。
這項以自動測試對真實遊戲類別驗證過(含原版對照):沒有修補時,壓力測試 300 次全部重現這個當機(包含和玩家回報一字不差的 "isoRoom" is null);有修補時,重建 210 萬次沒有任何錯誤。另外在單機一邊重建自建房間、一邊載入地圖,連跑 12 輪沒有錯誤。可以用 JVM 參數 -Dmdc.metaGridLock=off 關掉。
沒裝的玩家沒有任何差別;它只在自己電腦上運作,不影響伺服器與其他玩家。0.2.8 的「翻覆的車掉到地面下很深的地方」,以及「開車時車被丟到遠處」「引擎聲消失後被拉回舊位置」「碰撞後車被推到地板下」「自建房附近被斷線」(和這次是不同原因,兩個都包含)「模組車停很多的地方比較不卡」「加蓋房間東西消失」「隊友、殭屍、車輛隱形」修正照舊包含在內。
安裝:把整個 zip 解壓縮到任何資料夾(桌面、下載都可以,不用放進遊戲目錄,程式會透過 Steam 自動找到遊戲)→ 執行 Install-Patches.bat → 輸入 1 → 1 → 按 Enter → Y。舊版直接用新安裝器安裝即可,不必先移除。選單會跟著 Windows 語言顯示中文,主選單按 L 可切換。
遊戲更新前一定要先執行解壓縮資料夾裡的 Uninstall-Patches.bat 並選 A,所以資料夾請留著(刪掉了就重新下載同一個 zip)。下載後可用 Get-FileHash 與 SHA256SUMS.txt 比對。