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

Project Zomboid Mod Creator: рабочий процесс в VS Code

Используйте расширение Daniels Labs для создания проектов модов, управления метаданными и локализациями, настройки IntelliSense, сборки и подготовки каталога Workshop.

Project Zomboid Mod Creator: создание и сборка модов в VS Code

Project Zomboid Mod Creator — расширение VS Code от Daniels Labs для создания структуры проекта Workshop, управления модами и сборки проектов для Build 41 и Build 42. В снимке Marketplace указана версия 0.2.1; совместимость с конкретными минорными версиями игры не установлена.

Идентификатор расширения — DanielsLabs.project-zomboid-mod-creator. Для установки откройте Quick Open в VS Code (Ctrl+P), вставьте команду и нажмите Enter:

ext install DanielsLabs.project-zomboid-mod-creator

Рекомендуемые расширения

В репозитории используются Workspace Recommendations для настройки среды.

РасширениеИдентификаторНазначение
EmmyLuatangzx.emmyluaТребуется для Lua-автодополнения, проверки типов и помощи при написании кода.
Project Zomboid ScriptsSimKDT.project-zomboid-scriptsНеобязательно, но настоятельно рекомендуется для специального синтаксиса скриптов и автоматизации.
  1. Откройте в VS Code панель Extensions (Ctrl+Shift+X в Windows/Linux или Cmd+Shift+X в macOS).
  2. Найдите @recommended.
  3. Установите расширения из Workspace Recommendations.

Основные возможности

  • Создавать проекты Workshop для Project Zomboid с подходящей структурой.
  • Управлять несколькими модами в проекте через дерево PZ Mods в Explorer.
  • Изменять метаданные, переименовывать ID модов и удалять их с подтверждением.
  • Добавлять официальные файлы локализации или копировать один язык в другой.
  • Собирать проект в локальный каталог Workshop и синхронизировать изменения с помощью Build and Watch.
  • Настраивать Lua IntelliSense и загружать определения Umbrella.

Команды

КомандаОписанное действие
PZ Mod Creator: New ProjectСоздаёт проект Workshop, первый мод и настройки IntelliSense.
PZ Mod Creator: Create ModДобавляет мод в текущий проект.
PZ Mod Creator: Update ModИзменяет метаданные и перезаписывает mod.info.
PZ Mod Creator: Delete ModПосле подтверждения удаляет каталог мода и его запись в проекте.
PZ Mod Creator: Rename ModМеняет ID, каталог мода и вложенные каталоги Lua.
PZ Mod Creator: Add Translation LanguageСоздаёт пять стандартных файлов локализации для официального языка.
PZ Mod Creator: Copy Translation LanguageКопирует один язык в другой и меняет заголовки таблиц.
PZ Mod Creator: Clean OutputУдаляет созданный расширением каталог сборки для текущего проекта.
PZ Mod Creator: BuildКопирует проект в настроенный каталог сборки.
PZ Mod Creator: Build and WatchВключает или выключает постоянную синхронизацию файлов с каталогом сборки.
PZ Mod Creator: Update DefinitionsОбновляет заглушки определений Lua из Umbrella.

Настройки

ПараметрНачальное значениеОписание
pzModCreator.outputDirectory""Каталог сборки; пустое значение разрешается в <home>/Zomboid/Workshop/.
pzModCreator.buildTargetb42Целевая сборка для новых проектов по умолчанию.
pzModCreator.watchDebounce300Задержка debounce для Build and Watch.
pzModCreator.cleanBeforeBuildfalseПри true перед каждой сборкой удаляется созданный каталог сборки.
pzModCreator.ignoreGlobs["**/.git/**", "**/node_modules/**", "**/.pzmodcreator.json", "**/.vscode/**", ".types/**"]Шаблоны glob, исключаемые при сборке Build и синхронизации Build and Watch.
pzModCreator.defaultAuthor""Имя автора, предлагаемое для новых проектов и модов.
pzModCreator.intellisense.enabledtrueСоздаёт настройки рабочей среды и рекомендации Lua.
pzModCreator.intellisense.autoUpdatetrueОбновляет заглушки определений при открытии проекта.

Настройка IntelliSense

При создании проекта расширение формирует настройки Lua для редактора и языкового сервера:

  • .vscode/settings.json: настройки Lua в VS Code.
  • .vscode/extensions.json: рекомендации tangzx.emmylua и simkdt.project-zomboid-scripts.
  • .emmyrc.json: конфигурация анализатора EmmyLua.

Создаваемый .emmyrc.json добавляет в библиотеку EmmyLua Umbrella и корень модов проекта. Пример для Build 42:

{ "workspace": { "library": [".types/umbrella/library", "Contents/mods"] }, "diagnostics": { "enable": true, "disable": [], "enables": ["undefined-global", "global-in-non-module"], "globals": [ "Events", "SandboxVars", "getPlayer", "getSpecificPlayer", "ProceduralDistributions", "Perks" ], "severity": { "undefined-global": "warning", "global-in-non-module": "warning" } } }

Для Build 41 в качестве второй библиотеки указывается mods вместо Contents/mods. В .emmyrc.json можно добавить локальные библиотеки проекта; расширение перезаписывает файл только при повторной настройке IntelliSense.

Команда PZ Mod Creator: Update Definitions скачивает заглушки Umbrella из последнего тега GitHub Release, если он доступен. Если метаданных релиза нет, используется ветка репозитория по умолчанию.

Создаваемая структура проекта

В карточке расширения показана такая структура проекта:

<project-root>/ workshop.txt preview.png .pzmodcreator.json Contents/ mods/ <ModID>/ mod.info poster.png media/ lua/ client/<ModID>/ server/<ModID>/ shared/<ModID>/ shared/Translate/EN/ textures/ scripts/

Информация
В карточке сказано, что проекты Build 41 размещают mods/<ModID>/ в корне вместо Contents/mods/<ModID>/. Хотя расширение заявляет поддержку B41 и B42, в показанном дереве B42 нет отдельного каталога 42/. Совместимость и фактический результат не проверялись; дерево не исправлялось и не считается подтверждённой структурой.

Публикация в Steam Workshop

  1. Соберите проект в настроенный каталог Workshop.
  2. Откройте загрузчик Workshop в Project Zomboid и выберите созданный каталог проекта.
  3. Перед публикацией проверьте workshop.txt, постер, изображение предпросмотра и локализации.
  4. Если меняли ID мода, предупредите игроков: старые сохранения могут перестать работать.
Информация
В карточке описаны потенциально разрушительные команды и настройки: Delete Mod, Clean Output, cleanBeforeBuild и Rename Mod. Здесь передан только заявленный область действия; расширение не устанавливалось, команды не запускались, сборка и публикация не выполнялись.