Actualizado:
Qué cambió
Hasta la 1.20.4, los datos extra de un objeto iban en un único bloque NBT {...}. Desde la 1.20.5, el nombre, los encantamientos, la durabilidad, etc. son componentes separados que se escriben entre [...] justo después del ID del objeto.
| Hasta 1.20.4 (NBT) | 1.20.5+ (componentes) | |
|---|---|---|
| Dónde | { } tras el ID | [ ] justo tras el ID |
| Separador | : | = |
| Encantamientos | Enchantments:[{id:"sharpness",lvl:5}] | enchantments={sharpness:5} (1.21.5+) |
| Irrompible | Unbreakable:1b | unbreakable={} |
| Nombre | display:{Name:'...'} | custom_name=... |
El mismo /give en los dos formatos
# Hasta 1.20.4
/give @p diamond_sword{Enchantments:[{id:"sharpness",lvl:5}],Unbreakable:1b} 1
# 1.21.5+
/give @p diamond_sword[enchantments={sharpness:5},unbreakable={}] 1
Entre 1.20.5 y 1.21.4 hay más diferencias, como enchantments={levels:{sharpness:5}}. En lugar de seguirlas a mano, elige tu versión en el generador de /give.
Por qué los componentes son mejores
- Cada campo tiene su propio nombre, así que queda más claro qué hace cada valor.
- Permiten cambios nuevos, como hacer comestible cualquier objeto o cambiar su tamaño máximo de pila.
- /clear y /execute usan los mismos nombres al comparar objetos.
Entidades y bloques siguen usando NBT
Solo los objetos pasaron a componentes. Los datos de criaturas en /summon (como {NoAI:1b}) y los datos de bloques, como el contenido de un cofre, siguen siendo NBT. Los objetos que lleva una criatura dentro de ese NBT usan la forma de componentes.
/summon zombie ~ ~ ~ {NoAI:1b}
Ver cómo se guarda un objeto
/data get entity @s SelectedItem
En Java esto muestra el ID y los componentes del objeto que tienes en la mano, un buen modelo para escribir /give.
Bedrock Edition
Este cambio solo afecta a Java. El /give de Bedrock acepta una cantidad, un valor de dato y un pequeño bloque JSON para unos pocos campos como can_destroy.
Preguntas frecuentes
- ¿Desaparecen los objetos de los mundos antiguos? No. Al abrir un mundo en una versión nueva, el NBT de los objetos se convierte en componentes. Solo cambia la forma de escribir los comandos.
- ¿Hay que reescribir los paquetes de datos? Las partes que usan NBT de objetos (give, clear, item, condiciones de objetos) sí. Las que solo usan NBT de entidades suelen seguir funcionando.
- ¿Dónde está la lista de componentes? Pulsa Tab mientras escribes para ver sugerencias. Los principales son los campos del generador de /give.
Comprueba tu comando
El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.