Как работает /execute в Minecraft: полный гайд для новичков

Туториал Как работает /execute в minecraft: полный гайд для новичков

  • Автор темы Автор темы mcdev
  • Дата начала Дата начала

mcdev

Администратор
Администратор
Клиент
Рубли
207.0

Как работает /execute в Minecraft: полный гайд для новичков​


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

WbjWT.webp

Содержание​




/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 ~ ~ ~
Это призовёт зомби на 5 блоков перед игроком, независимо от направления по миру.

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.