Actualizado:
as cambia quién ejecuta
/execute as @e[type=minecraft:zombie] run say Soy un zombi
Cada zombi ejecuta el comando, y @s pasa a significar ese zombi.
at cambia la posición
/execute at @e[type=minecraft:zombie] run particle minecraft:flame ~ ~1 ~ 0 0 0 0 1
El comando se ejecuta en la posición de cada zombi. La posición importa para las partículas, los sonidos, las comprobaciones de bloques y las coordenadas ~.
Los dos juntos
/execute as @e[type=minecraft:zombie] at @s run particle minecraft:flame ~ ~1 ~ 0 0 0 0 1
Cada zombi pasa a ejecutar el comando, y la partícula aparece en ese zombi. Piénsalo como «como quién» y «dónde».
Solo as, o solo at
/execute as @e[type=minecraft:zombie] run setblock ~ ~2 ~ minecraft:glowstone
/execute at @e[type=minecraft:zombie] run setblock ~ ~2 ~ minecraft:glowstone
El primero solo cambia quién ejecuta; la posición se queda donde empezó el comando, así que aparece una sola piedra luminosa ahí. El segundo se ejecuta en cada zombi, así que cada zombi tiene una piedra luminosa encima de la cabeza.
A quién se refiere @s
Después de as, @s es el objetivo seleccionado. at solo mueve la posición, así que @s sigue siendo quien ejecutaba al principio.
/execute as @a run tellraw @s {"text":"Un mensaje solo para ti"}
Cada jugador recibe un mensaje dirigido a él. Sin as, /tellraw @s en un bloque de comandos apunta al propio bloque y no lo ve nadie.
El orden importa
as @a at @s se ejecuta como cada jugador, en la posición de ese jugador. at @s as @a se ejecuta en la posición de quien ejecutaba al principio, como cada jugador, así que la posición nunca cambia. /execute se lee de izquierda a derecha.
Patrones habituales
as @a at @s if block ~ ~-1 ~ …: comprobar el bloque bajo cada jugadoras @e[type=…] at @s run particle …: efectos en cada mobas @p at @s run tp @s ^ ^ ^3: mover a un jugador 3 bloques hacia donde mira (coordenadas locales)
at frente a positioned as
at copia la posición, la rotación y la dimensión. positioned as solo copia la posición y conserva la rotación original. Con coordenadas ^, usa at para la orientación del objetivo y positioned as para conservar la tuya.
Cuando no funciona
- Solo pasa en un sitio: tienes
assinat. Añadeat @s. - Nadie ve el mensaje: en un bloque de comandos
@ses el bloque. Añadeas @a. - El servidor va lento:
as @ese repite por cada coincidencia. Acótalo contype=odistance=.
Preguntas frecuentes
- ¿Bedrock es igual? Desde Bedrock 1.19.50 usa la misma lógica de as y at. La distancia se escribe
r=. - ¿Cómo veo quién lo ejecuta? Termina con
run say test. El chat muestra el nombre de quien lo ejecuta, una vez por ejecución.
Comprueba tu comando
El Command Error Doctor (en inglés) revisa en tu navegador los errores de sintaxis más comunes.