Actualizado:
Consigue un bloque de comandos
Los bloques de comandos no están en el inventario creativo. Usa /give @s minecraft:command_block en modo creativo y con permisos de operador. En un servidor con la 1.21.8 o anterior, pon además enable-command-block=true en server.properties. Desde Java 1.21.9 esta propiedad ya no existe y los bloques de comandos funcionan por defecto; si estaban desactivados, ejecuta /gamerule command_blocks_work true (commandBlocksEnabled en la 1.21.9 y la 1.21.10). Los demás objetos que solo se consiguen con comandos están en la guía de objetos ocultos.
Empieza con un solo bloque
Coloca un bloque de impulso en Necesita redstone, escribe say test y ponle un botón. Si aparece «test» en el chat, funcionan el bloque, la señal de redstone y el comando.
Los tres tipos de bloque
- Impulso (naranja): se ejecuta una vez cada vez que recibe energía.
- Iterativo (morado): se ejecuta en cada tick mientras está activo, 20 veces por segundo.
- En cadena (verde): se ejecuta después del bloque que apunta hacia él.
Haz que el comando funcione primero en un bloque de impulso y después pásalo a iterativo o a una cadena. La guía de tipos de bloques de comandos lo explica con más detalle.
Por qué funciona en el chat pero no en el bloque
Las coordenadas relativas cambian de punto de referencia. En el chat, ~ ~ ~ es tu posición. En un bloque de comandos es la posición del bloque.
/summon minecraft:zombie ~ ~1 ~
En un bloque de comandos, este zombi aparece encima del bloque, no encima de ti. Para usar la posición de un jugador, envuélvelo en /execute at:
/execute at @p run summon minecraft:zombie ~ ~1 ~
Consulta la guía de execute para entender as y at.
Qué significa cada ajuste
| Ajuste | Significado | Para qué sirve |
|---|---|---|
| Necesita redstone | Solo se ejecuta mientras recibe señal de redstone | Botones y palancas |
| Siempre activo | Se ejecuta sin señal | Bloques iterativos que vigilan sin parar, y todos los bloques en cadena después del primero |
| Incondicional | Se ejecuta pase lo que pase antes | Pasos normales |
| Condicional | Solo se ejecuta si el bloque anterior tuvo éxito | Dar el objeto solo si el pago funcionó |
Pon en Siempre activo los bloques en cadena que van después del primero. Si se quedan en «Necesita redstone», no hacen nada aunque les llegue el turno.
Montar una cadena
Coloca los bloques en cadena de forma que cada flecha apunte al siguiente bloque. Un bloque condicional necesita que el anterior tenga éxito; si la cadena se detiene a mitad, ponlos un momento en incondicional y comprueba el orden con say.
Depura en este orden
- Ejecuta el comando en el chat.
- Ponlo en un bloque de impulso y ejecútalo una vez.
- Comprueba que las coordenadas relativas apuntan donde esperas.
- Acota el selector antes de pasar a iterativo.
- Añade los bloques en cadena de uno en uno y prueba después de cada uno.
Que los bloques iterativos sean ligeros
Un bloque iterativo se ejecuta 20 veces por segundo, así que un @e muy amplio puede ralentizar el juego. Filtra por tipo y distancia, por ejemplo @e[type=minecraft:zombie,distance=..20] (consulta los selectores de objetivo), y conecta una palanca para poder apagarlo. No pongas nunca comandos destructivos como /kill o /fill en un bloque iterativo sin haberlos probado antes una vez.
Preguntas habituales
- No puedo abrir ni editar el bloque. Tienes que estar en modo creativo y con permisos de operador. La guía del bloque de comandos que no funciona tiene una lista completa.
- El chat se llena con los mensajes de los comandos. Ejecuta
/gamerule minecraft:command_block_output falseen Java 1.21.11 y posteriores,/gamerule commandBlockOutput falseen Java 1.21.10 y anteriores, o/gamerule commandblockoutput falseen Bedrock.
Comprueba tu comando
El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.