The Best Resource for Minecraft
The Best Resource for Minecraft

Власні чари без модів: формат чарів на основі даних

Власні чари без модів: формат чарів на основі даних

Чари стали 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.

Способи отримання

Три шляхи, і зазвичай потрібно більше одного:

  • Чарувальний стіл — автоматично після weight and the cost curve are set.
  • Таблиці здобичіenchant_randomly with 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 чарів та відповідне оздоблення обладунків із налаштованими тегами та слотами в Конструктор власних чарів та оздоблень.

Спробувати інструмент: Custom Enchantment & Trim Builder →