Project Zomboid Mod Creator: рабочий процесс в VS Code
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 для настройки среды.
| Расширение | Идентификатор | Назначение |
|---|---|---|
| EmmyLua | tangzx.emmylua | Требуется для Lua-автодополнения, проверки типов и помощи при написании кода. |
| Project Zomboid Scripts | SimKDT.project-zomboid-scripts | Необязательно, но настоятельно рекомендуется для специального синтаксиса скриптов и автоматизации. |
- Откройте в VS Code панель Extensions (Ctrl+Shift+X в Windows/Linux или Cmd+Shift+X в macOS).
- Найдите @recommended.
- Установите расширения из 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.buildTarget | b42 | Целевая сборка для новых проектов по умолчанию. |
| pzModCreator.watchDebounce | 300 | Задержка debounce для Build and Watch. |
| pzModCreator.cleanBeforeBuild | false | При true перед каждой сборкой удаляется созданный каталог сборки. |
| pzModCreator.ignoreGlobs | ["**/.git/**", "**/node_modules/**", "**/.pzmodcreator.json", "**/.vscode/**", ".types/**"] | Шаблоны glob, исключаемые при сборке Build и синхронизации Build and Watch. |
| pzModCreator.defaultAuthor | "" | Имя автора, предлагаемое для новых проектов и модов. |
| pzModCreator.intellisense.enabled | true | Создаёт настройки рабочей среды и рекомендации Lua. |
| pzModCreator.intellisense.autoUpdate | true | Обновляет заглушки определений при открытии проекта. |
Настройка 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/
Публикация в Steam Workshop
- Соберите проект в настроенный каталог Workshop.
- Откройте загрузчик Workshop в Project Zomboid и выберите созданный каталог проекта.
- Перед публикацией проверьте workshop.txt, постер, изображение предпросмотра и локализации.
- Если меняли ID мода, предупредите игроков: старые сохранения могут перестать работать.