Питомцы FreeMinecraftModels
FreeMinecraftModels может превратить модель в вид питомца. Игроки приручают питомцев едой, разводят их, берут с собой, велят им оставаться на месте и хранят их в коллекции, которую открывают командой /fmm pets. Каждый вид задаётся файлом <species>.pet.yml, который лежит рядом с его моделью, поэтому пакет моделей устанавливает, включает и отключает своих питомцев вместе с моделями. То, что питомец делает сам, от следования за владельцем до кружения у костров, определяют Lua-модули поведения, которые перечисляет его файл. Общие для сервера настройки питомцев находятся в pets.yml.
Требования
- Питомец — это скрытый ванильный моб с моделью, которым управляет ИИ Mind из MagmaCore. Для этого нужна поддержка NMS во FreeMinecraftModels для версии сервера и Minecraft 1.21.4 или новее. Без неё при запуске консоль выводит строку, начинающуюся с
Pets are off:, а/fmm petsотвечаетPets are not available on this server. - FreeMinecraftModels не поставляет ни одного вида питомцев. Питомцы существуют только после того, как пакет моделей или вы добавите файл
.pet.yml. - Игрокам нужен сгенерированный ресурс-пак, как и для любой модели.
Как устроен питомец
- Тело — это ванильный моб, указанный в
bodyфайла питомца, по умолчанию тихоня (allay). Он скрыт внутри модели, беззвучен и никогда не подбирает предметы. Его максимальное здоровье —healthиз файла питомца. - Клики попадают в модель, которую видят игроки, а не в меньшее тело внутри неё.
- Питомцы никогда ничего не выбирают целью, и мобы никогда не выбирают целью питомцев.
- Урон при контакте FreeMinecraftModels для питомцев выключен. Питомец что-то ранит только через модуль
sting. - Погибший питомец ничего не роняет и не даёт опыта.
- Тела питомцев никогда не сохраняются вместе с чанком. Питомцы с владельцем создаются заново рядом с владельцем, а дикие ждут в
data/wild_pets.yml(см. Дикие питомцы). Тело питомца, оставшееся в чанке после сбоя, удаляется при загрузке чанка. - Над моделью показывается
nameвида, а у детёнышей перед ним стоитBaby.
Режимы питомцев
У pets.yml два режима:
| Режим | Что происходит |
|---|---|
COSMETIC (по умолчанию) | В мире существуют только питомцы, которыми владеют игроки, не считая проходящих ночных миграций. Больше никто не появляется в дикой природе, и никого нельзя приручить. Питомцам с владельцем ничто не может навредить |
CREATURES | Виды питомцев ещё и живут дикими в мире, появляясь как ванильные сельскохозяйственные животные, и игроки приручают их, кормя. Питомцам с владельцем можно навредить в рамках правил урона |
Переключайте режим кнопкой Pets на панели /fmm setup, командой /fmm petadmin mode creatures или /fmm petadmin mode cosmetic либо правкой mode в pets.yml и выполнением /fmm reload. Кнопка и команда записывают новый режим в pets.yml.
При переключении на COSMETIC живые дикие питомцы отправляются в data/wild_pets.yml. Они возвращаются, когда сервер снова переключается на CREATURES. Ночные миграции проходят в обоих режимах, но приручить мигранта игроки могут только в CREATURES.
В режиме COSMETIC игроки питомцев не приручают. /fmm petadmin give <species> добавляет питомца в коллекцию игрока, который выполняет команду. Разведение работает в обоих режимах.
Приручение
В режиме CREATURES игрок приручает дикую взрослую особь, нажав по ней правой кнопкой предметом из tamingFood её вида.
- Каждое кормление расходует один предмет, кроме творческого режима.
- Каждое кормление приручает с вероятностью
tameChance, по умолчанию1/3, как у волков и кошек. Неудачное кормление показывает дым иtameFailedMessage. - Приручённый питомец попадает в коллекцию игрока и появляется рядом с ним. Он сохраняет вариант окраса, который у него был в дикой природе, и один раз проигрывает свою анимацию
interact. - Если у игрока уже выведено
maxEquippedPetsпитомцев, новый питомец вместо этого отправляется домой, в коллекцию. - Вид с пустым списком
tamingFoodприручить нельзя.
Поводок действует на тело питомца, как на ванильного моба.
Разведение и детёныши
- Когда владелец нажимает правой кнопкой по взрослому питомцу предметом из его
breedingFood, расходуется один предмет, и питомец переходит в режим любви наloveSecondsсекунд, по умолчанию30. - Две взрослые особи одного вида, принадлежащие одному игроку, обе в режиме любви и в пределах 8 блоков друг от друга, приносят детёныша. Детёныш попадает в коллекцию владельца и появляется, если у владельца не достигнут
maxEquippedPets. - Детёныш наследует вариант окраса одного из родителей. Он носит
babyModel, если вид её задаёт, иначе модель своего варианта, и в обоих случаях имеет размерbabyScaleот размера взрослой особи. - Оба родителя ждут
breedingCooldownMinutes, по умолчанию5, прежде чем смогут снова размножаться. Кормление родителя за это время показываетbreedingCooldownMessage. - Детёныш вырастает через
babyGrowthMinutes, по умолчанию20, после рождения. Время идёт и пока детёныш дома, а взрослая особь появляется, когда детёныш в следующий раз будет выведен. - Детёныши не размножаются и не проигрывают анимацию атаки, когда жалят.
Когда рождается детёныш, родители проигрывают свою анимацию interact.
Следование, ожидание и блуждание
С поставляемыми поведениями выведенный питомец с владельцем держится рядом с владельцем. Приведённые ниже числа — значения по умолчанию модулей follow_owner, stay, drift и hover и ключей follow и float вида:
- Как только владелец оказывается дальше
follow.distance(5блоков), питомец следует за ним, целясь в точку на 1.5 блока позади, а у летающего вида — наfloat.hoverHeightнад его ногами. Летающий питомец следует со скоростью 5 блоков в секунду приfollow.speed: 1и со скоростью 8 блоков в секунду за пределамиfollow.leashDistance(12). Он перестаёт следовать в этой точке или когда оказывается в пределах 3 блоков (0.6 расстояния следования) от владельца. - За пределами
follow.teleportDistance(24) питомец телепортируется к владельцу. Он также телепортируется после 3 секунд подряд, в которые никуда не продвинулся: нет пути к владельцу, путь обрывается, не дойдя до него, у забора или берега, либо на пути летающего питомца стена. Такая телепортация всегда ставит питомца ближе к владельцу и никогда не ставит наземного или плавающего питомца на блок самого владельца. - В пределах расстояния следования летающий питомец дрейфует к случайным точкам в пределах
follow.roamRadius(5) от владельца и покачивается на месте между дрейфами, удерживаяfloat.hoverHeightнад землёй, плюс-минусfloat.hoverVariance. Наземные виды блуждают и время от времени смотрят на ближайшего игрока; плавающие виды плавают под водой. - Когда владелец нажимает правой кнопкой по питомцу чем-либо, кроме его еды для разведения или поводка, питомец остаётся на месте, как собака, и мягко покачивается. Следующий такой клик велит ему снова следовать. Задайте
follow.stay: false, чтобы отключить это. Клики других игроков по питомцу с владельцем ничего не делают.
follow.speed умножает скорость каждого поставляемого поведения, кроме миграционного полёта. Летающими телами управляют напрямую. Другие тела идут или плывут к тем же точкам ванильным поиском пути; см. Скорости. Питомцы, которые не плавают, парят над поверхностью воды и лавы, а не тонут до дна.
Дикий питомец блуждает так же вокруг места, где появился.
Выведенные питомцы покидают мир, когда их владелец выходит, и снова появляются рядом с ним при следующем входе. Питомец, потерянный из-за выгрузки чанка, смены мира или дальней телепортации, возвращается к владельцу в течение секунды.
Меню питомцев
/fmm pets открывает коллекцию игрока как меню-сундук с названием menuTitle. Оно показывает до 54 питомцев.
- Каждая запись показывает предмет
iconвида, а также егоiconItemModel, если вид его задаёт. Выведенные питомцы отображаются с эффектом зачарования. - Описание показывает вид, вариант (если он отличается от модели вида), возраст и находится ли питомец с игроком.
- Клик по записи берёт питомца с собой или отправляет домой. Попытка вывести больше чем
maxEquippedPetsотклоняется сообщениемmaxEquippedMessage. - Игрок без питомцев получает
noPetsMessageвместо меню.
Коллекция хранится у игрока, как JSON в постоянных данных игрока, поэтому она путешествует вместе с файлом сохранения игрока и не требует базы данных. Питомец, вид которого больше не установлен, остаётся в коллекции с иконкой барьера и не появляется.
Урон и смерть
| Питомец | Урон |
|---|---|
С владельцем, режим COSMETIC | Игнорирует весь урон |
С владельцем, режим CREATURES | Игнорирует урон от своего владельца. Игнорирует урон от других игроков, пока petsInvulnerableToPlayers равно true (по умолчанию). Остальной урон применяется |
| Дикий | Получает урон, как любой моб |
Клик левой кнопкой по питомцу, которому нельзя навредить, не считается атакой, поэтому модель не вспыхивает красным.
Когда питомец с владельцем погибает, он уходит домой и его можно снова вывести из /fmm pets. При petsDiePermanently: true он вместо этого покидает коллекцию. Погибший дикий питомец пропадает.
Дикие питомцы
Дикие питомцы существуют только в режиме CREATURES. Они живут как ванильные сельскохозяйственные животные: большинство приходит вместе с миром при генерации чанков, остаётся на месте и никогда не исчезает.
Заселение новых чанков
Когда чанк генерируется, FreeMinecraftModels делает бросок с вероятностью wildGenerationChance (0.01). При успехе он размещает одну группу вида, выбранного по wildSpawn.weight среди видов, которые могут там стоять, на поверхности вокруг случайного столбца. Бросок повторяется после каждой группы. Значения выше 0.9 считаются равными 0.9, поэтому чанк никогда не заполняется бесконечно. Лимиты, игроки, время суток и игровое правило появления мобов это заселение не ограничивают.
Пополнение вокруг игроков
Каждые wildSpawnIntervalTicks (400, но не менее 20) проход добавляет диких питомцев в загруженных чанках в пределах 8 чанков от каждого игрока, не находящегося в режиме наблюдателя:
- Каждый чанк пробуется с вероятностью
wildSpawnChunkChance(0.01). - Точка должна находиться дальше 24 блоков от ближайшего игрока и от точки появления мира и не дальше 128 блоков от этого игрока.
- Пополнение прекращается, когда в пределах 8 чанков от каждого игрока рядом с точкой находится
wildPetCapPerPlayer(6) диких питомцев всех видов.wildSpawn.capкаждого вида (4) дополнительно ограничивает этот вид. - Пополнение учитывает игровое правило появления мобов в мире и
wildSpawn.timeкаждого вида.
Мигранты в эти лимиты не засчитываются.
Где ждут дикие питомцы
Когда чанк дикого питомца выгружается или перестаёт тикать, его вид, вариант, позиция и дом записываются в plugins/FreeMinecraftModels/data/wild_pets.yml. Он возвращается, когда игрок оказывается в пределах 8 чанков от этого загруженного чанка. Файл записывается при каждом сохранении миров, а также когда FreeMinecraftModels выключается или перезагружается.
Дикие питомцы вида, который больше не установлен, продолжают ждать в файле. Живой дикий питомец, которого удалил другой плагин, пропадает, как будто погиб.
Ночные миграции
Время от времени стая мигрирующего вида пролетает по ночному небу над игроком и исчезает после пролёта. Вид мигрирует, когда его locomotion равен FLYING, в его файле питомца есть раздел migration: и его поведения запускают migrate, который входит в значения по умолчанию для FLYING. Если у вида есть варианты, каждый вариант, который может носить мигрант, должен запускать migrate. Вид с разделом migration:, не отвечающий этим условиям, никогда не запускает стаи и при загрузке пишет предупреждение, если только его migration.weight не равен 0 или его migration.enabled не равен false.
- Планировщик проверяет обстановку каждые 5 секунд в обычных мирах (типа Верхнего мира) в течение ночи. Каждый игрок получает один бросок за ночь против
migrations.chancePerNight(0.15). Выигрышный бросок выбирает момент в оставшейся части ночи, достаточно ранний, чтобы весь пролёт закончился к рассвету. - В этот момент стая стартует, если игрок под открытым небом, в пределах
migrations.viewDistanceот него нет другой стаи и в воздухе меньшеmigrations.maxActiveFlocks(3) стай. Иначе попытка повторяется, пока не кончится ночь. - В стае от
minFlockSizeдоmaxFlockSizeучастников (от8до14), она летит наaltitudeблоков (28) выше более высокой из точек: игрока и земли под ним, со скоростьюspeedблоков за тик (0.15), по прямой, проходящей над игроком на половинеdurationSeconds(90), либо раньше, когда дальность симуляции мира меньше 12 чанков, потому что стая стартует там, где её участники ещё тикают. - Участники — обычные дикие питомцы вида в полной модели и с анимациями, размером
migration.scaleот размера вида, освещённые на полную яркость и видимые сmigrations.viewDistance(160) блоков. Клиентам всё равно нужны чанки под стаей в пределах их дальности прорисовки. - В режиме
CREATURESигрок, добравшийся до мигранта, может приручить его, что выводит его из стаи. Когда пролёт заканчивается, участники, которые всё ещё летят, удаляются.
/fmm petmigrate [species] немедленно отправляет стаю над вами независимо от времени, неба и других стай. С указанием вида она стартует, даже когда у этого вида нет раздела migration:, но его участники летят по маршруту, только если запускают migrate. Без указания вида выбирается мигрирующий вид по migration.weight.
Раздел migration
| Ключ | По умолчанию | Значение |
|---|---|---|
enabled | true | false отключает миграции вида и сохраняет остальные значения |
model | пусто | Фиксированная модель для каждого участника. Пусто — выбор из вариантов вида, как при диком появлении |
scale | 1 | Размер мигранта относительно scale вида |
animation | пусто | Анимация, которую нужно зацикливать в полёте. Пусто — проигрываются собственные idle и walk модели |
weight | 1 | Как часто выбирается этот вид, когда мигрируют несколько. 0 исключает его из ночного расписания |
Поведения
Всё, что питомец делает сам, определяют модули поведения: Lua-файлы в plugins/FreeMinecraftModels/pet_behaviors/. FreeMinecraftModels поставляет 15 таких модулей и записывает каждый в эту папку при запуске и при /fmm reload, когда файла с таким именем там нет. Удалённый поставляемый модуль возвращается при следующей загрузке. Модуль, уже лежащий в папке, никогда не перезаписывается, отредактирован он или нет, поэтому он сохраняет ту версию, с которой был записан: удалите свою копию и перезагрузите, чтобы получить ту, что поставляет ваша версия FreeMinecraftModels.
Каждый питомец выполняет модули, которые перечисляет файл его вида, с настройками этого вида. /fmm reload перечитывает модули и файлы питомцев и заново запускает на них каждого питомца. Чтобы изменить модуль или написать свой, см. Модули поведения питомцев.
Список behaviors
behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 20, night_only: false }
- drift
- hover
- sting:
effect: POISON
damage: 1
- Каждая запись — это имя модуля, то есть имя его файла без
.lua, или имя с настройками: в одной строке какname: { setting: value }или в строках ниже с отступом в два пробела от имени. - Настройка, которую запись не указывает, сохраняет значение модуля по умолчанию. Значения по умолчанию перечислены в разделе Поставляемые модули и в начале каждого файла
.lua. - Питомец выполняет только то, что названо в его списке. Если модуль не указан, вид никогда этого не делает.
- Порядок списка не решает, какое поведение выполняется. Это решает приоритет каждого модуля, и файл питомца изменить его не может: скопируйте модуль и поменяйте приоритет там. Порядок важен только когда два модуля конфликтуют: тогда сохраняется первый.
- Модуль, указанный дважды, выполняется один раз с настройками первой записи, а консоль предупреждает об этом.
Значения по умолчанию без списка
Файл вида без списка behaviors: выполняет поведения по умолчанию для своего locomotion:
locomotion | Поведения по умолчанию |
|---|---|
FLYING | migrate, stay, follow_owner, drift, hover |
GROUNDED, AMPHIBIOUS | stay, follow_owner, wander, idle_look |
AQUATIC | stay, follow_owner, swim |
STATIONARY | stay, follow_owner |
Список заменяет эти поведения по умолчанию, а не дополняет их, поэтому список, добавляющий модуль, должен также назвать поведения по умолчанию, которые он сохраняет. behaviors: [] не запускает никаких модулей. Значение behaviors, не являющееся списком, игнорируется с предупреждением, и вид выполняет поведения по умолчанию.
Поведения вариантов
Запишите вариант как карту, чтобы дать носящим его питомцам больше модулей или другие настройки:
variants:
- firefly
- model: firefly_blue
weight: 0.5
behaviors:
- night_glow: { light: 10 }
- crop_drizzle
- Карта варианта принимает
model,weight(по умолчанию1) иbehaviors. Любой другой ключ игнорируется с предупреждением. - Питомец, носящий вариант, выполняет список вида или поведения по умолчанию для его
locomotionплюс записи варианта. Модуль, названный в обоих списках, сохраняет своё место в списке вида и принимает настройки варианта поверх настроек вида. Остальные модули варианта идут после собственных модулей вида. - Детёныш выполняет список своего варианта, даже пока носит
babyModel.
Значения настроек
Каждая настройка имеет тип своего значения по умолчанию: число, true или false, текст или список текстов.
- Значение с понятным смыслом принимается в другой форме: число в кавычках, например
"8","true"или"false"в любом регистре, и одно слово для списка из одного элемента. - Текстовая настройка, получившая число или
true/false, принимает его в том виде, в каком его прочитал YAML, поэтомуonиyesстановятсяtrue. Берите такие слова в кавычки. - Записывайте список в скобках, как в
[CAMPFIRE, SOUL_CAMPFIRE], или по одному элементу в строке, начиная с-. Текст с запятыми или пробелами как список не читается. - Настройка, которой у модуля нет, настройка без значения, список с пустой записью или значение неверного типа вызывают в логе предупреждение с именем файла питомца, и значение по умолчанию остаётся. Существо всё равно загружается.
Поставляемые модули
| Модуль | Приоритет | Тип | Что делает |
|---|---|---|---|
migrate | 1 | Поведение | Летит по маршруту ночной миграции |
stay | 5 | Поведение | Удерживает место, где ему велели оставаться |
follow_owner | 10 | Поведение | Не отстаёт от владельца |
campfire | 15 | Поведение | Кружит у горящего костра ночью |
day_perch | 18 | Поведение | Днём отдыхает на листве или на земле |
rain_bloom | 19 | Поведение и сенсор | Набухает и активнее дрейфует под дождём |
drift | 20 | Поведение | Летит к случайным точкам вокруг своего якоря |
wander | 20 | Поведение | Идёт к местам, где можно стоять, вокруг своего якоря |
swim | 20 | Поведение | Плывёт к местам под водой вокруг своего якоря |
hover | 30 | Поведение | Покачивается на месте между дрейфами |
idle_look | 30 | Поведение | Время от времени смотрит на ближайшего игрока |
night_glow | Сенсор | Подсвечивает модель ночью | |
sting | Сенсоры | Жалит игроков или враждебных мобов, которые его касаются | |
crop_drizzle | Сенсор | Ускоряет рост культур, над которыми парит | |
owner_effect | Сенсор | Даёт владельцу эффект зелья |
Поведение с меньшим числом приоритета перехватывает управление у работающего с большим числом, поэтому следование побеждает костры, а костры побеждают дрейф. Сенсоры никогда не двигают питомца; они выполняются параллельно с тем поведением, которое сейчас работает.
Якорь питомца — то, вокруг чего он бродит: его владелец, а у дикого питомца место, где он появился. Питомец устроился, пока ему не велено оставаться на месте и он дикий либо находится в пределах follow.distance от владельца.
Скорости
Скорость, которую запрашивает модуль, равна его настройке speed, умноженной на follow.speed. Летающее тело летит столько блоков за тик, не более 4; 0.05 — это один блок в секунду. Идущее или плывущее тело идёт туда ванильной навигацией со скоростью, в 4 раза большей этого числа, как множитель собственной скорости движения своего типа тела, но не меньше четверти её. speed, равный 0, оставляет наземного или плавающего питомца неподвижным.
migrate
Пока питомец летит ночную миграцию, он летит по маршруту своей стаи со скоростью стаи, приоритетнее любого другого поведения. Он останавливается, когда пролёт заканчивается или игрок приручает питомца. Вид, чьи поведения его не запускают, никогда не запускает стаи. Настроек нет.
stay
После клика «оставаться на месте» владельца питомец удерживает место, мягко покачиваясь. Каждое покачивание происходит в собственной среде тела: в воздухе для летающего, на земле для наземного, под водой для плавающего, причём плавающий сохраняет глубину, на которой ему велели оставаться.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.03 | См. Скорости |
bob_ticks | 40 | Тики между покачиваниями |
bob_radius | 0.5 | Блоки от места, на которые покачивание может его сместить |
Все поставляемые поведения движения ждут, пока питомцу велено оставаться на месте, поэтому питомец без stay в списке не покачивается.
follow_owner
Держит питомца, у которого есть владелец, рядом с ним, как описано в разделе Следование, ожидание и блуждание. Читает follow.distance, follow.leashDistance, follow.teleportDistance и float.hoverHeight из файла вида.
Телепортация для догона приземляет питомца в пределах 2 блоков от владельца, в собственной среде питомца: в его диапазоне парения для летающего, на твёрдой земле для наземного, в воде до 6 блоков в стороне для плавающего, а для земноводного — на землю или, если её нет, в воду. Она ставит питомца только если он окажется хотя бы на блок ближе к владельцу, чем сейчас, а наземного или плавающего — не ближе чем в блоке от владельца. Если ничего не подходит, она пробует снова через ещё один stuck_ticks.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.25 | Скорость следования. См. Скорости. При 0 питомец держится рядом только через телепортации для догона |
leash_urgency | 1.6 | Множитель скорости за пределами follow.leashDistance |
trail_back | 1.5 | Блоки позади владельца, в которые целится питомец |
stuck_ticks | 60 | Тики подряд без продвижения, после которых питомец телепортируется к владельцу |
drift
Для летающих видов. Питомец летит к случайной точке в пределах follow.roamRadius от своего якоря, внутри своего диапазона парения (float.hoverHeight над землёй, плюс-минус float.hoverVariance), затем отдыхает.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.06 | См. Скорости |
drift_ticks | 160 | Наибольшее число тиков одного дрейфа |
stuck_ticks | 20 | Тики без движения, после которых дрейф прекращается |
rest_ticks | 60 | Тики отдыха питомца после дрейфа |
rest_random_ticks | 80 | Добавляет случайные от 0 до этого значения минус 1 тиков отдыха |
hover
Для летающих видов. Пока не выполняется никакое другое поведение движения, питомец покачивается на месте: каждые bob_ticks он смещается вверх или вниз не более чем на половину float.hoverVariance. Питомец, оказавшийся дальше чем на correct_above блоков от float.hoverHeight над землёй, вместо этого сразу возвращается на эту высоту. Землю он ищет на глубину до 12 блоков.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.03 | См. Скорости |
bob_ticks | 30 | Тики между покачиваниями |
correct_above | 1.5 | Блоки отклонения от высоты парения, при которых он сразу возвращается |
wander
Для наземных видов. Питомец идёт к месту, где можно стоять, рядом со своим якорем, отдыхает и идёт снова. Дикий питомец выбирает места в пределах follow.roamRadius от места, где появился. Питомец с владельцем выбирает места в пределах follow.roamRadius от владельца и не дальше 0.8 от follow.distance, чтобы следование не начиналось в момент прихода. Прогулка заканчивается в пределах 1.5 блока от её места, после walk_ticks или после stuck_ticks без движения. Над водой или у большого обрыва, где ничего не подходит, он пережидает отдых и ищет снова.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.15 | См. Скорости |
walk_ticks | 120 | Наибольшее число тиков одной прогулки |
stuck_ticks | 20 | Тики без движения, после которых прогулка прекращается |
rest_ticks | 80 | Тики отдыха питомца после прогулки |
rest_random_ticks | 120 | Добавляет случайные от 0 до этого значения минус 1 тиков отдыха |
idle_look
Время от времени питомец смотрит на ближайшего игрока в пределах range в течение look_ticks, затем отдыхает. Он занимает только взгляд, поэтому любое поведение, двигающее питомца, перехватывает управление, и он никогда не смотрит на игроков в творческом режиме или режиме наблюдателя. range, равный 0, отключает его. STATIONARY-тело никогда не поворачивает взгляд, поэтому его значения по умолчанию этот модуль не включают.
| Настройка | По умолчанию | Значение |
|---|---|---|
range | 8 | Блоки, в пределах которых он смотрит на игрока |
look_ticks | 40 | Наибольшее число тиков одного взгляда |
rest_ticks | 100 | Тики между взглядами |
rest_random_ticks | 100 | Добавляет случайные от 0 до этого значения минус 1 тиков между взглядами |
swim
Для плавающих видов. Питомец плывёт к месту в воде рядом со своим якорем, на глубине от min_depth до max_depth блоков под поверхностью, отдыхает и плывёт снова. Он выбирает места вокруг якоря так же, как wander, и только в воде. Плавающий питомец, оказавшийся на суше, ждёт там; питомец с владельцем возвращается в воду, когда владелец отходит, а телепортация для догона из follow_owner находит воду рядом с ним.
| Настройка | По умолчанию | Значение |
|---|---|---|
speed | 0.15 | См. Скорости |
min_depth / max_depth | 0.5 / 3 | Блоки под поверхностью, от 0 до 16 |
swim_ticks | 120 | Наибольшее число тиков одного заплыва |
stuck_ticks | 20 | Тики без движения, после которых заплыв прекращается |
rest_ticks | 40 | Тики отдыха питомца после заплыва |
rest_random_ticks | 60 | Добавляет случайные от 0 до этого значения минус 1 тиков отдыха |
campfire
Ночью устроившиеся питомцы дрейфуют к ближайшему горящему костру в пределах radius блоков и медленно кружат в его дыму. Питомец с владельцем берёт только костёр, достаточно близкий к владельцу, чтобы кружение вокруг него никогда не запускало следование. Раз в секунду питомец проверяет, что костёр всё ещё горит.
| Настройка | По умолчанию | Значение |
|---|---|---|
radius | 12 | Блоки, в пределах которых искать костёр, от 1 до 32 |
height | 2.5 | Блоки над костром, на которых кружит питомец |
ring | 0.8 | Радиус круга |
night_only | true | Только между сумерками и рассветом |
wild / pets | true / true | Собираются ли дикие питомцы и питомцы с владельцем |
blocks | [CAMPFIRE, SOUL_CAMPFIRE] | Костры, которые считаются. Работают только эти два |
soul_variants | [] | Модели вариантов, которых привлекают только костры душ. Все остальные варианты тогда берут только обычные костры. Пусто — любой вариант берёт любой из перечисленных костров |
search_seconds | 5 | Секунды между поисками костра. Не менее 1 |
speed | 0.06 | См. Скорости |
day_perch
Днём устроившийся питомец опускается на ближайшую листву под ним или на землю прямо под ним и отдыхает там, слабо покачиваясь. Он взлетает в сумерках, когда на него падает дождь и когда его владелец выходит из зоны следования. Питомец с владельцем берёт присаду только в пределах follow.distance от владельца. Если он не находит, на чём сесть, например над водой или у большого обрыва, он ищет снова через 5 секунд.
| Настройка | По умолчанию | Значение |
|---|---|---|
height | 0.3 | Блоки над листвой или землёй, на которых он отдыхает, от 0 до 8 |
search_radius | 2 | Блоки в сторону, в пределах которых искать листву, от 0 до 4 |
wild / pets | true / true | Присаживаются ли дикие питомцы и питомцы с владельцем |
speed | 0.06 | Скорость, пока до присады больше блока. См. Скорости |
settle_speed | 0.03 | Скорость на последнем блоке |
rain_bloom
Пока на питомца падает дождь, он набухает и чаще дрейфует вокруг своего якоря, выше и быстрее. Он сжимается обратно, когда дождь заканчивается или он находит укрытие. Дождь падает на питомца, когда в мире непогода, а питомец находится под открытым небом в биоме, достаточно тёплом и влажном для дождя. Набухание — это сенсор, который выполняется каждые 4 тика; дрейф — это поведение с приоритетом 19, поэтому в дождь оно занимает место drift.
| Настройка | По умолчанию | Значение |
|---|---|---|
scale_multiplier | 1.25 | Размер под дождём относительно обычного, от 0.1 до 16 |
scale_seconds | 3 | Секунды на набухание или сжатие |
drift_frequency | 2.5 | Во сколько раз короче его отдых между дрейфами, чем дают rest_ticks и rest_random_ticks, но не менее 10 тиков |
rise | 1 | На сколько блоков выше он дрейфует |
speed_multiplier | 1.4 | Во сколько раз быстрее он дрейфует |
speed | 0.06 | Скорость дрейфа без учёта speed_multiplier. См. Скорости |
drift_ticks | 120 | Наибольшее число тиков одного дрейфа |
stuck_ticks | 20 | Тики без движения, после которых дрейф прекращается |
rest_ticks / rest_random_ticks | 60 / 80 | Отдых, который сокращает drift_frequency |
night_glow
Кости отображения модели ночью подсвечиваются фиксированным уровнем света, каким бы ни был свет там, где находится питомец. Миры без солнца считаются ночью. Сенсор проверяет каждые 2 секунды. Только для игроков Java: игроки Bedrock видят модель при свете мира.
| Настройка | По умолчанию | Значение |
|---|---|---|
night_only | true | При false светится днём и ночью |
light | 15 | Уровень света, от 0 до 15 |
lantern_bone | lantern | Модель с костью с таким именем зацикливает animation, пока светится |
animation | glow | Анимация для кости-фонаря |
sting
Дикий питомец жалит игроков, которые касаются его модели, кроме игроков в творческом режиме или режиме наблюдателя. Питомец с владельцем жалит враждебных мобов, подошедших в пределы reach от хитбокса его модели, и никогда игрока. Взрослые проигрывают свою анимацию attack, когда жалят. Касания проверяются каждые 4 тика, а ближайшие мобы — каждые 10.
| Настройка | По умолчанию | Значение |
|---|---|---|
wild / pets | true / true | Жалят ли дикие питомцы игроков, а питомцы с владельцем — враждебных мобов |
effect | SLOWNESS | Эффект зелья по названию. NONE — без эффекта |
duration_ticks | 60 | Длительность эффекта в тиках, от 1 до 6000 |
amplifier | 0 | Уровень эффекта; 0 — уровень I |
damage | 0 | Урон за один укол в половинках сердца |
cooldown_seconds | 3 | Секунды до того, как этот питомец сможет ужалить ту же жертву снова |
reach | 0.5 | Блоки от хитбокса модели, на которых питомец с владельцем ещё жалит моба, от 0 до 4. Для укола дикого питомца игрок должен коснуться модели |
Название effect, которого не существует, один раз для каждого вида и названия пишет предупреждение, и укол не применяет никакого эффекта.
crop_drizzle
Пока питомец неподвижно парит над культурой, на неё падает лёгкий дождь, и каждые interval_seconds культура может вырасти на одну стадию. Культуры — это блоки из тега культур Minecraft, адский нарост и кусты сладких ягод. Питомец смотрит строго вниз, только сквозь воздух. Рост отправляется как BlockGrowEvent, поэтому плагины защиты и фермерские плагины могут его отклонить. Работает и для диких питомцев, и для питомцев с владельцем.
| Настройка | По умолчанию | Значение |
|---|---|---|
chance | 0.1 | Вероятность за интервал, что культура вырастет, от 0 до 1 |
interval_seconds | 5 | Секунды между попытками. Не менее 1; проверка идёт раз в секунду, поэтому дробное значение ждёт следующей целой секунды |
depth | 4 | Блоки под питомцем, в пределах которых искать культуру, от 1 до 8 |
owner_effect
Пока питомец с владельцем выведен и находится в пределах range блоков от своего владельца, у владельца есть эффект зелья, например ночное зрение или подводное дыхание. Эффект длится 15 секунд и обновляется каждую секунду, поэтому никогда не мерцает, а перестаёт действовать в течение 15 секунд после того, как питомец уходит домой или владелец покидает его радиус. Он показывает свою иконку, но без частиц. Если у владельца уже есть такой эффект, не слабее и длящийся не меньше, например от выпитого зелья, питомец его не трогает.
Он подходит для постоянных эффектов: ночное зрение, подводное дыхание, скорость, спешка, огнестойкость. Эффекты, зависящие от оставшегося времени, такие как регенерация, отравление и иссушение, ведут себя неправильно при обновлении каждую секунду.
| Настройка | По умолчанию | Значение |
|---|---|---|
effect | NIGHT_VISION | Эффект зелья по названию |
amplifier | 0 | Уровень эффекта; 0 — уровень I |
range | 16 | Блоки от питомца |
Старые разделы взаимодействия с миром
В файлах питомцев, написанных до модулей поведения, могут быть разделы campfire:, rainBloom:, glow:, sting:, dayPerch: или drizzle:. Теперь они ничего не делают, и каждый пишет предупреждение при загрузке файла:
firefly.pet.yml: the campfire section is ignored now that world interactions are behavior modules; list the campfire module under behaviors: instead (see plugins/FreeMinecraftModels/pet_behaviors/campfire.lua for its settings).
Простая строка glow: true получает то же предупреждение с формулировкой the glow setting. Если раздел был выключен (enabled: false или glow: задан чем-то, кроме true) либо файл уже перечисляет его модуль, предупреждение лишь просит его удалить.
Чтобы сохранить взаимодействие, перечислите его модуль и переименуйте его настройки:
| Старый раздел | Модуль | Переименованные настройки |
|---|---|---|
campfire | campfire | nightOnly в night_only, soulVariants в soul_variants, searchSeconds в search_seconds |
rainBloom | rain_bloom | scaleMultiplier в scale_multiplier, scaleSeconds в scale_seconds, driftFrequency в drift_frequency, speedMultiplier в speed_multiplier |
glow | night_glow | nightOnly в night_only, lanternBone в lantern_bone |
sting | sting | durationTicks в duration_ticks, cooldownSeconds в cooldown_seconds |
dayPerch | day_perch | searchRadius в search_radius |
drizzle | crop_drizzle | intervalSeconds в interval_seconds |
Остальные настройки сохраняют свои имена. Уберите enabled: отключить модуль можно, не указав его в списке. Файл без списка behaviors: выполняет только поведения по умолчанию для своего locomotion, поэтому перечислите и их. Для летающего вида, который сохранил свои костёр и свечение:
behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 12 }
- drift
- hover
- night_glow
migration: остаётся разделом файла питомца; см. Раздел migration.
Наклон и центрирование
Летающие и плавающие существа обычно выглядят лучше, когда наклоняются по ходу движения и поворачиваются вокруг собственной середины:
orientationзадаёт, как модель наклоняется в движении.UPRIGHT(по умолчанию) только смотрит туда, куда движется.TOP_FIRSTведёт верхней частью, как медуза: наклоняется в сторону движения, при движении по горизонтали ложится на бок, а при нырянии переворачивается вверх дном.FRONT_FIRSTподходит птицам и рыбам: меняет тангаж при подъёмах и пикированиях и кренится на поворотах. Любой стиль возвращается в вертикальное положение, когда питомец останавливается. См. Ориентация при движении.centerOnBodyрисует модель так, что середина её кубов совпадает с серединой её скрытого тела, вместо того чтобы ставить модель на ноги тела. Тогда модель движется, поворачивается и наклоняется вокруг тела, а её кликабельный бокс находится на том, что видят игроки. По умолчаниюtrueдля видовFLYINGиAQUATICиfalseдля остальных. См. Центрирование модели на теле.
Справочник файла вида
Поместите <species>.pet.yml куда угодно в plugins/FreeMinecraftModels/models/, обычно рядом с моделью, которую он использует. FreeMinecraftModels читает при запуске и при /fmm reload каждый файл, имя которого заканчивается на .pet.yml. Имя файла перед .pet.yml — это ID вида по умолчанию.
isEnabled: true
species: firefly
model: firefly
name: '&eFirefly'
body: ALLAY
scale: 1.0
health: 20
icon: GLOW_BERRIES
iconItemModel: ''
tamingFood:
- GLOW_BERRIES
breedingFood:
- GLOW_BERRIES
tameChance: 0.34
babyModel: ''
babyScale: 0.5
babyGrowthMinutes: 20
breedingCooldownMinutes: 5
loveSeconds: 30
variants:
- firefly
- firefly_blue:0.5
follow:
distance: 5
leashDistance: 12
teleportDistance: 24
roamRadius: 5
speed: 1.0
stay: true
float:
hoverHeight: 1.5
hoverVariance: 0.75
locomotion: FLYING
centerOnBody: true
orientation:
style: FRONT_FIRST
startSpeed: 0.6
fullSpeed: 4.0
maxTilt: 180
turnSpeed: 180
wildSpawn:
enabled: true
weight: 10
minGroup: 1
maxGroup: 3
placement: AIR
minLight: 0
maxLight: 15
cap: 4
worlds: []
environments:
- NORMAL
biomes:
- minecraft:plains
time: NIGHT
minY: -64
maxY: 320
behaviors:
- migrate
- stay
- follow_owner
- campfire: { radius: 12 }
- drift
- hover
- night_glow: { light: 15 }
migration:
scale: 2.0
Идентичность и внешний вид
| Ключ | По умолчанию | Значение |
|---|---|---|
isEnabled | true | false пропускает файл |
species | имя файла | ID вида в нижнем регистре. Его используют сохранённые питомцы игроков и /fmm petadmin, поэтому не меняйте его, когда у игроков уже есть питомцы. Если два файла определяют один и тот же ID, сохраняется первый по пути, а консоль предупреждает |
model | имя файла | Модель, которую носит питомец. Консоль предупреждает, если она не загружена, и питомец не может появиться |
name | имя файла | Имя, показываемое над питомцем и в сообщениях. Поддерживает цветовые коды & |
body | ALLAY | Тип ванильного моба, несущего модель. Препятствия при движении задевает именно его размер |
scale | 1 | Общий размер, не менее 0.0625 |
health | 20 | Максимальное здоровье тела, не менее 1 |
icon | GLOW_BERRIES | Предмет-иконка меню |
iconItemModel | пусто | Модель предмета (namespace:path) из ресурс-пака для иконки меню |
variants | [] | Варианты окраса: model, model:weight или карта с model, weight и behaviors (см. Поведения вариантов). Дикое появление выбирает один по весу, приручённый питомец сохраняет свой, а детёныш берёт вариант родителя. Пусто означает только model. Варианты должны иметь одни и те же кости и анимации |
Приручение и разведение
| Ключ | По умолчанию | Значение |
|---|---|---|
tamingFood | [] | Названия предметов, приручающих дикую взрослую особь |
breedingFood | [] | Названия предметов, переводящих взрослого питомца с владельцем в режим любви |
tameChance | 0.333 | Вероятность того, что одно кормление приручит |
babyModel | пусто | Модель, которую носит детёныш, размером babyScale. Пусто — модель варианта |
babyScale | 0.5 | Размер детёныша относительно scale |
babyGrowthMinutes | 20 | Минуты до того, как детёныш станет взрослым |
breedingCooldownMinutes | 5 | Минуты до повторного разведения родителей |
loveSeconds | 30 | Как долго накормленная взрослая особь ждёт партнёра |
Движение
Значения follow и float читаются поставляемыми модулями поведения, как указано.
| Ключ | По умолчанию | Значение |
|---|---|---|
follow.distance | 5 | follow_owner следует, как только владелец оказывается дальше этого значения. В его пределах питомец устроился и свободно блуждает |
follow.leashDistance | 12 | За этим пределом follow_owner торопится |
follow.teleportDistance | 24 | За этим пределом follow_owner телепортирует питомца к владельцу |
follow.roamRadius | 5 | Как далеко от якоря drift, rain_bloom, wander и swim уводят питомца |
follow.speed | 1 | Умножает скорость каждого поставляемого поведения, кроме migrate, не менее 0.05 |
follow.stay | true | Велит ли правый клик питомцу оставаться на месте |
float.hoverHeight | 1.5 | Блоки над землёй, которые держит летающий питомец |
float.hoverVariance | 0.75 | Насколько далеко он отклоняется от этой высоты |
locomotion | FLYING | Как движется тело: FLYING, GROUNDED, AQUATIC, AMPHIBIOUS или STATIONARY. Также задаёт поведения по умолчанию |
centerOnBody | true для FLYING и AQUATIC | См. Наклон и центрирование |
orientation.style | UPRIGHT | UPRIGHT, TOP_FIRST или FRONT_FIRST |
orientation.startSpeed | 0.6 | Блоки в секунду, ниже которых модель остаётся вертикальной |
orientation.fullSpeed | 4.0 | Блоки в секунду, при которых она полностью выравнивается по направлению движения |
orientation.maxTilt | 180 | Максимальный наклон в градусах. 180 позволяет модели с ведущей верхней частью переворачиваться вверх дном |
orientation.turnSpeed | 180 | Градусов в секунду, на которые может меняться наклон |
Дикое появление
Эти ключи действуют только в режиме CREATURES. Пустые списки разрешают всё.
| Ключ | По умолчанию | Значение |
|---|---|---|
wildSpawn.enabled | true | Живёт ли вид дикими |
wildSpawn.weight | 10 | Вес относительно других видов, которые могут появиться в том же месте. 0 — никогда не появляется. Файл со старым ключом chance (от 0 до 1) и без weight использует chance, умноженный на 10 |
wildSpawn.minGroup / maxGroup | 1 / minGroup | Размер группы |
wildSpawn.placement | из locomotion | GROUND, WATER, WATER_SURFACE или AIR. FLYING по умолчанию получает AIR, AQUATIC — WATER, остальные — GROUND. AIR требует твёрдого сухого верхнего блока, а WATER_SURFACE — водяного верхнего блока, в обоих случаях с двумя свободными блоками над ним |
wildSpawn.minLight / maxLight | 0 / 15 | Уровень света, который нужен месту |
wildSpawn.cap | 4 | Наибольшее число диких питомцев этого вида в пределах 8 чанков от игрока, для пополнения |
wildSpawn.worlds | [] | Названия миров |
wildSpawn.environments | [] | NORMAL, NETHER или THE_END |
wildSpawn.biomes | [] | Ключи биомов, например minecraft:plains |
wildSpawn.time | ANY | ANY, DAY или NIGHT, для пополнения |
wildSpawn.minY / maxY | -64 / 320 | Диапазон высот |
Поведения и миграция
| Ключ | По умолчанию | Значение |
|---|---|---|
behaviors | поведения по умолчанию для locomotion | Модули поведения, которые выполняет вид, с их настройками. См. Поведения |
migration | нет | Внешний вид вида в ночных миграциях. См. Раздел migration |
Старые разделы campfire, rainBloom, glow, sting, dayPerch и drizzle игнорируются с предупреждением. См. Старые разделы взаимодействия с миром.
Справочник pets.yml
plugins/FreeMinecraftModels/pets.yml создаётся при первом запуске. /fmm reload применяет изменения.
| Ключ | По умолчанию | Значение |
|---|---|---|
mode | COSMETIC | COSMETIC или CREATURES. См. Режимы питомцев |
maxEquippedPets | 0 | Сколько питомцев игрок может вывести одновременно. 0 означает без ограничения |
petsInvulnerableToPlayers | true | Игнорируют ли питомцы с владельцем урон от игроков, кроме своего владельца |
petsDiePermanently | false | Покидает ли погибший питомец коллекцию своего владельца |
wildGenerationChance | 0.01 | Вероятность, от 0 до 0.9, что новый чанк получит группу диких питомцев, бросок повторяется после каждой группы |
wildSpawnIntervalTicks | 400 | Тики между проходами пополнения |
wildSpawnChunkChance | 0.01 | Вероятность того, что проход пополнения попробует данный чанк рядом с игроком |
wildPetCapPerPlayer | 6 | Число диких питомцев всех видов в пределах 8 чанков от игрока, при котором пополнение прекращается |
migrations.enabled | true | Идут ли ночные миграции |
migrations.chancePerNight | 0.15 | Вероятность, от 0 до 1, что игрок получит стаю в данную ночь |
migrations.minFlockSize / maxFlockSize | 8 / 14 | Размер стаи |
migrations.altitude | 28 | Блоки над игроком или землёй, в зависимости от того, что выше |
migrations.speed | 0.15 | Блоки за тик (0.15 — это 3 блока в секунду) |
migrations.durationSeconds | 90 | Секунды от появления стаи до её удаления |
migrations.viewDistance | 160 | Блоки, с которых игроки видят стаю |
migrations.maxActiveFlocks | 3 | Наибольшее число стай в воздухе одновременно на всём сервере |
migrations.species | [] | ID видов, которые могут мигрировать. Пусто означает каждый вид, который может (см. Ночные миграции) |
Сообщения поддерживают цветовые коды &. $pet — это имя питомца, а $amount в maxEquippedMessage — лимит.
| Ключ | По умолчанию |
|---|---|
tamedMessage | &aYou tamed a $pet&a! It follows you now. &f/fmm pets &amanages your pets. |
tameFailedMessage | &7The $pet &7eats it, but is not tamed yet. |
stayMessage | &7Your $pet &7stays here. |
followMessage | &7Your $pet &7follows you again. |
menuTitle | &2Your pets |
noPetsMessage | &7You have no pets yet. Tame a wild creature by feeding it its favorite food. |
equippedMessage | &a$pet &ais with you. |
unequippedMessage | &7$pet &7went home. |
maxEquippedMessage | &cYou can only have $amount pets with you at once. |
breedingCooldownMessage | &7Your $pet &7is not ready to breed again yet. |
bornMessage | &aA $pet &awas born! |
Команды и права
| Команда | Право | По умолчанию | Назначение |
|---|---|---|---|
/fmm pets | freeminecraftmodels.pets | true | Открывает ваше меню питомцев |
/fmm petadmin mode [creatures|cosmetic] | freeminecraftmodels.pets.admin | op | Показывает режим питомцев или переключает его и сохраняет в pets.yml |
/fmm petadmin list | freeminecraftmodels.pets.admin | op | Выводит список загруженных видов с их файлом, моделью, телом, едой для приручения и едой для разведения |
/fmm petadmin spawn <species> | freeminecraftmodels.pets.admin | op | Спавнит дикого питомца над блоком, на который вы смотрите, на расстоянии до 12 блоков. Только в режиме CREATURES |
/fmm petadmin give <species> | freeminecraftmodels.pets.admin | op | Добавляет взрослую особь вида в вашу собственную коллекцию и выводит её, если у вас не достигнут maxEquippedPets |
/fmm petmigrate [species] | freeminecraftmodels.pets.admin | op | Немедленно отправляет над вами миграционную стаю. См. Ночные миграции |
Все три команды только для игроков. freeminecraftmodels.pets управляет доступом к меню питомцев, и по умолчанию это право есть у каждого игрока. freeminecraftmodels.pets.admin управляет доступом к /fmm petadmin и /fmm petmigrate, по умолчанию выдаётся операторам и входит в freeminecraftmodels.*. Приручение, разведение и команда питомцу оставаться на месте прав не требуют.
Устранение неполадок
Ищите в консоли pet behavior, pet_behaviors и .pet.yml, чтобы найти предупреждения о модулях поведения. Каждое называет файл питомца или файл модуля, который нужно исправить.
Консоль сообщает Pets are off.
Для версии сервера нет поддержки NMS во FreeMinecraftModels, либо сервер работает на версии ниже Minecraft 1.21.4.
Консоль сообщает Pet <species> (<file>) names model <model>, which is not loaded.
Ключ model называет ID модели, которая не загрузилась. Вариант, чья модель не загрузилась, ничего не записывает; питомцы этого варианта носят model вида. Проверьте имя файла модели, которое и есть её ID, и журнал перезагрузки для этой модели.
Консоль сообщает Could not spawn pet <species>: <cause>.
Питомец этого вида не смог появиться в мире по указанной причине, например из-за незагруженной модели, поведений, которые не смогли запуститься, или тела, которое не смогло появиться. Каждый вид и причина записываются один раз до следующей перезагрузки, как бы часто ни повторялась попытка появления.
Консоль сообщает the <section> section is ignored now that world interactions are behavior modules.
В файле питомца всё ещё есть старый раздел взаимодействия с миром или строка glow: true, которую предупреждение называет the glow setting. См. Старые разделы взаимодействия с миром.
Консоль сообщает there is no pet behavior <name> in pet_behaviors/.
Список behaviors называет модуль, у которого нет файла. Проверьте написание; предупреждение предлагает ближайшее имя, если оно есть. Существо загружается без этого модуля.
Консоль сообщает the pet behavior <name> failed to load.
В файле модуля есть ошибка. Более раннее предупреждение называет файл и, для ошибки Lua, строку. Исправьте её и выполните /fmm reload либо удалите повреждённый поставляемый модуль, чтобы FreeMinecraftModels записал его снова.
Консоль сообщает the pet behavior <module> has no setting <setting> или <module>.<setting> must be ....
Настройка в списке behaviors написана с ошибкой или имеет неверный тип. Предупреждение перечисляет настройки модуля или нужный тип, и значение по умолчанию остаётся. См. Значения настроек.
Консоль сообщает cannot run alongside the ones listed before it.
Два модуля в списке не могут работать вместе, обычно потому что оба объявляют одну и ту же память, поведение или сенсор, как скопированный модуль, указанный рядом с оригиналом. Выполняется первый в списке, а другой исключается. См. Модули поведения питомцев.
Дикие питомцы не появляются.
Убедитесь, что mode равен CREATURES и что /fmm petadmin list показывает вид. Затем проверьте wildSpawn: enabled, weight больше 0 и миры, окружения, биомы, свет и высоту, которые он разрешает. Чанки заселяются один раз, при генерации, поэтому исследованная область заполняется только через пополнение, которое по умолчанию медленное и останавливается на лимитах. /fmm petadmin spawn <species> размещает одного, чтобы проверить самого питомца.
Игроки не могут открыть /fmm pets.
Им нужно freeminecraftmodels.pets, которое по умолчанию есть у каждого игрока, если только плагин прав не отзовёт его. См. Команды и права.
Ни одна стая не пролетает по небу.
Стаи летают ночью в мирах типа Верхнего мира над игроками под открытым небом и только для видов FLYING с разделом migration:, чьи поведения запускают migrate. Вид, который не может мигрировать, при загрузке пишет has a migration section, but ... с исправлением. /fmm petmigrate <species> отправляет стаю немедленно.
Питомец ничего не делает или перестал что-то делать после обновления.
Проверьте его список behaviors: питомец выполняет только названные в нём модули, а список заменяет поведения по умолчанию. Файл, чьи взаимодействия с миром были разделами, не выполняет ни одно из них, пока не перечислит их модули.
Свечение питомца не видно игрокам Bedrock. Свечение подсвечивает только кости отображения Java.