Перейти к содержанию

Сборка пресета из 130 модов Build 42.20 и ошибка загрузки мира

Отчёт игрока о формате пресета, папках версий, зависимостях и поиске причин WorldDictionaryException.

Это отчёт об одном одиночном тесте Project Zomboid 42.20.3 в Steam на Windows 10, выполненном 25–26 августа 2026 года. Автор работал примерно с 235 подписками Workshop и итоговым пресетом из 132 активных модов. На момент публикации Build 42.21 уже вышла; выводы о конкретных модах, форках и совместимости быстро устаревают. Повторной проверки на 42.20.4 или 42.21 не было. Ниже описан опыт автора, а не универсальная инструкция для любой сборки.

Где хранятся список и настройки

Автор использовал штатный экран Mods и файл пользовательских данных Lua/pz_modlist_settings.cfg, а не менеджер модов. По исследованию исходников игры, одна строка пресета имеет вид Name:modid;modid;...; первая строка — избранное !fav!:. Применение сопоставляет каждый установленный мод по точному id= из mod.info и показывает несопоставленные ключи как MISSING MODS. В существующих строках автора перед каждым ID стоял обратный слеш, но такая запись дала отсутствующие моды; в тесте использовались голые ID. Порядок ID в строке совпал с порядком загрузки; require= зависимости игра вставляла перед модом.

Файл принадлежит игре, а не конкретному моду. Игра держит пресеты в памяти и перезаписывает файл при сохранении/выходе, поэтому автор редактировал его только при полностью закрытой игре и предварительно сохранил копию. Он не проверял, как штатная кнопка Save записывает формат и применяет ли строку со слешами.

Папки версий и зависимости

Внутри мода могут быть common/ и несколько каталогов версий, например 42.0, 42.13, 42.17, 42.20, а у старых модов — корневые файлы Build 41. По наблюдениям автора, игра использовала common и один подходящий номерной каталог; старые версии не объединялись. В каждом каталоге собственный mod.info, поэтому ID, require= и versionMin могут отличаться. Он приводит пример More Traits: корневой ID ToadTraits, а внутри 42.x — 1299328280/ToadTraits и дополнительный UnifiedCarryWeightFramework. Значения require= с начальным обратным слешем он очищал перед сопоставлением.

Два установленных элемента могут иметь одинаковый ID, например отдельные загрузки Build 41 и Build 42. Экран Mods показывал одну запись, но автор не выяснил, какая копия выигрывает. Для инвентаризации он советует читать mod.info фактически используемой версии, искать каталоги по маске 4\d(\.\d+)* и common, а не только 42. Загрузка Steam может ещё идти в steamapps/workshop/downloads/108600; подписки можно сверить с appworkshop_108600.acf.

Диагностика отказа создания мира

Ключевой признак — zombie.world.WorldDictionaryException: World loading could not proceed, but первая причина обычно находится раньше в console.txt. Автор различает ошибки vehicle template/part not found и отсутствие Fluid при инициализации рецептов: эти случаи останавливали создание мира. Например, в его Build 42.20 не существовало жидкости Alcohol, тогда как имелась RubbingAlcohol. Ошибка отсутствующего входного предмета Base.MRE, Lua-исключения и некоторые сообщения require(...) failed в его опыте сами по себе не остановили загрузку.

Для поиска автор индексировал mod.info всех установленных подпапок, сопоставлял моды и зависимости с текущей сборкой и сначала читал журнал после ошибки. Искомый template, part или fluid проверялся по ссылкам на него и определениям в файлах Workshop. Затем на отдельном новом мире отключался проблемный мод или выбирался совместимый форк. Рабочая база и сохранения не изменялись; ни исходные файлы игры, ни сохранённый мир автор не редактировал.

Примеры проблем из отчёта

  1. В версии that DAMN Library автор обнаружил 412 шаблонов в 42.0, 349 в 42.13 и 42.17, 19 в 42.20 и 336 в common. Два шаблона для транспорта существовали только в 42.0, тогда как отдельные моды ссылались на них. Другие названные автомобильные детали не нашлись ни в модах, ни в библиотеке. Отключение соответствующих модулей убрало ошибки в тесте; популярность Workshop-мода не гарантировала исправность.
  2. Оригинальная Common Sense в тесте ссылалась на отсутствующую жидкость Alcohol и вызывала Lua-ошибки. Автор заменил её отдельной загрузкой Common Sense [B42.20+] с ID VB_CommonSense; результат относится к состоянию на 42.20.3 и требует повторной проверки.
  3. Некоторые форки сохраняют ID оригинала, другие меняют его. Пример Reorder The Hotbar (B42+ Fixed) использовал прежний ID REORDER_THE_HOTBAR, поэтому автор удалил оригинал. Он также сообщает о несовместимости GaelGunStore с модами, меняющими ванильное оружие и боеприпасы, включая комбинированный порт Brita; это конкретные исторические выводы, не текущая рекомендация.

Порядок действий автора

  1. Проверить версию игры через version.txt и составленные моды/каталоги каждой версии.
  2. Сверить моды с текущим Build и извлечь зависимости из mod.info каталога, который будет использоваться.
  3. Упорядочить библиотеки и фреймворки, затем зависимые моды и совместимые патчи согласно инструкциям авторов.
  4. Сделать резервную копию pz_modlist_settings.cfg и редактировать её только с закрытой игрой; использовать точные голые ID.
  5. Применить пресет в Mods и запускать новый мир. После отказа в console.txt найти WorldDictionaryException и искать выше первую ошибку template, part или fluid.
  6. Проверить определения и ссылки внутри Workshop-каталогов; отключить только указывающий на отсутствующий элемент мод или испытать подходящий форк на отдельном мире.

Результат и границы вывода

В финальном прогоне автора было 133 строки loading, совпавших с пресетом; WorldDictionaryException не появилось, новый мир загрузился. По его описанию, ошибки шаблонов исчезли после отключения ссылающихся автомобильных модов, а мир стартовал после замены Common Sense. Один Lua-таймерный сбой Braven’s Achievements оставался, и затем мод отключили, что дало итоговые 132 активных мода. Автор не выяснил, какая копия выигрывает при повторяющихся ID, как игра записывает пресет через UI, и не проверял длительную игру. Обратите внимание: это его тестовая последовательность, а не пошагово воспроизведённый нами результат.