Если цель - получить неподвижную сущность, важно понимать механику игры: у большинства мобов есть ИИ, который заставляет их искать цель, идти к игроку, патрулировать, атаковать и реагировать на окружение. Поэтому “заспавнить и выключить движение” обычно делается либо через команды с отключением ИИ, либо через кастомную сущность в моде.
Ниже - самые рабочие способы.
Способ 1. Команда summon с отключением ИИ (Vanilla)
Java Edition
Используйте тег NoAI:1 при спавне.
/summon minecraft:zombie 0 64 0 {NoAI:1}
Чтобы моб не издавал звуки, можно добавить Silent:1:
/summon minecraft:zombie 0 64 0 {NoAI:1,Silent:1}
Практика: NoAI:1 отключает поведение ИИ, но сущность все равно может слегка смещаться физикой, если в момент спавна она падает, застряла в блоке или получает толчок.
Bedrock Edition
В Bedrock команды снабжаются другим синтаксисом, и “заставить моба полностью не двигаться” чаще делают через фиксирование позиции (стойка в клетке, в упоре, без толчков) или через аддоны/скрипты. Для базовой задачи обычно достаточно просто поставить моба так, чтобы он не мог столкнуться с блоками и его не толкали.
Способ 2. Запретить движение скриптом на тиках (командный вариант)
Этот способ полезен, если NoAI:1 недостаточен из-за физики (например, моб падает или его толкают).
Идея простая: на каждом тике принудительно обнулять скорость и возвращать моба в одну точку.
Пример логики (команды в Java)
1) Задайте маркерную метку мобу, чтобы адресовать только нужную сущность.
2) В цикле тика:
- tp возвращает моба в фиксированную координату
- или data merge сбрасывает движение (если ваш вариант версии это поддерживает)
Базовый подход через tp надежнее:
tp @e[type=zombie,limit=1] 0 64 0
Чтобы это работало постоянно, выполните команду через командный блок с режимом “Цепочка” и “Повторяющийся” (или через функцию/тик-функцию датапака).
Важно: такой метод держит моба в точке, но моб может продолжать атаки/эффекты ИИ, если ИИ не отключен.
Способ 3. Для модов Forge: отключить ИИ и обнулить движение кодом
Если вы делаете кастомную сущность, можно повторить подход из примеров на форумах: отключить ИИ и принудительно обнулить motionX/motionY/motionZ в onUpdate(), а также удалить/не добавлять задачи в initEntityAI().
Типовая логика (концептуально):
- в applyEntityAttributes() выставить скорость движения в ноль
- в onUpdate() обнулить motionX, motionY, motionZ
- в initEntityAI() не добавлять задачи типа wander/attack или добавить их с нулевыми параметрами
Пример подобного класса, где обнуляют движение и меняют атрибуты, встречается в коде на форуме моддинга: обнуление motion в onUpdate() и установка MOVEMENT_SPEED в 0.0. См. пример и контекст обсуждения: https://forum.mcmodding.ru/threads/kak-sdelat-nepodvizhnost-i-ubrat-uron-mobu.23340/
Как добиться “стоит на месте” без сюрпризов
| Что может заставить моба двигаться | Почему так происходит | Что сделать |
|---|---|---|
| Моб падает после спавна | на него действует гравитация | спавнить ровно на устойчивом блоке, без воздуха под ногами |
| Моб застрял и “выталкивается” | столкновения и физика | оградить клеткой из блоков, чтобы он не мог выдавливаться |
| Игрок толкает моба | взаимодействие и толчки | поставить дистанцию и исключить контакт |
| Реагирует на цели и продолжает поведение | ИИ активен | использовать NoAI:1 (Java) или отключить ИИ в коде/моде |
| Слишком маленький интервал контроля (если вы телепортите) | вы контролируете не каждый тик | делайте повторяющийся тик-контроль через командный блок/датапак |
Типичные ошибки
1) Спавнят моба с NoAI:1, но потом толкают его или он падает - в итоге он начинает смещаться по физике. Решение - обеспечить корректное место спавна и убрать контакт.
2) Ожидают, что “не двигаться” означает “никогда не атаковать”. Отключение движения и отключение ИИ - разные вещи. Если нужно, чтобы моб вообще ничего не делал, отключайте ИИ тоже.
3) Используют только атрибуты скорости в моде, но оставляют ИИ-поведение активным. Даже при низкой скорости он может пытаться идти к цели.
Полезные ссылки
- Minecraft Wiki: команда
/execute(справка по командным цепочкам и подкомандам) - https://minecraft.fandom.com/ru/wiki/%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D0%B8/execute - Форум с примером кода “неподвижность” через обнуление motion и правку ИИ - https://forum.mcmodding.ru/threads/kak-sdelat-nepodvizhnost-i-ubrat-uron-mobu.23340/
- Ru-Minecraft: пример отключения “интеллекта” мобов через summon
NoAI:1(как минимум для Java в рамках статьи) - https://ru-minecraft.ru/instrukcii-gajdy-minecraft/40637-instrukcii-gaydy-minecraft-otklyuchaem-intellekt-u-mobov.html