¿Tu paquete de datos no carga? La estructura de carpetas y los tres nombres que deben coincidir
Un paquete de datos que no aparece en /datapack list tiene un problema de ruta, no de código. Aquí te explicamos la estructura exacta, la regla de los espacios de nombres y las carpetas que cambiaron de nombre.
/datapack list no muestra nada, o muestra el paquete como deshabilitado. Casi siempre el JSON está bien y las carpetas están mal.
La estructura
world/datapacks/my_pack/
├── pack.mcmeta
└── data/
└── my_namespace/
├── function/ one .mcfunction per file
├── recipe/
├── loot_table/
├── advancement/
├── predicate/
└── tags/
└── function/
└── load.json
Tres nombres deben coincidir y uno de ellos no es obvio:
pack.mcmetaen la raíz del paquete — junto adata/, no dentro de ella.data/<namespace>/— tu espacio de nombres (namespace), en minúsculas, sin espacios. Esto se convierte en el prefijo enmy_namespace:my_function.- Los nombres de las carpetas de categoría, que cambiaron y son el culpable habitual.
Las carpetas fueron renombradas a singular
Esto rompió muchos paquetes y muchos tutoriales:
| Antiguo | Actual |
|---|---|
functions/ | function/ |
recipes/ | recipe/ |
loot_tables/ | loot_table/ |
advancements/ | advancement/ |
predicates/ | predicate/ |
structures/ | structure/ |
Un paquete que usa los nombres en plural carga —aparece en /datapack list— y simplemente no hace nada, que es el modo de fallo más confuso de todos. tags/ se mantuvo en plural, y también tags/function/ se volvió singular dentro de él. Sí, es inconsistente.
Ejecutar algo automáticamente
Dos etiquetas especiales:
data/minecraft/tags/function/load.json → runs once on load/reload
data/minecraft/tags/function/tick.json → runs every tick
Ten en cuenta data/minecraft/, no tu propio espacio de nombres —la etiqueta pertenece a Minecraft, las funciones a las que apunta te pertenecen a ti:
{ "values": ["my_namespace:setup"] }
Diagnóstico en orden
/datapack list— si el paquete no aparece en absoluto,pack.mcmetafalta, está mal formado o está un nivel demasiado profundo.- Listado pero deshabilitado —
/datapack enable "file/my_pack". Ten en cuenta el prefijofile/y las comillas. - Listado y habilitado pero inerte —
pack_formatincorrecto, o nombres de carpetas en plural. /reloady lee el chat. Los errores de sintaxis en las funciones aparecen allí, no en silencio.
Comprimido o no
Ambos funcionan. Comprimido significa pack.mcmeta en la raíz del zip, exactamente como para los paquetes de recursos. La forma de carpeta es más fácil durante el desarrollo porque /reload detecta las ediciones sin necesidad de volver a comprimir.
Ubicación en el servidor
En un servidor, la ruta es <world>/datapacks/, donde <world> es el valor de level-name en server.properties — no la raíz del servidor. Colocar el paquete en la carpeta del servidor es el error más común en el lado del servidor.
Crea un paquete con los nombres de carpeta actuales, un pack.mcmeta válido y una etiqueta de carga ya configurada, luego descárgalo listo para usar con Datapack Studio.