Il comando /execute in Minecraft è uno degli strumenti più potenti e importanti per chi vuole creare sistemi avanzati con Command Block, mappe Adventure, minigiochi, datapack, funzioni e automazioni. A differenza di comandi più semplici come /give, /kill o /tp, /execute non serve principalmente a compiere un’azione diretta: serve a cambiare il contesto in cui un altro comando viene eseguito.
Con /execute puoi dire al gioco: “esegui questo comando come ogni giocatore”, “eseguilo nella posizione di ogni zombie”, “eseguilo soltanto se esiste un blocco specifico”, “eseguilo cinque blocchi davanti agli occhi del giocatore”, “eseguilo nel Nether” oppure “eseguilo soltanto se una determinata condizione è vera”. È quindi il comando che collega selettori, coordinate relative, condizioni, rotazioni e dimensioni in un’unica struttura.
In questa guida vediamo come usare /execute in Minecraft con esempi pratici e progressivi. Partiremo da run, poi vedremo as, at, positioned, rotated, facing, anchored, in, if e unless, fino a costruire comandi complessi con più subcomandi. Per seguire al meglio ti consiglio di conoscere già i selettori @p, @a, @e e @s e le coordinate relative ~ e ^.
Che cos’è /execute
/execute costruisce un contesto di esecuzione. Il comando finale viene normalmente scritto dopo run.
Una forma concettuale molto semplice è:
/execute ... run comando
I puntini rappresentano uno o più subcomandi che cambiano chi esegue, dove viene eseguito, in quale direzione, in quale dimensione e a quali condizioni.
Il ruolo di run
run introduce il comando finale.
Esempio:
/execute as @p run say Ciao
La parte as @p cambia l’esecutore logico; run say Ciao esegue il comando finale.
Perché /execute è diverso da un comando normale
Con:
/say Ciao
il comando viene eseguito nel contesto attuale.
Con:
/execute as @a run say Ciao
il comando viene eseguito una volta per ogni giocatore selezionato, con ciascun giocatore come esecutore logico.
Il subcomando as
as cambia l’entità che esegue logicamente il comando.
/execute as @a run say Sono un giocatore
Il comando viene elaborato una volta per ogni giocatore.
as non cambia automaticamente la posizione
Questo è uno degli errori più comuni. as cambia chi, ma non necessariamente dove.
Se vuoi spostare l’origine sulla posizione dell’entità devi usare anche at.
Il subcomando at
at cambia la posizione di esecuzione usando la posizione dell’entità selezionata.
/execute at @p run setblock ~ ~-1 ~ gold_block
Il blocco viene piazzato sotto il giocatore selezionato.
as + at: la combinazione fondamentale
Uno schema molto comune è:
/execute as @a at @s run ...
Prima ogni giocatore diventa l’esecutore, poi l’origine viene spostata sulla posizione dell’esecutore corrente.
Questa combinazione è la base di tantissimi sistemi moderni.
Perché @s funziona bene dopo as
Dopo:
/execute as @a
@s rappresenta il giocatore corrente di quella iterazione.
Quindi:
/execute as @a at @s run setblock ~ ~-1 ~ stone
lavora sotto ogni giocatore.
Esempio: particella su ogni giocatore
/execute as @a at @s run particle minecraft:flame ~ ~1 ~
Il comando genera una particella sopra ogni giocatore.
Esempio: effetto a chi entra in una zona
Puoi selezionare giocatori in una distanza specifica e applicare un effetto soltanto a loro.
/execute as @a[distance=..5] run effect give @s minecraft:speed 2 0 true
La sintassi esatta dei filtri può variare tra Java e Bedrock, quindi verifica sempre l’edizione utilizzata.
Il subcomando positioned
positioned cambia la posizione di esecuzione usando coordinate.
/execute positioned 100 70 -20 run setblock ~ ~ ~ diamond_block
Il comando finale considera 100 70 -20 come nuova origine.
positioned con coordinate relative
/execute positioned ~10 ~ ~ run setblock ~ ~ ~ gold_block
Prima sposti l’origine di 10 blocchi su X, poi esegui il comando lì.
positioned as
In Java moderna puoi anche spostare la posizione su un’entità con forme specifiche del comando; in generale, il concetto è lo stesso di at, ma at può modificare anche altri aspetti del contesto oltre alla posizione.
Il subcomando rotated
rotated cambia la rotazione del contesto.
È utile quando lavori con coordinate locali ^, perché queste dipendono dalla direzione.
Coordinate locali e rotated
Se imposti una rotazione precisa, un punto come:
^ ^ ^5
viene calcolato in base alla nuova rotazione.
rotated as
Puoi fare in modo che il contesto erediti la rotazione di un’entità, così il comando segue dove guarda il target.
Il subcomando facing
facing orienta il contesto verso una posizione o un’entità.
È utile per effetti direzionali, teleport e sistemi che devono “guardare” verso un target.
facing position
Puoi orientare il comando verso coordinate specifiche.
facing entity
Puoi orientarlo verso un’entità selezionata. In Java puoi anche scegliere anchor come eyes o feet in alcune forme del comando.
Il subcomando anchored
anchored cambia il punto di riferimento verticale dell’esecutore, tipicamente tra piedi e occhi.
Questo è particolarmente utile con coordinate locali.
Esempio dagli occhi
/execute as @a at @s anchored eyes run particle minecraft:flame ^ ^ ^3
La particella compare davanti agli occhi del giocatore.
Perché anchored eyes è utile
Per raycast, laser, particelle e abilità visive, partire dagli occhi è più naturale che partire dai piedi.
Il subcomando in
in cambia la dimensione in cui viene eseguito il comando.
In Java puoi usare dimensioni come Overworld, Nether ed End nel contesto di /execute.
Esempio concettuale nel Nether
/execute in minecraft:the_nether run setblock 0 80 0 gold_block
Il comando viene eseguito nel Nether.
Coordinate e cambio dimensione
Quando cambi dimensione devi prestare attenzione al modo in cui il gioco interpreta la posizione e ai fattori di scala applicabili tra dimensioni in determinati contesti.
Il subcomando if
if permette di eseguire il comando finale soltanto se una condizione è vera.
È uno degli strumenti più importanti di /execute.
if entity
Controlla se esiste almeno un’entità che corrisponde al selettore.
/execute if entity @a run say C'è almeno un giocatore
if block
Controlla un blocco in una posizione.
/execute if block ~ ~-1 ~ minecraft:diamond_block run say Diamante rilevato
È perfetto per puzzle e trigger.
if blocks
In Java puoi confrontare aree di blocchi per verificare se due regioni corrispondono secondo i criteri supportati.
È utile per puzzle di costruzione.
if score
Con scoreboard puoi verificare punteggi e confrontare valori.
Questa è una delle tecniche principali per minigiochi, timer e progressione.
if data
In Java, /execute if data permette di verificare la presenza di dati in entità, blocchi o storage, a seconda della sintassi supportata.
È una funzione avanzata.
Il subcomando unless
unless è l’opposto logico di if: continua soltanto se la condizione NON è vera.
/execute unless entity @e[type=minecraft:zombie] run say Nessuno zombie presente
if e unless nei Command Block
Questi subcomandi riducono la necessità di costruire circuiti redstone complessi per verifiche logiche.
Puoi usare un Repeat Command Block che controlla una condizione e poi esegue un’azione.
Esempio: aprire una porta se il giocatore è vicino
Un controllo può verificare la presenza di un giocatore in un raggio e, in caso positivo, eseguire /setblock o /fill per modificare il passaggio.
Esempio: chiudere quando nessuno è vicino
Con unless entity puoi eseguire il comando inverso quando la zona è vuota.
Come concatenare più subcomandi
La vera potenza arriva quando scrivi più subcomandi prima di run.
/execute as @a at @s if block ~ ~-1 ~ minecraft:gold_block run effect give @s minecraft:speed 2 1 true
Il flusso concettuale è:
- per ogni giocatore;
- spostati sulla sua posizione;
- controlla il blocco sotto;
- se è gold block;
- applica Speed a quel giocatore.
Leggere /execute da sinistra a destra
Il modo più semplice per capire un comando complesso è leggerlo come una frase.
Ogni subcomando modifica il contesto per ciò che viene dopo.
L’ordine conta
as seguito da at @s è diverso da combinazioni che usano target diversi.
Quando costruisci comandi lunghi, controlla sempre l’ordine.
Esempio: blocco sotto ogni zombie
/execute as @e[type=minecraft:zombie] at @s run setblock ~ ~-1 ~ redstone_block
Il comando viene eseguito una volta per ogni zombie, nella sua posizione.
Esempio: eliminare zombie solo in una zona
Usa un selettore con distanza o volume e poi /kill @s.
È molto più sicuro di /kill @e.
Esempio: teleport direzionale
/execute as @p at @s run tp @s ^ ^ ^5
Il giocatore viene spostato cinque blocchi in avanti rispetto alla propria direzione.
Ricorda che le collisioni possono rendere questa tecnica pericolosa in spazi chiusi.
Esempio: particella davanti al giocatore
/execute as @a at @s anchored eyes run particle minecraft:flame ^ ^ ^2
È un ottimo test per capire coordinate locali e anchor.
Esempio: suono nella posizione del target
Con at puoi eseguire suoni, particelle o altri effetti esattamente dove si trova l’entità.
/execute con /give
Puoi dare oggetti soltanto a giocatori che soddisfano condizioni particolari.
Esempio concettuale: se il punteggio supera una soglia, run give @s ....
/execute con /effect
È uno degli usi più comuni per zone di buff o debuff.
Un Repeat Command Block controlla posizione e condizioni, poi applica l’effetto soltanto ai target giusti.
/execute con /enchant
Puoi selezionare giocatori in un contesto specifico e poi tentare di incantare l’oggetto tenuto, rispettando i limiti di /enchant.
/execute con /kill
È utile per rendere /kill più selettivo.
Per esempio puoi colpire soltanto entità in una zona, con un tag o in una condizione.
/execute con /summon
Puoi evocare entità nella posizione di altre entità o davanti alla loro visuale.
Attenzione ai Repeat: potresti generare enormi quantità di mob.
/execute con /setblock
Puoi modificare blocchi rispetto al target.
/execute at @p run setblock ~ ~-1 ~ diamond_block
/execute con /fill
Puoi costruire o cancellare volumi intorno a un’entità o a una posizione dinamica.
È molto potente e potenzialmente distruttivo.
/execute con /clone
Puoi copiare strutture in relazione a un’origine dinamica. Controlla attentamente sovrapposizioni e coordinate.
/execute con /spawnpoint
Puoi impostare checkpoint soltanto per giocatori che entrano in una zona o soddisfano un requisito.
/execute con /setworldspawn
Lo spawn globale è normalmente una proprietà amministrativa e non necessita di logica per-player, ma /execute può aiutare a calcolare posizioni dinamiche quando serve.
/execute nei Command Block
È probabilmente l’ambiente in cui il comando viene usato più spesso dai giocatori che costruiscono mappe.
Un Command Block fornisce l’automazione; /execute decide contesto e condizione.
/execute nei Chain Command Block
Una catena può usare un primo controllo con /execute if e poi blocchi Conditional per le azioni successive.
Consulta la guida ai Command Block a catena.
Quando usare Conditional e quando /execute if
Conditional dipende dal successo del blocco precedente nella catena.
/execute if esprime direttamente la condizione nel comando.
Puoi anche combinarli.
/execute e tag
I tag sono ottimi per memorizzare stati semplici.
Puoi eseguire comandi soltanto su entità con o senza un certo tag.
/execute e scoreboard
Gli scoreboard rendono possibile una vera logica numerica: timer, contatori, livelli, stati, punteggi e confronti.
Esempio concettuale di timer
Un Repeat incrementa un valore; /execute if score verifica quando raggiunge una soglia; poi run avvia l’azione.
/execute e minigiochi
Puoi gestire:
- zone;
- squadre;
- punteggi;
- timer;
- condizioni di vittoria;
- respawn;
- kit;
- effetti;
- reset.
/execute e mappe Adventure
Puoi creare trigger invisibili basati sulla posizione del giocatore, sul blocco sotto i piedi, sulla presenza di entità o sullo stato di uno scoreboard.
Rilevare un blocco sotto il giocatore
/execute as @a at @s if block ~ ~-1 ~ minecraft:emerald_block run say Checkpoint
Questo pattern è estremamente utile.
Rilevare una zona
Puoi usare selettori con coordinate, distanza o volume. Le opzioni cambiano tra Java e Bedrock, ma il principio è filtrare il target prima di eseguire.
Rilevare un’entità
/execute if entity @e[type=minecraft:zombie,distance=..10] run say Zombie vicino
Rilevare l’assenza di un’entità
/execute unless entity @e[type=minecraft:zombie,distance=..10] run say Zona pulita
Rilevare il completamento di una boss fight
Un Repeat può controllare unless entity per il boss. Quando non esiste più, avvia ricompense e apertura dell’uscita.
Evitare ricompense infinite
Dopo l’azione, aggiungi un tag o modifica uno scoreboard per impedire al controllo di avere successo di nuovo.
/execute e coordinate relative ~
La tilde usa l’origine attuale del contesto.
Con at @s, ~ diventa relativo all’entità corrente.
/execute e coordinate locali ^
Il caret usa posizione e rotazione locali.
È perfetto per azioni “davanti al giocatore”.
Perché ^ senza contesto può sorprendere
Se il comando parte da un Command Block, la rotazione locale può non rappresentare la visuale di un giocatore.
Usa as, at, rotated o facing.
Creare un semplice dash
/execute as @p at @s run tp @s ^ ^ ^3
Testalo in un ambiente sicuro.
Creare un effetto frontale
Con più coordinate locali puoi generare una linea di particelle davanti al giocatore.
Raycast
Un raycast è una sequenza di controlli lungo una direzione. /execute positioned ^ ^ ^... e funzioni possono creare sistemi che avanzano lungo la visuale.
Raycast e Command Block
È possibile realizzare forme semplici, ma sistemi sofisticati sono generalmente più gestibili con funzioni.
/execute store
In Java, /execute store permette di memorizzare risultati o valori di successo in scoreboard, dati o storage secondo le forme supportate.
È uno strumento molto avanzato per trasformare l’esito dei comandi in dati riutilizzabili.
store result e store success
result memorizza un valore numerico restituito dal comando, quando disponibile.
success memorizza tipicamente un valore legato al successo/fallimento dell’operazione.
Perché store è potente
Permette di collegare comandi che non comunicano direttamente, trasformando un risultato in scoreboard o dati utilizzabili da altri sistemi.
/execute on
Le Java moderne includono anche forme avanzate che possono cambiare il contesto in relazione a entità collegate, a seconda della versione e della relazione supportata. Sono strumenti da verificare nella versione esatta usata.
Differenze Java e Bedrock
Bedrock ha adottato una sintassi moderna di /execute molto più vicina al modello a subcomandi: esecutore, posizione, rotazione, condizioni e comando finale.
Tuttavia Java e Bedrock non sono identiche. Filtri dei selettori, nomi di argomenti, supporto di specifici subcomandi e dettagli di sintassi possono differire.
Regola pratica per la compatibilità
Se stai costruendo una mappa per una sola edizione, scrivi e testa direttamente lì.
Se vuoi documentare un concetto generale, separa sempre gli esempi specifici per Java e Bedrock quando la sintassi diverge.
Bedrock: nuova sintassi execute
Le versioni Bedrock moderne usano una struttura concatenabile con subcomandi e run, molto più potente rispetto alla vecchia forma storica.
Java: struttura modulare
Java usa da anni il modello a subcomandi concatenabili. Questa struttura permette di costruire contesti molto complessi.
Errore: /execute as non sposta il comando
Soluzione: aggiungi at @s quando vuoi eseguire nella posizione dell’entità.
Errore: @s non è il giocatore
Controlla chi è l’esecutore corrente. In un Command Block semplice, @s non equivale automaticamente al giocatore vicino.
Errore: coordinate ~ partono dal Command Block
Se non hai cambiato posizione con at o positioned, l’origine resta quella del blocco.
Errore: ^ va nella direzione sbagliata
Controlla rotazione e anchor. Il contesto potrebbe non avere la direzione che pensi.
Errore: if entity trova troppe entità
Restringi il selettore con tipo, distanza, tag o altri criteri.
Errore: comando ripetuto ogni tick
Se usi Repeat, una condizione vera può eseguire run continuamente. Usa tag, scoreboard o un trigger una tantum.
Errore: catena troppo pesante
Riduci selettori globali, operazioni su blocchi e controlli ridondanti.
Come fare debug
- Testa il comando finale senza
/execute. - Aggiungi un subcomando alla volta.
- Prova
as. - Prova
at. - Aggiungi coordinate.
- Aggiungi condizioni solo alla fine.
Usare say per debug
Sostituisci temporaneamente il comando finale con:
run say TEST
Se il messaggio appare, sai che il contesto/condizione ha raggiunto run.
Usare particelle per debug
Le particelle sono perfette per vedere la posizione reale del contesto.
Usare setblock per debug
Piazzare un blocco temporaneo può mostrarti l’origine, ma evita materiali distruttivi.
Ottimizzare /execute
- Filtra il prima possibile.
- Evita
@esenza limiti. - Usa tag per gruppi noti.
- Non ripetere lo stesso controllo in più blocchi se puoi memorizzare lo stato.
- Evita
/fillcontinui. - Usa scoreboard per timer invece di logiche ridondanti.
Pattern: as + at + run
/execute as TARGET at @s run COMANDO
È probabilmente il pattern più importante da memorizzare.
Pattern: if entity + run
/execute if entity TARGET run COMANDO
Perfetto per presenza/assenza.
Pattern: as + at + if block + run
/execute as TARGET at @s if block ~ ~-1 ~ BLOCCO run COMANDO
Perfetto per trigger sul pavimento.
Pattern: anchored eyes + coordinate locali
/execute as TARGET at @s anchored eyes run COMANDO ^ ^ ^DISTANZA
Perfetto per azioni direzionali.
Pattern: in dimension + positioned
/execute in DIMENSION positioned X Y Z run COMANDO
Perfetto per azioni in un altro mondo/dimensione.
/execute e sicurezza
Un comando complesso può colpire molti target e grandi aree. Prima di combinarlo con /kill, /fill, /clone o /summon massivi, fai test controllati.
/execute e mappe pubbliche
Se la mappa verrà usata da altri, evita dipendenze fragili da coordinate assolute quando puoi usare tag, selettori e contesti dinamici.
/execute e modularità
La combinazione di as, at e coordinate relative permette di copiare sistemi in più zone senza riscriverli completamente.
Quando usare /execute invece della redstone
Usa /execute quando la condizione dipende da entità, posizione, dati, scoreboard, dimensione o rotazione.
Usa redstone quando un sensore o timing fisico è più semplice e leggibile.
Quando usare Chain Command Block
Quando devi eseguire più comandi in sequenza, una catena è spesso più chiara di un singolo comando enorme.
Quando usare funzioni
Quando il sistema diventa molto lungo, le funzioni possono essere più facili da mantenere rispetto a decine di Command Block.
Tabella dei subcomandi principali
| Subcomando | Scopo |
|---|---|
as |
Cambia esecutore |
at |
Cambia posizione/contesto usando un’entità |
positioned |
Cambia posizione |
rotated |
Cambia rotazione |
facing |
Orienta verso posizione/entità |
anchored |
Cambia anchor piedi/occhi |
in |
Cambia dimensione |
if |
Continua se vero |
unless |
Continua se falso |
run |
Esegue il comando finale |
Checklist per un /execute corretto
- Chi deve eseguire?
- Dove deve eseguire?
- Serve la rotazione del target?
- Serve un anchor agli occhi?
- Serve un’altra dimensione?
- Qual è la condizione?
- Il selettore è abbastanza specifico?
- Il comando finale funziona da solo?
- Il sistema può ripetersi?
- È sicuro se viene eseguito più volte?
FAQ su /execute
A cosa serve /execute?
Serve a cambiare contesto e condizioni prima di eseguire un altro comando.
Che differenza c’è tra as e at?
as cambia chi esegue; at cambia dove viene eseguito usando la posizione di un’entità.
Perché si usa as @a at @s?
Per eseguire il comando una volta per ogni giocatore e nella posizione di ciascun giocatore.
Che cos’è run?
Introduce il comando finale.
Come controllo se un’entità esiste?
Con una forma come execute if entity ... run ....
Come controllo un blocco?
Con if block e le coordinate desiderate.
Come eseguo davanti al giocatore?
Crea il contesto del giocatore e usa coordinate locali ^.
Posso usare /execute in Bedrock?
Sì. Le versioni moderne di Bedrock supportano una sintassi avanzata a subcomandi, anche se alcuni dettagli differiscono da Java.
Posso usarlo in un Command Block?
Sì, ed è uno degli usi principali.
Posso combinare più condizioni?
Sì, concatenando subcomandi compatibili prima di run.
Conclusione
Il comando /execute in Minecraft è il centro della programmazione avanzata con comandi. as decide chi, at decide dove, positioned sposta l’origine, rotated e facing controllano la direzione, in cambia dimensione e if/unless trasformano il comando in una vera struttura condizionale. Infine run esegue l’azione.
Combinando /execute con selettori, coordinate ~ e ^, Command Block e catene puoi creare sistemi dinamici molto più potenti della redstone tradizionale da sola. Se stai costruendo una mappa o un minigioco, il metodo migliore è procedere per piccoli passi: prima fai funzionare il comando finale, poi aggiungi esecutore, posizione e condizioni una alla volta.