Guides / Commands & Data

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

Чары теперь представлены в виде JSON-файлов в пакетах данных, поэтому для создания пользовательских чар не нужен мод. Здесь описана структура файла, компоненты эффектов, которые что-то делают, и как сделать чары доступными.

Раньше чары были жёстко закодированы. Теперь они являются данными пакетов данных, что означает, что по-настоящему пользовательские чары — с новым названием, новым эффектом, новой кривой стоимости — это JSON-файл.

Где это находится

data/<namespace>/enchantment/lightning_strike.json

Единственный enchantment/, как и любая другая категория пакетов данных после переименования.

Минимальный файл

{
  "description": { "translate": "enchantment.my_pack.lightning_strike" },
  "supported_items": "#minecraft:enchantable/sword",
  "weight": 2,
  "max_level": 3,
  "min_cost": { "base": 10, "per_level_above_first": 10 },
  "max_cost": { "base": 50, "per_level_above_first": 10 },
  "anvil_cost": 4,
  "slots": ["mainhand"]
}

Этого достаточно, чтобы получить настоящие чары, которые появляются на Чародейском столе и отображаются на предмете. Пока они ничего не делают — поведение определяется отдельно.

  • weight — это редкость на Чародейском столе. В ванильной версии 10 для обычных, 1 для очень редких. Это относительное значение, а не процент.
  • slots определяет, где чары активны: mainhand, offhand, armor, head и так далее. Если опустить, чары никогда не будут применены.
  • supported_items принимает тег предмета или список. Теги #minecraft:enchantable/* уже существуют для логичных групп.

Заставляем это что-то делать

effects прикрепляет поведение:

"effects": {
  "minecraft:post_attack": [{
    "effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
    "requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
  }]
}

run_function — это запасной выход — всё, что может сделать функция, могут сделать и чары. Встроенные типы эффектов охватывают урон, Отдачу, прочность, выпадение предметов и атрибуты, не требуя функции вообще, и они дешевле.

requirements принимает любой предикат, поэтому ограничение по типу Мишени, погоде или случайному шансу — это один блок JSON.

Название

description — это текстовый компонент, поэтому жёстко закодированное имя работает:

"description": { "text": "Lightning Strike", "color": "gold" }

но ключ translate плюс языковой файл в пакете ресурсов — это то, что позволяет правильно читать его игрокам на других языках — по той же причине этот сайт берёт игровые термины из собственных переводов Mojang.

Как сделать это доступным

Три пути, и обычно вам нужно более одного:

  • Чародейский стол — автоматически, как только установлены weight и кривая стоимости.
  • Таблицы лутаenchant_randomly с вашими чарами в списке, или enchant_with_levels, если они должны конкурировать по стоимости.
  • Крестьянин торгует — Чародейская книга с вашими чарами в предмете торговли.

Добавление его в #minecraft:in_enchanting_table — это то, что вообще заставляет стол предлагать его; тег легко забыть, и это приводит к тому, что чары существуют, но никогда не появляются.

Создайте JSON-файл чар и его аналог для отделки Брони, с установленными тегами и слотами, в Custom Enchantment & Trim Builder.

Свои чары и узоры брони →

More guides

Browse all →

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

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