Encantamientos personalizados sin mods: el formato de encantamiento basado en datos
Los encantamientos se convirtieron en JSON de datapack, por lo que uno personalizado no necesita ningún mod. Aquí se muestra la estructura del archivo, los componentes de efecto que realmente hacen algo y cómo hacerlo obtenible.
Los encantamientos solían estar codificados de forma rígida. Ahora son datos de datapack, lo que significa que un encantamiento genuinamente personalizado —con un nuevo nombre, un nuevo efecto y una nueva curva de costo— es un archivo JSON.
Dónde se encuentra
data/<namespace>/enchantment/lightning_strike.json
Singular enchantment/, como cualquier otra categoría de datapack desde el cambio de nombre.
El archivo 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"]
}
Eso es suficiente para un encantamiento real que aparece en la mesa y se muestra en el objeto. Todavía no hace nada; el comportamiento es independiente.
weightes la rareza en la Mesa de encantamientos. El juego base usa 10 para común y 1 para muy raro. Es relativo, no un porcentaje.slotsdecide dónde está activo el encantamiento:mainhand,offhand,armor,head, y así sucesivamente. Si se omite, el encantamiento nunca se aplica.supported_itemstoma una etiqueta de objeto o una lista. Las etiquetas#minecraft:enchantable/*ya existen para los grupos lógicos.
Haciéndolo hacer algo
effects adjunta el comportamiento:
"effects": {
"minecraft:post_attack": [{
"effect": { "type": "minecraft:run_function", "function": "my_pack:strike" },
"requirements": { "condition": "minecraft:random_chance", "chance": 0.25 }
}]
}
run_function es la vía de escape: cualquier cosa que una función pueda hacer, el encantamiento puede hacerla. Los tipos de efecto incorporados cubren daño, Empuje, durabilidad, caídas de objetos y atributos sin necesidad de ninguna función, y son más económicos.
requirements toma cualquier predicado, por lo que condicionar el tipo de la Diana, el clima o una probabilidad aleatoria es un bloque de JSON.
Nombrándolo
description es un componente de texto, por lo que un nombre codificado funciona:
"description": { "text": "Lightning Strike", "color": "gold" }
pero una clave translate más un archivo de idioma en un paquete de recursos es lo que hace que se lea correctamente para los jugadores en otros idiomas, la misma razón por la que este sitio toma los términos del juego de las propias traducciones de Mojang.
Haciéndolo obtenible
Tres rutas, y normalmente querrás más de una:
- Mesa de encantamientos — automática una vez que se establecen
weighty la curva de costo. - Tablas de botín —
enchant_randomlycon tu encantamiento listado, oenchant_with_levelssi debe competir en costo. - Aldeano comercia — un Libro encantado con tu encantamiento en el objeto del comercio.
Agregarlo a #minecraft:in_enchanting_table es lo que hace que la mesa lo ofrezca; la etiqueta es fácil de olvidar y produce un encantamiento que existe pero nunca aparece.
Crea el JSON del encantamiento y su contraparte de adorno de Armadura, con las etiquetas y ranuras configuradas, en el Custom Enchantment & Trim Builder.