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.slotsdecide onde o encantamento está ativo:mainhand,offhand,armor,head, e assim por diante. Omita e o encantamento nunca será aplicado.supported_itemsaceita 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
weighte a curva de custo são definidos. - Tabelas de saque (Loot tables) —
enchant_randomlycom seu encantamento listado, ouenchant_with_levelsse 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.