Guides / Commands & Data

Пользовательские рецепты: фигурные, бесформенные и с использованием тегов вместо перечисления каждого вида древесины

Фигурный рецепт, который не работает, обычно имеет неправильный ключ или избыточный шаблон. Здесь вы найдете JSON, трюк с тегами, который сокращает восемь рецептов до одного, и способы тестирования.

Рецепты — одни из самых простых файлов датапаков для написания, но и одни из самых простых для незаметных ошибок, потому что сломанный рецепт просто молча не работает — сетка крафта просто ничего не делает.

Фигурные

{
  "type": "minecraft:crafting_shaped",
  "pattern": [ "SSS", "S S", "SSS" ],
  "key": { "S": "minecraft:stone" },
  "result": { "id": "minecraft:furnace", "count": 1 }
}

Три правила, которые вызывают большинство сбоев:

  • Каждый символ в pattern должен существовать в key, за исключением пробела, который означает пустоту.
  • Шаблон относителен, а не абсолютен. Рецепт 2×2 должен быть записан как две строки по два символа, а не дополнен до 3×3 пробелами. Дополнение делает его пригодным для крафта только в этом конкретном углу сетки.
  • Все строки должны быть одинаковой длины. ["SS", "S"] недействителен.

Бесформенные

{
  "type": "minecraft:crafting_shapeless",
  "ingredients": ["minecraft:stone", "minecraft:coal"],
  "result": { "id": "minecraft:torch", "count": 4 }
}

Порядок не имеет значения. Дубликаты должны быть перечислены по одному разу — два Угля означают две записи.

Теги объединяют семейство в один рецепт

Вместо восьми рецептов для восьми типов досок:

"key": { "P": "#minecraft:planks" }

# обозначает тег предмета. #minecraft:planks, #minecraft:logs, #minecraft:wool, #minecraft:stone_crafting_materials и десятки других уже существуют. Определение собственного требует одного файла:

data/<namespace>/tags/item/my_metals.json
{ "values": ["minecraft:iron_ingot", "minecraft:gold_ingot"] }

Обратите внимание на tags/item/ — единственное число item, множественное число tags. Это несоответствие реально.

Результат с компонентами

"result": {
  "id": "minecraft:diamond_sword",
  "count": 1,
  "components": { "minecraft:custom_name": "\"Excalibur\"", "minecraft:enchantments": { "sharpness": 5 } }
}

Так пользовательский предмет становится доступным для крафта без мода.

Другие типы рецептов

crafting_shaped и crafting_shapeless — два из многих. Также доступны: smelting, blasting, smoking, campfire_cooking, stonecutting, smithing_transform и smithing_trim. Типы приготовления пищи принимают cookingtime и experience; камнерезка принимает один ингредиент и количество.

Тестирование

/reload, затем попробуйте сетку. Если ничего не происходит:

  1. Проверьте чат при перезагрузке — там сообщается о неправильном JSON.
  2. /recipe give @s <namespace>:<recipe> — если идентификатор рецепта неверен, это вызывает ошибку, которая

говорит вам, что файл вообще не читается.

  1. Разблокировка рецепта отделена от существования рецепта. Рецепт работает в сетке, даже если

он никогда не появляется в Книге рецептов.

Создавайте JSON для рецептов, предикатов и наборов с проверенными ключами и тегами в Datapack JSON Builders.

Конструкторы JSON для наборов данных →

More guides

Browse all →

Нужны другие инструменты для Minecraft?

Набор генераторов, просмотрщиков и конвертеров прямо в браузере — всё бесплатно.