Власні чари без модів: формат чарів на основі даних
Чари стали JSON-файлами датапаків, тому для створення власних мод не потрібен. Ось структура файлу, компоненти ефектів, які дійсно щось роблять, і способи отримання.
Раніше чари були жорстко закодовані. Тепер це дані датапаку, що означає, що справді власні чари — нова назва, новий ефект, нова шкала вартості — це JSON-файл.
Де це зберігається
data/<namespace>/enchantment/lightning_strike.json
Одинарний enchantment/, like every other datapack category since the rename.
Мінімальний файл
{
"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— рідкісність на чарувальному столі. У Vanilla використовується 10 для звичайних, 1 для дуже
рідкісних. Це відносне значення, а не відсоток.
slotsвизначає, де діють чари:mainhand,offhand,armor,
head, and so on. Omit it and the enchantment never applies.
supported_itemsприймає тег предмета або список.#minecraft:enchantable/*tags
вже існують для відповідних груп.
Додавання функціоналу
effects attaches behaviour:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function is the escape hatch — anything a function can do, the enchantment can do. The built-in effect types cover damage, knockback, durability, item drops and attributes without needing a function at all, and they are cheaper.
requirements takes any predicate, so gating on the target's type, the weather, or a random chance is one block of JSON.
Присвоєння назви
description is a text component, so a hardcoded name works:
"description": { "text": "Lightning Strike", "color": "gold" }
але translate key plus a language file in a resource pack is what makes it read correctly for players in other languages — the same reason this site takes game terms from Mojang's own translations.
Способи отримання
Три шляхи, і зазвичай потрібно більше одного:
- Чарувальний стіл — автоматично після
weightand the cost curve are set. - Таблиці здобичі —
enchant_randomlywith your enchantment listed, or
enchant_with_levels if it should compete on cost.
- Торгівля з селянами — зачарована книга з вашими чарами в предметі для торгівлі.
Додавання до #minecraft:in_enchanting_table is what makes the table offer it at all; the tag is easy to forget and produces an enchantment that exists but never appears.
Створіть JSON чарів та відповідне оздоблення обладунків із налаштованими тегами та слотами в Конструктор власних чарів та оздоблень.