- Что именно менять: огонь или “физику солнца”
- Вариант 1: правильный способ через датапак - запретить поджигание, а не только гасить Fire
- Вариант 2: мод “Mob Sunscreen” - отключить горение у зомби и скелетов
- Вариант 3: плагин для серверов (если вы на Bukkit/Spigot)
- Таблица: что выбрать
- Частые ошибки
- Итог
- Полезные ссылки
Зомби в Minecraft загораются на солнце, когда по ним проходят прямые лучи. Если вы хотите, чтобы они не горели днем, это можно сделать разными способами - от модов до команд и датапаков. Ниже разберем самые рабочие варианты и типичные ошибки, из-за которых “всё вроде правильно, но горят”.
Что именно менять: огонь или “физику солнца”
Есть два разных эффекта, которые часто путают:
- Сама механика поджигания при солнечном свете.
- Текущее состояние огня (когда моб уже горит, у него стоит значение Fire).
Если вы только “снимаете огонь” в моменте, моб может снова поджечься следующим тиком, когда солнечный свет продолжит попадать на него.
Вариант 1: правильный способ через датапак - запретить поджигание, а не только гасить Fire
Идея простая: на каждом тике вы сбрасываете Fire, но делаете это через одиночную проверку и не допускаете, чтобы моб мгновенно снова получал эффект “от солнца”.
Подход для датапака (команды)
Используйте функцию, которая гасит огонь у подходящих мобов:
data/<ваш_датапак>/functions/prevent_fire.mcfunction
execute as @e[type=zombie,limit=1000] run data modify entity @s Fire set value 0
execute as @e[type=drowned,limit=1000] run data modify entity @s Fire set value 0
execute as @e[type=zombie_villager,limit=1000] run data modify entity @s Fire set value 0
Дальше важно, чтобы эта функция вызывалась каждый тик из тега tick:
data/minecraft/tags/functions/tick.json (или свой тег, если у вас своя логика)
[
"ваш_датапак:prevent_fire"
]
Почему ваш пример мог “не сработать”
Судя по коду из вопроса, вы меняете Fire у зомби. Такое действительно гасит текущее горение, но зомби может:
- снова получить поджигание на следующем тике;
- быть в группе, которую вы не покрыли (например, другие вариации);
- не попадать под type в вашей версии (редко, но бывает с модами и сборками).
Еще один момент: в некоторых конфигурациях/версах надежнее запускать функцию через тик-тег, а не вручную. Команда /reload обновляет датапак, но не гарантирует, что дальше он “каждый тик” продолжит работать именно так, как вы ожидаете.
Вариант 2: мод “Mob Sunscreen” - отключить горение у зомби и скелетов
Если вы играете с Forge/Fabric и хотите простое решение без командной логики, подойдет мод, который делает зомби и скелетов невосприимчивыми к солнечному свету.
Обычно это означает, что моб не поджигается, а не только “гасится огонь”. Поэтому с ним меньше шансов получить повторное загорание сразу после выполнения команд.
Пример такого мода: Mob Sunscreen (разные сборки под Forge/Fabric). Он заявляет, что зомби и скелеты не горят на солнце и могут ходить днем.
Вариант 3: плагин для серверов (если вы на Bukkit/Spigot)
На серверных платформах можно сделать это через плагин, который управляет событиями поджигания или состоянием огня у мобов. В найденных источниках чаще встречаются темы “отключить горение на солнце/вечная ночь” и настройка поведения через плагины, но конкретный “универсальный рецепт” зависит от версии сервера и выбранной платформы.
Если вы используете серверные плагины, обычно проще искать настройку “sun burn / mob burning / disable sunlight burn” или писать обработчик события, который отменяет поджигание сущности.
Таблица: что выбрать
| Способ | Где работает | Убирает причину поджигания | Устраняет повторное горение | Сложность |
|---|---|---|---|---|
Датапак с data modify entity ... Fire set value 0 |
Singleplayer и сервер (ванильный) | Нет, вы гасите эффект | Да, если запускается каждый тик | Низкая |
| Датапак/скрипт, который отменяет поджигание | Singleplayer и сервер | Да | Да | Выше (нужна правильная логика под вашей версией) |
| Мод “Mob Sunscreen” | Forge/Fabric | Да (обычно) | Да | Низкая после установки |
| Плагин Bukkit/Spigot | Сервер | Да/частично (зависит от реализации) | Да | Средняя |
Частые ошибки
-
Проверяете работу функции не каждый тик.
Если поджигание происходит из-за солнца, то одно “погасить” недостаточно - нужен постоянный контроль. -
Ограниченный список
type.
Вы указали зомби, утопленника и зомби-священника. В модпаковом мире могут быть другие разновидности или кастомные сущности. -
Путаете
Fireи “горит от солнца”.
Fireэто состояние сущности. Даже приFire=0солнце может поджечь снова. -
Версия игры отличается от той, под которую вы ориентируетесь.
Поведение мобов и доступные теги могут слегка отличаться между версиями.
Итог
Если хотите самый быстрый способ в ванильном мире через датапак, используйте функцию, которая каждый тик ставит Fire равным 0 для нужных типов зомби. Если хотите “чтобы не горели вообще” без риска повторного поджигания - надежнее мод вроде Mob Sunscreen, потому что он меняет отношение мобов к солнечному свету.
Полезные ссылки
- Minecraft Wiki: Zombie поведение и поджигание на солнце - https://minecraft.fandom.com/ru/wiki/Зомби
- Форум: попытка убрать горение зомби через
prevent_fire.mcfunction(пример кода и обсуждение) - https://forum.mcmodding.ru/threads/kak-sdelat-zombi-ne-gorjaschimi-na-solnce.34194/ - Мод Mob Sunscreen (заявленная невосприимчивость к солнечному свету) - https://liroro.ru/minecraft/modi/mob-sunscreen/