Моды: установка, структура папок и экспорт guide
Моды — это пользовательские пакеты, которые изменяют или расширяют shapez 2 — от простых удобных утилит до новых машин, игровых механик, переводов или пользовательских сценариев. Игра нативно поддерживает моды и имеет определённую структуру папок, чтобы моды можно было легко устанавливать, разрабатывать и распространять.
Куда помещать моды и персистентные данные
- Игра хранит персистентные данные (включая моды, пользовательские сценарии, пресеты и экспортированные данные базы) внутри Game Data Folder (также известной как Game Data или папка сохранений).
- Пути:
- Windows: %USERPROFILE%\AppData\LocalLow\tobspr Games\shapez 2\
- MacOS: ~/Library/Application Support/tobspr Games/shapez 2/
- Linux: ~/.config/unity3d/tobspr Games\shapez 2/
- Открыть папку из игры:
- Главное меню → Play → Show Folder, затем перейти в родительскую папку.
- В игре → Blueprint Library → Open Folder, затем перейти в родительскую папку.
- Команды Debug Console: logs.open-folder или savegames.open-folder (примечание: на MacOS для части логирования используется Игрок.log).
Структура папки mods и установка
- Папка mods внутри Game Data Folder — это место, куда помещают моды, чтобы игра загружала их локально.
- Каждый мод — это подпапка внутри папки mods. Игра загрузит каждую подпапку как отдельный мод.
- Поддерживаются моды из Steam Workshop — они будут автоматически загружаться при подписке через Workshop.
Ресурсы и инструменты для моддинга
- Официальные и сообщественные ресурсы:
- Официальная документация по моддингу и рекомендации по арту/ассетам от разработчика.
- Примеры модов и репозитории ShapezShifter (modding API) доступны на GitHub.
- Существуют неофициальные руководства сообщества, дополняющие официальные документы.
- Полезная документация по сторонним инструментам: MonoMod RuntimeDetour и HarmonyX для runtime-перехватов и патчей.
- Игра использует Unity (конкретная версия Unity указана в документации) и API для моддинга (ShapezShifter) для упрощения интеграции; внешний загрузчик модов не требуется.
- Для более глубокого развития и отладки доступны сборочные и класс-референсы.
Экспорт игровых данных для использования в моде
- Игра может экспортировать свои внутренние данные (базовый контент, такой как сущности, сценарии, пресеты) для повторного использования или справки:
- В игре откройте Debug Console (F1) и выполните debug.export-game-data.
- Это создаст папку named basedata-
внутри Game Data Folder. Используйте файлы там как шаблоны для пользовательского JSON-контента.
Пользовательские сценарии, пресеты и сложности
- Пользовательские сценарии:
- Поместите JSON-файлы сценариев в папку custom-scenarios в Game Data Folder, чтобы игра загрузила их.
- Экспортированные внутри игры файлы сценариев находятся в папке scenarios экспортированной папки basedata.
- Пользовательские пресеты параметров сценариев:
- Поместите JSON-файлы пользовательских пресетов в custom-scenario-parameter-presets в Game Data Folder.
- Внутри игры пресеты сценариев находятся в папке scenario-parameter-presets в экспортированных basedata-папках.
- При выборе Scenario первым в списке внутреннего списка будет выбран тот Scenario Preset, который указывает на этот Scenario, и он станет пресетом по умолчанию.
- Пользовательские пресеты сложности:
- В данный момент игра не поддерживает загрузку пользовательских пресетов сложности напрямую как JSON-файлы. Вы всё ещё можете просмотреть пресеты сложности внутри игры в папке difficulty-presets экспортированной basedata-папки.
Пользовательские переводы
- Чтобы загрузить пользовательские переводы, создайте файл translations-override.json с тем же форматом, что и translations-en-US.json, и поместите его в ожидаемое игрой место.
- Запустите игру с параметром командной строки --custom-translations, чтобы она загрузила файл переопределения.
- Поле LanguageTitle внутри файла игнорируется; язык отобразится как "Custom" в настройке языка. Отсутствующие ключи будут падать обратно на английский.
Рабочий процесс разработки и отладка
- Типичный рабочий процесс:
- Экспортируйте базовые данные игры, чтобы использовать существующий JSON как шаблоны.
- Создайте подпапку мода с вашими ассетами, кодом и JSON-определениями, следуя документации и рекомендациям по арту.
- Используйте API для моддинга (ShapezShifter) или библиотеки для runtime-патчинга, если нужно изменить поведение кода.
- Тестируйте локально, поместив папку мода в директорию mods и запустив игру.
- Debug Console доступна в игре для команд и устранения неполадок.
- Документы по отладке и runtime-патчингу, а также примеры из сообщества (sample mods) — рекомендованные материалы для изучения.
Публикация и распространение модов
- Steam Workshop:
- Моды можно публиковать в Steam Workshop для автоматического распространения.
- Распространение в сообществе:
- Обмен чертежами и контентом также происходит через сайт Community Vortex и официальный Discord (канал #🛠blueprints).
- Следуйте правилам публикации модов и гайдлайнам по ассетам, чтобы избежать конфликтов или сломанных ресурсов при публикации.
Темы и продвинутые соображения
- Релевантные темы моддинга, освещённые в документации:
- Modding Overview, Development Environment, Mod Loading, Debugging, Mod Publishing, Command Line Arguments, Game Files, Custom Game Modes, Debug Console.
- Используйте предоставленные sample mods и API-референсы, чтобы изучить шаблоны и лучшие практики.
- При изменении или добавлении контента в виде JSON (сценарии, пресеты, переводы) убедитесь, что имена файлов и их расположение соответствуют ожидаемым папкам, описанным выше, чтобы игра распознала их.
Быстрый чеклист для начала
- Экспортируйте базовые данные: откройте Debug Console → debug.export-game-data.
- Создайте папку мода внутри Game Data Folder/mods/ и добавьте ваш контент.
- Для пользовательских сценариев или пресетов поместите JSON-файлы в custom-scenarios или custom-scenario-parameter-presets соответственно.
- Для переводов создайте translations-override.json и запустите игру с --custom-translations.
- Подпишитесь/опубликуйте в Steam Workshop, чтобы делиться модами или получать их.
- Обратитесь к официальной документации по моддингу, sample mods и ShapezShifter для примеров кода и использования API.