Minidoracat: клиентские исправления Project Zomboid 42.21.0 для Windows
Опубликовано
С 14 по 20 октября 2026 года автор Minidoracat выпустил версии 0.2.7–0.2.10 неофициальных клиентских исправлений Project Zomboid. Это пакет только для Windows и ровно Build 42.21.0: установщик сверяет SHA-256 файла projectzomboid.jar и отказывается работать с другой сборкой. По заявлению автора, изменения выполняются на клиенте, не меняют сервер и не влияют на игроков без пакета.
Совместимость с PZ_Optimization
В версии 0.2.10 добавлен вариант «совместимый»: он содержит только исправления классов, которые не заменяет PZ_Optimization, — пропажу объектов в самодельных комнатах и все перечисленные ниже исправления автомобилей. В нём нет исправлений текстур, отключения рядом со строящимися домами и таблиц комнат, потому что соответствующие классы заменяет PZ_Optimization. Стандартный вариант и вариант с низким потреблением памяти не изменились. Если другой мод заменяет нужные полным вариантам классы, установщик рекомендует совместимый вариант.
Автор также описывает защиту установщика: при остановке с кодом 7 он предупреждает не удалять указанные файлы и предлагает совместимый вариант, если он подходит; отказывается продолжать, если рядом с заменяемым классом обнаружены оставшиеся внутренние классы другого мода; запрещает установку и удаление при включённом кэше PZ_Optimization «Warm-start cache (Java AOT)». Автор связывает последний запрет с тем, что игра тогда загружает классы из кэша, а не из папки игры.
Автор сообщает, что проверил совместимость на локальном сервере рядом с полной установкой PZ_Optimization (Workshop, d1bbdcf): установщик отклонил стандартный вариант и рекомендовал совместимый; с совместимым вариантом игра подключалась к серверу при включённом и выключенном кэше, исправления автомобилей работали, а перевёрнутая машина глубоко под землёй возвращалась на поверхность. Это опубликованный автором результат, независимо не воспроизводившийся.
Исправления автомобилей и карты
В версии 0.2.7 (открывается в новой вкладке) появились три исправления. Первое удерживает машину в её текущем или соседнем чанке, если во время езды в ещё не загруженную область игра выгружает окружение: автор описывает случаи, когда автомобиль оказывался за десятки или сотни клеток в лесу или воде, а AutoDrive сообщал «слишком далеко от дороги». Если рядом ничего не загружено, машина ждёт загрузки области. Второе продолжает обновлять машину, когда выгружен чанк под ней; по описанию автора, это предотвращает остановку звука и движения с последующим возвратом водителя к старой позиции, которую сервер видел за сотни клеток от текущей. Третье возвращает на землю машину, которую симулирует клиент (которой игрок управляет или в которую только что врезался), если столкновение вытолкнуло её под пол. На серверах с соответствующими серверными исправлениями это также происходит при передаче машины серверу.
Автор сообщает, что три новых автомобильных исправления 0.2.7 проверены автоматическими тестами на реальных игровых классах с непатченой игрой как отрицательным контролем. Ситуации нельзя вызвать по требованию, поэтому в живой игре автор их не воспроизвёл.
Автор указывает четыре JVM-флага отключения: -Dmdc.vehicleClampGuard=off, -Dmdc.vehicleOrphanUpdate=off, -Dmdc.driverRecallGuard=off и -Dmdc.vehicleSinkGuard=off.
В версии 0.2.8 (открывается в новой вкладке) добавлена обработка перевёрнутой машины, провалившейся не менее чем на этаж (примерно 2,5 м) ниже земли: в следующем кадре её ставят на землю, сохраняя направление. Перевёрнутая машина на поверхности или в неглубокой канаве остаётся без изменений. Автор сообщает об автоматических тестах на игровых классах с непатченой игрой в качестве отрицательного контроля и тесте на локальном многопользовательском сервере: машину переворачивали на глубине 20 м, после исправления она вставала на землю и оставалась там. Функцию можно отключить JVM-флагом -Dmdc.vehicleSinkGuard=off.
В версии 0.2.9 (открывается в новой вкладке) добавлена защита от отключения в главное меню, когда рядом строят, разбирают или ломают стену, дверь или пол, пока загружается эта часть карты. Автор связывает сбой с одновременным изменением таблиц комнат потоком загрузки карты и перестройкой близлежащих пользовательских зданий; исправление не заменяет работу игрового кода, а позволяет этим операциям менять таблицы по очереди. Сообщение об ошибке, по данным автора, направлено The Indie Stone: обсуждение на форуме (открывается в новой вкладке). В описании фигурируют WorldRegionToMetaGrid.recalculateBuildingAndRoomIDs, Cannot read field "def" because "isoRoom" is null и ArrayIndexOutOfBoundsException. Автор сообщает об автоматическом стресс-тесте: без исправления сбой возник во всех 300 запусках, с ним выполнено 2,1 миллиона перестроений без ошибки; одиночный тест прошёл 12 раундов. Флаг отключения: -Dmdc.metaGridLock=off. Эти тесты не описаны как воспроизведение в живой игре.
Что входит в выпуски
В версиях 0.2.7–0.2.10 автор также перечисляет: отключение в главное меню рядом с пользовательскими домами во время загрузки карты; уменьшение задержек при большом количестве модифицированных автомобилей за счёт пропуска пересчёта неизменившейся позы дверей, капота, окон и брони; исправление исчезающих объектов в пользовательских комнатах (автор отмечает, что The Indie Stone уже исправила это внутри игры); исправления утечки конвейера текстур и увеличенный лимит ожидания текстур в стандартном варианте для невидимых игроков, зомби и машин, у которых оставались видны только тень и имя; а также журналирование сообщений о чёрных краях чанков без изменения поведения игры.
По заметкам автора, варианты отличаются составом: отмеченные в релизе как совместимые исправления входят во все три варианта; прочие — только в стандартный и с низким потреблением памяти. В совместимый вариант 0.2.10 включены исправление исчезающих объектов в самодельных комнатах и автомобильные исправления, но не исправления текстур и отключения рядом со строящимися домами.
Ограничения и сведения автора
По инструкции автора для установки нужно закрыть игру, распаковать весь ZIP в отдельную папку и запустить Install-Patches.bat: выбрать 1 для установки или обновления, затем 1 для клиентских исправлений, принять рекомендуемый вариант и подтвердить выбор. Установщик ищет игру через Steam; если не найдёт, попросит указать путь. Для 32 ГБ ОЗУ и более автор рекомендует стандартный вариант, при меньшем объёме — вариант с низким потреблением памяти, а при конфликте классов другого мода — совместимый. Меню доступно на английском и традиционном китайском; язык можно переключить клавишей L.
Перед обновлением игры автор требует удалить патчи с помощью Uninstall-Patches.bat из распакованной папки и выбрать A; он предупреждает, что оставленные патчи могут помешать подключению к серверу или вызвать ошибки. При обновлении с 0.2.0–0.2.9 сначала удалять старую версию не требуется. Для PZ_Optimization автор отдельно предупреждает не удалять файлы, которые перечислил установщик: оставшиеся файлы PZ_Optimization могут привести к закрытию игры при подключении. Для совместимости следует выбрать совместимый вариант; для полного варианта автор указывает сначала удалить PZ_Optimization с помощью Uninstall-PZ-Optimization.cmd в папке игры, а затем повторно запустить установщик патчей, если они уже стояли. Перед установкой или удалением нужно выключить Warm-start cache, закрыть игру, запустить её до главного меню и снова закрыть; после этого кэш можно включить, но перед следующей установкой, сменой версии или удалением его следует снова выключить.
Автор пишет, что ZIP содержит изменённые копии нескольких классов из projectzomboid.jar, сгенерированные патчером из неизменённого официального JAR Build 42.21.0; проект не связан с The Indie Stone. Установщик, по описанию, управляет только собственными файлами, не перезаписывает неизвестные свободные классы и откатывает прерванную установку. Сборки и файлы не скачивались и не тестировались в рамках подготовки этой новости.
Проверка загрузки по инструкции автора
Для каждого релиза автор предлагает сравнить SHA-256 ZIP с SHA256SUMS.txt с помощью PowerShell Get-FileHash. Например, для версии 0.2.10 указана команда:
Get-FileHash .\MinidoracatClientPatches-42.21.0-0.2.10.zip
Автор указывает, что сборки сделаны для файла projectzomboid.jar Build 42.21.0 с SHA-256 e1a69eb743ede60b213a0fe7f8b83d4fcab773036d256cc4543a336f3b058a33; установщик, по его описанию, проверяет каждый записываемый файл по манифесту пакета. Это опубликованные инструкции и значения автора: ZIP, контрольные суммы и JAR нами не проверялись.