Guides / Commands & Data

Encantamentos personalizados sem mods: o formato de encantamento orientado a dados

Encantamentos se tornaram JSON de datapack, então um personalizado não precisa de mod. Aqui está o formato do arquivo, os componentes de efeito que realmente fazem algo e como torná-lo obtível.

Os encantamentos costumavam ser codificados. Agora são dados de datapack, o que significa que um encantamento genuinamente personalizado — novo nome, novo efeito, nova curva de custo — é um arquivo JSON.

Onde ele vive

data/<namespace>/enchantment/lightning_strike.json

Singular enchantment/, como todas as outras categorias de datapack desde a renomeação.

O arquivo mínimo

{
  "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"]
}

Isso já fornece um encantamento real que aparece na Mesa de Encantamentos e no item. Ele ainda não faz nada — o comportamento é separado.

  • weight é a raridade na Mesa de Encantamentos. O jogo base usa 10 para comum, 1 para muito raro. É relativo, não uma porcentagem.
  • slots decide onde o encantamento está ativo: mainhand, offhand, armor, head, e assim por diante. Omita e o encantamento nunca será aplicado.
  • supported_items aceita uma tag de item ou uma lista. As tags #minecraft:enchantable/* já existem para os grupos sensatos.

Fazendo-o fazer algo

effects anexa o comportamento:

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

run_function é a saída de emergência — qualquer coisa que uma função possa fazer, o encantamento pode fazer. Os tipos de efeito embutidos cobrem dano, Repulsão (Knockback), durabilidade, drops de itens e atributos sem precisar de uma função, e são mais baratos.

requirements aceita qualquer predicado, então condicionar ao tipo do Alvo (Target), ao clima ou a uma chance aleatória é um bloco de JSON.

Nomeando-o

description é um componente de texto, então um nome codificado funciona:

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

mas uma chave translate mais um arquivo de idioma em um pacote de recursos é o que faz com que ele seja lido corretamente para jogadores em outros idiomas — a mesma razão pela qual este site usa termos do jogo das próprias traduções da Mojang.

Tornando-o obtível

Três rotas, e você geralmente vai querer mais de uma:

  • Mesa de Encantamentos — automático uma vez que weight e a curva de custo são definidos.
  • Tabelas de saque (Loot tables)enchant_randomly com seu encantamento listado, ou enchant_with_levels se ele deve competir em custo.
  • Aldeão troca (Villager trades) — um Livro Encantado (Enchanted Book) com seu encantamento no item da troca.

Adicioná-lo a #minecraft:in_enchanting_table é o que faz com que a mesa o ofereça; a tag é fácil de esquecer e produz um encantamento que existe, mas nunca aparece.

Construa o JSON do encantamento e sua contraparte de acabamento de Armadura (Armor), com as tags e slots definidos, no Custom Enchantment & Trim Builder.

Construtor de encantamentos e acabamentos →

More guides

Browse all →

Procurando mais ferramentas de Minecraft?

Um conjunto de geradores, visualizadores e conversores que rodam no navegador — tudo grátis.