Datapacks
Datapacks и pack.json
Если вы хотите, чтобы ваши изменения выглядели и работали как полноценный мод, а не как набор отдельных JSON-файлов, рекомендуемый способ - использовать datapack.
Минимальная структура
MyFirstMod/
├── pack.json
└── jsons/
├── features/
├── lang/
├── objects/
├── levels/
└── worldmap/Здесь pack.json обязателен.
Шаблон pack.json
{
"uuid": "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",
"name": "Мой мод",
"version": "1.0.0",
"priority": 100,
"description": "Описание мода",
"author": "Ваше имя",
"formatVersion": 1,
"gameVersion": "0.7.1",
"gpNextVersion": ">=1.0.0"
}Описание полей
uuid
Это уникальный идентификатор.
Он важен, потому что GP-Next использует его, чтобы помнить:
- включен ли пакет
- где пакет находится в порядке загрузки
Сгенерировать его можно прямо на странице Guide в игре.
name
Имя, которое показывается в Patcher.
version
Версия вашего мода.
priority
Приоритет загрузки по умолчанию. Меньшие значения загружаются раньше.
description
Короткое описание мода.
author
Имя автора.
formatVersion
Пока достаточно указать 1.
gameVersion
Версия игры, для которой предназначен мод.
gpNextVersion
Минимальная версия GP-Next, требуемая вашим модом.
Миниатюра
Рядом с pack.json можно положить файлы:
thumbnail.pngthumbnail.ico
Требования:
- квадратное изображение
- меньше
128x128
Тогда Patcher покажет его как обложку пакета.
Поддержка папок и ZIP
packs/ поддерживает:
- папки
- файлы
.zip
Базовый порядок работы
- Создайте новую папку внутри
packs/ - Напишите
pack.json - Создайте
jsons/и его подпапки - Положите туда свои JSON-патчи
- Вернитесь в игру и нажмите Save & Reload
Для чего нужен worldmap/
Если вы хотите менять runtime-граф карты мира, а не обычные сырые данные WorldmapFeatures, вам также понадобится:
jsons/worldmap/gpn-worldmap.json5Сейчас эта возможность всё ещё относится к Experimental внутри GP-Next, поэтому сначала её нужно включить на соответствующей странице.
Формат описан в Карте.
Публикация
Самый распространенный способ поделиться datapack-пакетом - ZIP-архив.
ZIP должен выглядеть так:
MyFirstMod.zip
├── pack.json
└── jsons/а не так:
MyFirstMod.zip
└── MyFirstMod/
├── pack.json
└── jsons/На что обратить внимание в pack.json
- после создания
uuidне меняйте его без необходимости nameвидит игрок, поэтому название должно быть понятнымdescriptionдолжно объяснять, что меняет пакет- обновляйте
version, когда публикуете важные изменения
