Actualizado:
La estructura terminada
mypack/
├─ pack.mcmeta
└─ data/
├─ mypack/
│ └─ function/
│ ├─ hello.mcfunction
│ ├─ load.mcfunction
│ └─ tick.mcfunction
└─ minecraft/
└─ tags/
└─ function/
├─ load.json
└─ tick.json
mypack es tu espacio de nombres. Usa solo letras minúsculas, números y _.
1. pack.mcmeta
{
"pack": {
"pack_format": 48,
"description": "Mi primer datapack"
}
}
pack_format le dice al juego para qué versión es el pack: 48 es Java 1.21–1.21.1 y 61 es 1.21.4. Cambia con casi cada versión, y las versiones más nuevas cambiaron aún más el formato del archivo, así que comprueba el número de tu versión. Asegúrate de que Windows no lo guardó como pack.mcmeta.txt.
2. Un archivo de función
say El datapack funciona
give @s minecraft:diamond 1
Guárdalo como data/mypack/function/hello.mcfunction. Un comando por línea, sin barra al principio; las líneas que empiezan por # son comentarios.
3. Añadirlo a un mundo
- Copia la carpeta mypack en .minecraft/saves/NombreDelMundo/datapacks/.
- Ejecuta
/reloaden el mundo. - Comprueba
/datapack list. - Ejecuta
/function mypack:hello.
Después de editar, vuelve a hacer /reload. Si lo compartes como zip, pack.mcmeta tiene que estar en el nivel superior del zip.
4. Ejecutar al cargar y cada tick
{
"values": ["mypack:load"]
}
Las funciones de data/minecraft/tags/function/load.json se ejecutan al abrir el mundo y con /reload. tick.json (con "mypack:tick") se ejecuta cada tick, 20 veces por segundo, así que mantenlo ligero. Para acciones con tiempo, /schedule es más ligero que tick.
Problemas habituales
- Nombre de la carpeta: Java 1.21 cambió
functionsporfunction, también dentro de tags. Los tutoriales antiguos usan el nombre viejo. - Una carpeta de más: datapacks/mypack/mypack/pack.mcmeta no se detecta.
- Nombres con mayúsculas o caracteres especiales: no se permiten en espacios de nombres ni nombres de función (nada de tildes ni ñ).
- Una línea mal: un solo comando no válido puede impedir que se cargue la función entera. Prueba antes las líneas en el chat.
- Bedrock: los datapacks son solo de Java; Bedrock usa paquetes de comportamiento.
Comprueba tu comando
El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.