Установка и диагностика Video Framebuffer (PZFB)
PZFB (Video Framebuffer) — библиотечный мод для Project Zomboid. Сам по себе не показывает окно; он нужен Zomboid Video Player (PZVP), REAL Zomboid Console Emulation (PZEMU), Zomboid DOOM (PZDOOM) или стороннему моду. Установка включает копирование десяти Java-файлов в каталог игры, поскольку Workshop не раздаёт .class/.bat/.sh, а PZ загружает Java-классы только из собственного каталога установки.
Установите один раз и повторяйте только после обновления PZFB, меняющего class files; панель сообщит Update Required.
Два каталога
| Назначение | Windows | Linux |
|---|---|---|
| Установка PZ (рядом с projectzomboid.jar) | C:\Program Files (x86)\Steam\steamapps\common\ProjectZomboid\ | ~/.local/share/Steam/steamapps/common/ProjectZomboid/projectzomboid/ (внутренний каталог projectzomboid) |
| Каталог пользователя (сохранения и console.txt) | C:\Users\<you>\Zomboid\ или %USERPROFILE%\Zomboid | ~/Zomboid/ |
Каталог пользователя — не папка media игры. Если неизвестен Steam-каталог: Steam → Project Zomboid → Manage → Browse local files.
Подпишитесь и включите мод
- Подпишитесь на Video Framebuffer и мод, которому он нужен.
- В главном меню откройте MODS, включите Video Framebuffer и зависимый мод, подтвердите изменения.
- После применения списка модов появится тёмная панель с красной рамкой Video Framebuffer — Setup Required, с путём скрипта, OK и Copy Path. Она может появиться также при первой загрузке игры.
В Build 42 списки модов относятся к каждому сохранению отдельно: MODS в главном меню — для новых игр; для существующего сохранения откройте Load Game → выберите сохранение → MORE... → Choose Mods... и включите PZFB и зависимый мод. В мультиплеере решает список сервера.
Мод Literally Playable Video Game Consoles может установить class files самостоятельно. Если после этого панель PZFB не появляется и console.txt содержит сообщение о загрузке, установка выполнена.
Запуск установочного скрипта
Для PZ 42.20 и новее скрипт создаётся в common внутри папки мода. Windows: ...\Steam\steamapps\workshop\content\108600\3698742271\mods\PZFB\common\pzfb_install.bat. Linux: .../Steam/steamapps/workshop/content/108600/3698742271/mods/PZFB/common/pzfb_install.sh. Если мод скопирован в Zomboid/mods/PZFB, скрипт будет в подкаталоге common этой копии; console.txt укажет загруженный путь.
- Нажмите Copy Path. В Windows закройте PZ, вставьте путь в адресную строку Проводника и нажмите Enter. Ожидается путь PZ install и сообщения SUCCESS: PZFB class files installed. и Restart Project Zomboid to activate.
- В Linux откройте терминал и запустите bash "<путь>". При необходимости передайте каталог игры аргументом: bash "<script>" ~/.local/share/Steam/steamapps/common/ProjectZomboid/projectzomboid.
Для сборок до 42.20 скрипт размещается в Zomboid\Lua\pzfb_install.bat (Windows) либо ~/Zomboid/Lua/pzfb_install.sh (Linux).
Запасная копия скрипта
В 42.20+ такой же скрипт записывается как текст: Windows C:\Users\<you>\Zomboid\Lua\pzfb_install.txt; Linux ~/Zomboid/Lua/pzfb_install.txt. В Windows включите отображение расширений, переименуйте в .bat и запустите. В Linux запустите bash ~/Zomboid/Lua/pzfb_install.txt.
Ручная установка
- Откройте папку .dat мода: <PZFB mod folder>\42\media\pzfb\. В ней Color.dat, Color$1.dat … Color$9.dat — всего 10 файлов.
- Скопируйте их, переименуйте расширение .dat в .class, сохранив знак $ в именах.
- В каталоге установки PZ создайте zombie/core рядом с projectzomboid.jar и поместите туда все десять классов.
- Удалите старые лишние Color*.class, например Color$10.class или Color$6$1.class.
GitHub-скрипты install.bat / bash install.sh делают то же из class_files/; каталог игры можно передать аргументом.
Проверка установки
- Запустите Project Zomboid. Успешный признак — отсутствие красной/оранжевой панели PZFB.
- В Zomboid\console.txt найдите: [PZFB] Video Framebuffer v1.8.0 loaded (class files v1.8.0 active).
- Проверьте зависимый мод: PZVP открывается клавишей INSERT; PZEMU и PZDOOM добавляют пункты в контекстное меню телевизора, причём PZEMU требует консоль поблизости. Сам PZFB окна не открывает.
- Необязательно: в debug-режиме HOME открывает тестовое окно с зелёным прямоугольником, END закрывает; без -debug эти клавиши ничего не делают.
Оранжевая панель Update Required означает, что установленные классы старее мода. Повторно запустите скрипт и перезапустите игру.
Диагностика
| Симптом | Причина и действие |
|---|---|
| Нет панели и строк [PZFB] | Код не запустился: проверьте список модов конкретного сохранения, список сервера или полноту Workshop-загрузки и наличие 3698742271/mods/PZFB/42/mod.info. |
| В логе классы не установлены после скрипта | Изучите блок [PZFB], где указаны пути и причины записи. Убедитесь, что файлы в <PZ install>\zombie\core\, рядом с папкой projectzomboid.jar, а не в media или каталоге мода. |
| PZ_Optimization: новый класс не виден | Warm-start cache (Java AOT) применяет изменение через один запуск. После установки запустите PZ второй раз без повторной установки либо отключите параметр в Options → PZ Optimization → Boot. Если видео зависает или тормозит, источник предлагает выставить максимальную совместимость модов либо выключить UI: reuse windows that mods draw in; в PZFB 1.8 также заявлено обходное решение. Эти меры здесь не проверялись. |
| Конфликт другого Color.class | Сообщение NOTE: zombie.core.Color has members PZFB does not know указывает на неизвестные члены класса, но само по себе не доказывает наличие другого мода: техническая документация допускает и новые поля игры. Установите принадлежность файлов до удаления. |
| Скрипт не находит PZ | Передайте каталог, содержащий projectzomboid.jar и ProjectZomboid64.exe, аргументом или выполните ручную установку. |
| ... was unexpected at this time. | Исправлено в PZFB 1.7.4 для скрипта 1.7.3 с Program Files (x86); обновите PZFB. |
| Зависимый мод не работает | Включите и его для сохранения; проверьте его страницу и зависимости: PZVP требует ffmpeg, PZEMU — собственные ROM-файлы. Ищите его строки [PZVP], [PZEMU], [PZDOOM] в console.txt. |
| Steam Verify integrity не удалил PZFB | Ожидаемо: class files не входят в manifest игры. См. удаление ниже. |
| Windows PZ через Proton, CreateProcess error=193 | Исправлено в файлах PZFB 1.8.0; для нативной Linux-версии предпочтительнее использовать её. |
Если проблема осталась, опубликуйте строки [PZFB] из console.txt на Workshop-странице PZFB.
Удаление
Отключение/отписка удаляет только Lua-часть; десять классов остаются. Удалите <PZ install>\zombie\core\Color.class и Color$1.class … Color$9.class, а также другие Color*.class, относящиеся к старым версиям PZFB, затем пустые папки core и zombie. Или выполните GitHub uninstall.bat / bash uninstall.sh. Проверка файлов Steam их не удаляет.
После удаления снова используется стандартный zombie.core.Color из projectzomboid.jar. При конфликте с другим модом, заменяющим тот же класс, сперва установите принадлежность файлов; зависимые моды покажут сообщение PZFB not installed. Сам PZFB не хранит данные в папке пользователя. Зависимые моды хранят видео, ROM и сохранения отдельно в Zomboid/PZVP, Zomboid/PZEMU и Zomboid/PZDOOM; удаляйте эти папки только если сами хотите удалить их содержимое.
README: установка и вопросы
Краткий путь Workshop: подписаться на PZFB и зависимый мод, включить оба, выполнить созданный скрипт и перезапустить PZ. Скрипт копирует 10 классов: Color.class и Color$1–Color$9. Для PZ_Optimization нужно два запуска после установки без повторной установки. README также сообщает, что Literally Playable Video Game Consoles устанавливает классы самостоятельно.
При установке из GitHub README предлагает bash install.sh (автоопределение или путь игры), Windows install.bat, затем symlink или копию mod/PZFB в каталог модов. Uninstall-скрипты удаляют классы; Steam Verify integrity их не удаляет.
FAQ: PZFB сам не отображается — это библиотека. Если панель не появилась, проверьте список модов сохранения, сервера и стороннюю установку классов. Если console.txt говорит, что классы отсутствуют, читайте блок [PZFB], перезапустите PZ второй раз при PZ_Optimization и проверьте конфликт Color.class. После обновления PZFB с новыми классами повторите установку; обновление PZ само по себе в исходнике заявлено проверенным для 42.20 и 42.21. В 42.20+ .bat/.sh не пишется в Zomboid/Lua; скрипт создаётся в common и как pzfb_install.txt. Proton error=193 исправлен в 1.8.0.
TECHNICAL: согласование версии и состава поставки
Java classpath включает каталог установки и projectzomboid.jar. Файл <PZ install>/zombie/core/Color.class имеет приоритет над классом из jar. Все внутренние классы нужны вместе с Color.class. Для версии 1.8.0 поставляются ровно 10 файлов: Color.class и Color$1.class–Color$9.class. В 1.7 поставлялось 12, включая Color$10 и Color$6$1; в 1.8 их больше нет. Таблица datFiles в PZFBInit.lua должна точно соответствовать поставке; Linux-скрипт завершается при отсутствующем .dat.
Для Workshop классы размещаются как побайтно идентичные .dat в 42/media/pzfb/Color*.dat; устаревшие .dat удаляются. PZFBInit.lua datFiles, PZFB_VERSION в Color.java и modversion в mod.info обновляются согласованно; Lua сравнивает major.minor. На диске игры .dat переименовываются в .class.
PZ 42.20 Lua sandbox запрещает запись .bat/.sh в Zomboid/Lua, поэтому с версии 1.7.3+ скрипт создаётся в common и дополнительной текстовой копией. При запуске Lua проверяет Color.fbPing(); отсутствующие классы или несовпадение major.minor с mod.info вызывают генерацию скрипта и отчёт [PZFB].
TECHNICAL указывает Java 25: PZ B42 использует class file version 69.0, а javac Java 21 выдаёт несовместимую версию 65.0. Эти данные объясняют сборку и сверку состава, а не являются проверкой данной инструкции.