В этом гайде ты соберёшь пустой аддон, который Minecraft узнаёт. Пока он ничего не добавляет, но станет основой для каждого предмета, блока и моба, которых ты сделаешь потом. Это займёт минут десять.
Структура папок
Создай папку проекта где угодно, например на рабочем столе. Внутри сделай две папки: одну для пакета поведения и одну для пакета ресурсов.
my_first_addon/
BP/
manifest.json
pack_icon.png
items/
RP/
manifest.json
pack_icon.png
textures/
texts/Названия BP и RP - просто привычка, которой следует большинство авторов. Minecraft всё равно, как называются внешние папки. Ему важно только то, что лежит внутри, и самый важный файл здесь - manifest.json.
Зачем нужен манифест
Каждому пакету нужен manifest.json в верхней папке. Он сообщает Minecraft:
- название и описание пакета
- уникальный ID (UUID), чтобы игра могла отличать пакеты друг от друга
- версию пакета
- какой это пакет (поведения или ресурсов)
- какие ещё пакеты ему нужны
Если манифеста нет или в нём ошибка, Minecraft вообще не покажет пакет.
UUID
UUID - это длинный случайный ID, который выглядит так: 7da910dc-081d-41d2-84e6-fcd9e04cbffb. Каждому пакету нужны свои UUID, и никакие два пакета в мире не должны иметь одинаковые.
Для аддона из BP + RP нужно четыре UUID:
- Заголовок пакета поведения
- Модуль пакета поведения
- Заголовок пакета ресурсов
- Модуль пакета ресурсов
Чтобы их получить, найди в браузере "UUID generator" и скопируй четыре новых. В VS Code их также умеют генерировать расширения для Bedrock.
Никогда не копируй UUID из гайдов
UUID на этой странице - это примеры. Если ты их скопируешь, а кто-то ещё сделал так же, ваши пакеты будут конфликтовать и один из них не загрузится. Всегда генерируй свои.
Манифест пакета поведения
Создай BP/manifest.json, вставь туда этот код и замени UUID на свои:
{
"format_version": 2,
"header": {
"name": "My First Add-on",
"description": "My very first behavior pack",
"uuid": "7da910dc-081d-41d2-84e6-fcd9e04cbffb",
"version": [1, 0, 0],
"min_engine_version": [1, 26, 50]
},
"modules": [
{
"type": "data",
"uuid": "92b4a8c1-cbc4-4b82-85bd-e36e922d0621",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid": "f67430fa-ef89-4f40-802d-9574599c764d",
"version": [1, 0, 0]
}
]
}Манифест пакета ресурсов
Создай RP/manifest.json. Обрати внимание: тип модуля здесь другой, а UUID заголовка совпадает с тем, что указан в dependencies пакета поведения:
{
"format_version": 2,
"header": {
"name": "My First Add-on",
"description": "My very first resource pack",
"uuid": "f67430fa-ef89-4f40-802d-9574599c764d",
"version": [1, 0, 0],
"min_engine_version": [1, 26, 50]
},
"modules": [
{
"type": "resources",
"uuid": "654e78d1-0b0d-4f13-9a3b-6336f0ceab13",
"version": [1, 0, 0]
}
]
}Разбираем каждое поле
format_version
Версия самого формата манифеста. Используй 2: именно её используют ванильные пакеты Mojang. Это простое число, а не текст в кавычках.
Заметка
Есть и более новый format_version 3 для манифеста, где версии пишутся текстом, например "1.0.0", а не массивами. Версия 2 по-прежнему полностью поддерживается, и на этой вики используется именно она.
header
Информация о пакете в целом.
name: показывается в списке пакетов в игре.description: маленький текст под названием.uuid: уникальный ID пакета.version: три числа: мажорная, минорная версия и патч. Увеличивай её, когда выпускаешь обновление, например с[1, 0, 0]на[1, 0, 1]. По ней Minecraft понимает, что пакет новее.min_engine_version: самая старая версия Minecraft, для которой написан твой пакет. От неё также зависит, как игра читает некоторые твои файлы, поэтому ставь версию, на которой тестируешь, например[1, 26, 50].
modules
Что находится внутри пакета. Пакету нужен хотя бы один модуль, и у каждого модуля свой UUID.
| Тип модуля | Где используется | Что содержит |
|---|---|---|
data | Пакет поведения | Предметы, блоки, сущности, рецепты, таблицы добычи, функции |
resources | Пакет ресурсов | Текстуры, модели, звуки, тексты |
script | Пакет поведения | JavaScript-файлы, использующие Script API |
dependencies
Список других пакетов, которые нужны этому. В каждой записи указаны uuid и version из заголовка другого пакета.
Здесь пакет поведения зависит от пакета ресурсов. У этой связи есть приятный эффект: когда ты включаешь пакет поведения в мире, Minecraft сам включает и пакет ресурсов. Без неё игроки могли бы включить только BP и увидеть предметы без текстур.
Совет
Зависимость должна указывать на UUID заголовка RP, а не на UUID его модуля. Это одна из самых частых ошибок новичков.
Иконки пакетов
Положи pack_icon.png в верхнюю папку каждого пакета, рядом с манифестом. Эта картинка показывается в списке пакетов.
- Сделай её квадратной. Хорошо смотрятся и 128x128, и 256x256 пикселей.
- Сохрани в формате PNG.
- Для обоих пакетов можно использовать одну и ту же картинку.
Если иконки нет, пакет всё равно работает, но вместо неё показывается пустая заглушка.
Добавляем файл языка
Названия, которые ты видишь в игре, берутся из языковых файлов пакета ресурсов. Создай эти два файла сейчас, чтобы они были готовы для следующих гайдов:
["en_US"]pack.name=My First Add-on
pack.description=My very first add-onПозже ты будешь добавлять сюда строки вроде item.demo:ruby.name=Ruby.
Проверяем, что пакет загружается
- Скопируй папку
BPвcom.mojang/development_behavior_packs. - Скопируй папку
RPвcom.mojang/development_resource_packs. - Открой Minecraft и создай новый мир.
- В настройках мира открой Наборы параметров поведения и посмотри в разделе Доступные. Твой пакет должен быть там со своей иконкой.
- Включи его. Пакет ресурсов должен включиться сам благодаря зависимости.
Если пакет не появился, загляни в гайд Если что-то сломалось. Скорее всего, в манифесте опечатка, поэтому дальше прочитай JSON за 5 минут.
Простой способ
Писать манифесты и генерировать UUID вручную нужно один раз на проект, но именно здесь мелкие опечатки ломают всё. GodCraft делает эту часть за тебя: каждый аддон, который ты создаёшь в Мастерской, получает свои новые UUID, оба манифеста и связь между двумя пакетами. Тебе остаётся заполнить в настройках пакета только то, что тебе важно.
Что дальше
Твой пустой аддон работает. Теперь дай ему что-нибудь делать:
- Твой первый предмет
- Свой блок
- Экспорт и игра, чтобы поделиться им с друзьями