Как работает /execute в Minecraft: полный гайд для новичков
/execute — это «надстройка» над обычными командами Minecraft: она позволяет запускать любую другую команду от имени другой сущности, в другой точке мира и только при выполнении заданных условий. Если вы научитесь уверенно пользоваться /execute, вы сможете делать почти всё, что делают датапаки, приключенческие карты и сложные командные механики — без модов и плагинов.

Содержание
- /execute для новичков: в чём смысл команды
- Базовый синтаксис /execute шаг за шагом
- Главные подкоманды: as, at, positioned, if, run
- Практические примеры для выживания, карт и серверов
- Типичные ошибки и как их исправить
- Советы и лайфхаки по работе с /execute
- Часто задаваемые вопросы по /execute
- Заключение и план дальнейшего изучения
/execute для новичков: в чём смысл команды
Если совсем упростить, /execute отвечает на три вопроса:
- КТО выполняет команду (от какого имени);
- ГДЕ она выполняется (какие координаты и размерности используются);
- ПРИ КАКИХ УСЛОВИЯХ команда вообще запустится.
Обычная команда, вроде:
Код:
/tp @p 0 100 0
Через /execute вы можете:
- заставить команду выполняться от лица любой сущности (зомби, стойки для брони, всех игроков с тегом и т. д.);
- изменить контекст координат — как будто команда запускается в другой точке мира;
- добавить условия: блок под ногами, наличие сущности рядом, значение счётчика scoreboard и т. д.;
- записать результат в счётчик, NBT и строить на этом сложную логику.
В этом руководстве мы будем опираться на актуальный синтаксис Java Edition 1.20+. В Bedrock Edition /execute похож, но подкоманды и формат частично отличаются, поэтому примеры нужно проверять под вашу версию.
Базовый синтаксис /execute шаг за шагом
Короткий ответ: современный /execute строится как цепочка подкоманд и почти всегда заканчивается блоком
run <команда>.Общая схема команды /execute
Базовый шаблон:
Код:
/execute [подкоманда1] [подкоманда2] ... run <другая_команда>
Логика простая:
- Слева вы описываете контекст (кто, где, при каких условиях).
- Справа после run — обычная команда, которая выполняется уже в этом контексте.
Самый простой пример:
Код:
/execute run say Привет из /execute!
Это почти то же самое, что просто:
Код:
/say Привет из /execute!
run.Что происходит «под капотом»
Упрощённо игровой движок делает следующее:
- Берёт исходного исполнителя команды (игрок, командный блок, консоль сервера).
- Применяет подкоманды слева направои каждый раз обновляет:
- текущую сущность-исполнителя (as);
- позицию и вращение (at, positioned, rotated, facing);
- условия (if / unless);
- возможные записи результата (store).
- Если все условия выполнились, запускает блок
run <команда>в получившемся контексте.
Важно: если какая-то подкоманда
if не выполняется, команда после run вообще не будет запущена, и «успех» /execute будет равен 0.Главные подкоманды: as, at, positioned, if, run
Короткий ответ: в реальной практике 90% задач с /execute решаются сочетаниями as, at, positioned, if/unless и run. Остальные подкоманды нужны для более продвинутой логики.
Краткая таблица подкоманд /execute
| Подкоманда | За что отвечает | Простой пример |
|---|---|---|
| as | Меняет исполнителя команды | /execute as @e[type=zombie] run say я зомби |
| at | Сдвигает контекст в позицию сущности | /execute at @p run summon pig ~ ~ ~ |
| positioned | Устанавливает конкретные координаты | /execute positioned 0 80 0 run tp @p ~ ~ ~ |
| if / unless | Добавляет условия выполнения | /execute if entity @e[type=creeper] run ... |
| run | Отделяет подкоманды от основной команды | /execute ... run kill @e[type=zombie] |
Далее разберём каждую из них чуть глубже.
as — выполнить команду от лица другой сущности
Задача: представить, что команду выполняет не вы, а, например, ближайший игрок, все зомби или конкретная стойка для брони.
Пример: каждый зомби «говорит» в чат:
Код:
/execute as @e[type=zombie] run say Я — зомби!
Что важно понимать:
- Команда после
runбудет выполняться столько раз, сколько сущностей попадает под селектор. @sвнутри цепочки — это текущий исполнитель, который может меняться послеas.
Пример с @s:
Код:
/execute as @e[type=zombie] run tp @s ~ ~1 ~
at — выполнить команду в позиции другой сущности
Задача: перенести «точку выполнения» команды к другой сущности или в её измерение.
Простой пример: призывать свинью в точке каждого игрока:
Код:
/execute at @a run summon pig ~ ~ ~
Ещё пример: запустить молнию в позицию случайного игрока:
Код:
/execute at @r run summon lightning_bolt ~ ~ ~
Заметки:
- После
atотносительные координаты~ ~ ~считаются от позиции выбранной сущности. - Это удобно в командных блоках: командный блок может стоять далеко, но команда будет работать там, где игрок.
positioned — жёстко задать координаты
Задача: установить точку выполнения команды в конкретные координаты, а не привязываться к сущности.
Примеры:
Абсолютные координаты:
Код:
/execute positioned 0 100 0 run summon iron_golem ~ ~ ~
Относительные координаты к текущему контексту:
Код:
/execute positioned ~ ~5 ~ run fill ~-1 ~-1 ~-1 ~1 ~1 ~1 minecraft:glass
Локальные координаты (относительно взгляда сущности) с ^:
[code]/execute as @p positioned ^ ^ ^5 run summon zombie ~ ~ ~
if / unless — условия выполнения команды
Задача: проверить условие и запускать команду только при его выполнении (или невыполнении).
Ключевые варианты:
if block <x> <y> <z> <блок>— проверка блока.if entity <селектор>— есть ли сущность.if score <игрок1> <объектив> matches <диапазон>— проверка значения scoreboard.- Аналогично с
unless, но наоборот: «если НЕ ...».
Примеры:
Сообщить, если под игроком золото:
Код:
/execute as @a at @s if block ~ ~-1 ~ minecraft:gold_block run say Я стою на золоте!
Запустить молнию, если рядом есть крипера:
Код:
/execute at @a if entity @e[type=creeper,distance=..5] run summon lightning_bolt ~ ~ ~
Проверка значения scoreboard:
Код:
/scoreboard objectives add coins dummy
/execute as @a if score @s coins matches 100.. run tellraw @s {"text":"Ты накопил 100 монет!","color":"gold"}
Типичная ошибка новичков — ставить
if после run. Всё, что идёт после run, уже воспринимается как отдельная команда и не может быть подкомандой /execute.run — граница между настройкой и основной командой
Задача: показать игре, что подкоманды закончились, и дальше идёт обычная команда.
Пример:
Код:
/execute as @a at @s if block ~ ~-1 ~ minecraft:diamond_ore run say Нашёл алмазы!
После слова
run вы можете писать практически любую команду, как если бы её вводили в чат:tp,effect,summon,fill,setblock;- или даже другой
/execute, уже вложенный.
Технически можно использовать /execute и без
run, например:
Код:
/execute if entity @e[type=zombie]
run.Практические примеры для выживания, карт и серверов
Короткий ответ: начните с простых автоматических проверок — «стою ли я на нужном блоке», «есть ли рядом моб», «вошёл ли игрок в зону» — и постепенно добавляйте сложность.
Пример 1: Сообщение при нахождении алмазов
Задача: когда игрок встаёт на алмазную руду, в чат выводится сообщение.
Командный блок (повторяющийся, всегда активен):
Код:
/execute as @a at @s if block ~ ~-1 ~ minecraft:diamond_ore run say %s стоит на алмазной руде!
Особенности:
%sв командеsayзаменится на имя исполнителя (в некоторых плагинах/ядрах; если нет — можно явно указать@sв tellraw).~ ~-1 ~— блок непосредственно под игроком.
Пример 2: Безопасный телепорт только если площадка свободна
Задача: телепортировать игрока на крышу башни, но только если там нет других игроков.
Код:
/execute at @p if entity @a[distance=..2] run say Точка занята!
Код:
/execute at @p unless entity @a[distance=..2] positioned 100 80 100 run tp @p ~ ~ ~
Логика:
- Первая команда — отладочная: сообщает, что рядом уже кто-то есть.
- Вторая команда с
unlessсрабатывает только если нет игроков в радиусе двух блоков.
Пример 3: Радиация в зоне вокруг точки
Задача: в радиусе 10 блоков от заданных координат игроки периодически получают урон.
Повторяющийся командный блок:
Код:
/execute at @a[distance=..10,x=0,y=64,z=0] run effect give @s minecraft:poison 2 0 true
Здесь:
x, y, z— центр «радиоактивной» зоны.distance=..10— любой игрок в радиусе 10 блоков.- Эффект выдаётся от лица самого игрока (
@sпослеas @aили когда игрок уже выбран исполнителем].
Пример 4: Проверка «правильного» предмета в руке
В Java Edition удобно использовать предикаты и NBT, но для новичка достаточно простого варианта: проверяем, держит ли игрок конкретный предмет.
Пример (для простоты только по имени предмета, без NBT):
Код:
/execute as @a[nbt={SelectedItem:{id:"minecraft:diamond_sword"}}] run say У меня в руках алмазный меч!
Такой подход уже требует аккуратной работы с NBT, но отлично показывает силу /execute: вы адресуетесь не ко всем игрокам подряд, а только к тем, у кого в руке нужный предмет.
Типичные ошибки и как их исправить
Короткий ответ: чаще всего новички забывают слово
run, путают порядок подкоманд, используют старый синтаксис или неверные координаты.Ошибка 1: «Unknown or incomplete command, see below for error»
Пример проблемной команды:
Код:
/execute as @a if block ~ ~-1 ~ minecraft:gold_block say Привет
Что не так:
- После подкоманд нет
run, поэтому игра ожидает продолжения /execute, а не обычную команду.
Правильно:
Код:
/execute as @a if block ~ ~-1 ~ minecraft:gold_block run say Привет
Ошибка 2: Старый синтаксис /execute
До 1.13 команда выглядела так:
Код:
/execute @p ~ ~ ~ say Привет
На современных версиях это работает только на старых мирах/ядрах с обратной совместимостью, в обычной игре вы получите ошибку.
Современный эквивалент:
Код:
/execute as @p at @s run say Привет
Для новичков важно сразу привыкнуть к новому виду: подкоманды + run.
Ошибка 3: Неправильный порядок as и at
Пример:
Код:
/execute at @a as @e[type=zombie] run tp @s ~ ~1 ~
Так команда читается как «переместить контекст к каждому игроку, а затем выполнить команду как каждый зомби». В результате координаты берутся от игроков, а не от мобов — это может быть не тем, что вы ожидаете.
Во многих случаях логичнее:
Код:
/execute as @e[type=zombie] at @s run tp @s ~ ~1 ~
Ошибка 4: Путаница между ~ и ^
~— координаты относительно текущей точки в мире (ось X/Y/Z).^— координаты относительно направления взгляда сущности (вперёд/вверх/вбок).
Если вы пытаетесь разместить эффект «перед игроком» и используете
~, он всегда будет смещён относительно мира, а не относительно взгляда.Неправильно:
Код:
/execute as @p positioned ~ ~ ~5 run summon zombie ~ ~ ~
Правильный подход с локальными координатами:
Код:
/execute as @p positioned ^ ^ ^5 run summon zombie ~ ~ ~
Ошибка 5: Команда работает только в одиночной игре
На серверах часто включены ограничения прав. Если у игрока нет разрешения на /execute или на команду после
run, ничего происходить не будет.Решение:
- Проверить права (оп-статус, разрешения плагинов).
- Вносить сложную логику в командные блоки или функции, а не в чат игроков.
Советы и лайфхаки по работе с /execute
Короткий ответ: относитесь к /execute как к «языку условий», а не к набору разрозненных команд. Тогда сложные конструкции становятся понятными и предсказуемыми.
- Читаете /execute вслух. Например: «выполнить как всех игроков, в их позиции, если под ними блок такой-то, запустить команду». Если фраза звучит бессмысленно, команда, скорее всего, тоже.
- Отлаживайте через /say или /tellraw. Сначала вместо серьёзного действия (tp, kill, fill) выведите отладочное сообщение в чат, убедитесь, что условие срабатывает, и только потом заменяйте на боевую команду.
- Используйте @s максимально активно. После
asэто мощный инструмент: вам не нужно каждый раз повторять сложный селектор, достаточно обращаться к текущему «исполнителю». - Стройте логику «слева направо». Сначала выбираем исполнителя (as), потом точку (at / positioned), потом условия (if / unless), и только в самом конце — действие (run).
- Разносите сложные конструкции в функции. В Java Edition удобно выносить длинные /execute в функции датапака и запускать их одной короткой командой.
- Не бойтесь цепочек. /execute допускает вложенный /execute после run. Главное — следите за читаемостью и отлаживайте по частям.
Часто задаваемые вопросы по /execute
Нужно ли мне изучать старый синтаксис /execute?
Если вы играете на современных версиях (1.13+), нет смысла тратить время на старый формат. Он актуален только для архивных карт и старых серверов. Лучше сразу привыкать к цепочке подкоманд и
run.Чем /execute отличается от обычных команд вроде /tp или /kill?
Обычная команда работает в текущем контексте: от вашего имени, в вашей позиции и без условий. /execute позволяет этот контекст полностью переписать: выбрать другого исполнителя, другую позицию, задать условия и только потом запустить нужную команду. Это превращает набор команд в полноценную «логику».
Можно ли использовать /execute без операторских прав?
В ванильной игре — нет, нужны права на использование команд и, как правило, статус оператора (op) или соответствующие разрешения на сервере. На некоторых серверах родители/админы выдают ограниченный набор прав через плагины, но это уже зависит от конкретной конфигурации.
Работает ли /execute одинаково в Java и Bedrock Edition?
Общая идея одинаковая, но детали различаются:
- в Bedrock другой набор подкоманд и немного иная структура;
- часть примеров из этого гайда может потребовать адаптации;
- NBT и scoreboard в Bedrock работают иначе.
Почему моя команда с /execute ничего не делает, но ошибок нет?
Чаще всего:
- условие
ifилиunlessпросто не выполняется; - селектор сущностей никого не находит (например, неподходящий
distanceилиtype); - командный блок выключен, стоит не в том режиме, или цепочка блоков не активируется.
run tp/kill/fill на run say или run tellraw и добавьте в сообщение что-то вроде «условие выполнено». Так вы увидите, выполняется ли сама проверка.Заключение и план дальнейшего изучения
/execute — не «магическая» команда, а удобный конструктор: вы по шагам описываете, кто, где и при каких условиях должен выполнить обычную команду. Понимая это, вы сможете строить системы от простых детекторов блоков до сложных мини-игр и RPG-механик.
Рекомендуемый порядок дальнейшего изучения:
- Отработать простые комбинации
asиatв тестовом мире. - Добавить проверки
if blockиif entityдля триггеров зон и блоков. - Освоить
scoreboardиif scoreдля счётчиков и прогресса. - Перейти к предикатам и работе с NBT, когда базовая логика станет привычной.
- Постепенно переносить рабочие решения в датапаки и функции, чтобы не держать десятки длинных команд в одном блоке.
Если вы будете подходить к /execute как к небольшому языку условий, а не как к «страшной» команде, через несколько вечеров практики он станет для вас таким же естественным инструментом, как /tp или /give.