Перейти к основному содержимому

FAQ по FreeMinecraftModels

Если вашего вопроса здесь нет, загляните в боковую панель: возможно, ему посвящена отдельная страница.

Начало работы

Как установить и использовать FreeMinecraftModels?​

Подробнее

Установка:

  1. Скачайте FreeMinecraftModels.jar и поместите в папку plugins.
  2. Перезапустите сервер для создания папок плагина.
  3. Выполните /fmm setup, чтобы открыть первичную настройку и управление контентом.
  4. Для официальных пакетов привяжите Nightbreak через /nightbreaklogin <token>.
  5. Используйте /fmm setup или /fmm downloadall для официального контента Nightbreak.
  6. Отдельные модели с расширением .bbmodel в нижнем регистре кладите непосредственно в ~/plugins/FreeMinecraftModels/imports/, затем выполняйте /fmm reload. Моделям с сопутствующими файлами нужна активная папка моделей или упакованный импорт; см. заметки по созданию моделей.
  7. Готовый ресурс-пак находится в ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip.

Раздача ресурс-пака:

  • Вариант A, рекомендуемый: установите Resource Pack Manager для автоматической раздачи.
  • Вариант B: настройте раздачу вручную через server.properties или хостинг.

Создание моделей:

  • /fmm spawn static <id>: временная декоративная модель.
  • /fmm spawn dynamic <id>: модель, привязанная к сущности.
  • /fmm spawn prop <id>: сохраняемая модель в мире.

Управление:

  • /fmm: меню предметов с рецептами; требуется freeminecraftmodels.menu.
  • /fmm setup: первичная настройка и управление контентом.
  • /fmm recommendedplugins: список подходящих дополнительных плагинов.
  • /fmm downloadall: скачивает последнее обновление плагина, затем доступный отсутствующий или устаревший контент. Jar вступает в силу после перезапуска или /fmm applypluginupdate.
  • /fmm downloadallcontent: скачивает доступный отсутствующий или устаревший контент без jar плагина.
  • /fmm updatecontent: обновляет устаревший официальный контент.
  • /fmm downloadpluginupdate: скачивает только последнее обновление jar плагина.
  • /fmm applypluginupdate: применяет скачанное обновление плагина без перезапуска сервера.
  • /fmm forcereinstallcontent <package|all>: повторно скачивает выбранный контент независимо от версии; для полностью отсутствующего пакета укажите его slug напрямую.
  • /fmm reload: перезагружает плагин и преобразует новые модели.
  • /fmm version: версия плагина.
  • /fmm stats: статистика количества сущностей.
  • /nightbreaklogin <token> / /nightbreaklogout: общие команды MagmaCore верхнего уровня для сохранения и удаления токена Nightbreak; требуется nightbreak.login.
  • /freeminecraftmodelschangelog [dismiss|disable]: непрочитанные заметки об обновлениях FMM в игре, только для администраторов; при входе также появляется кликабельное приглашение.

Возможности игроков:

  • /fmm disguise <modelID> [player]: маскирует себя или указанного игрока моделью.
  • /fmm undisguise [player]: снимает маскировку.
  • /fmm disguiselist: список замаскированных игроков.
  • /fmm itemify <model> <material>: создаёт предмет для размещения указанной модели.
  • /fmm craftify <modelID>: редактор рецептов крафта реквизита.
  • /fmm shop: необязательный магазин мебели через Vault, если включён в shop_config.yml.
  • /fmm mount <modelID>: создаёт ездовую лошадь с пользовательской моделью; экспериментальная функция.

Отладка:

  • /fmm hitbox visualize [duration]: показывает частицами хитбоксы ближайших моделей в течение заданного числа тиков (по умолчанию 100, неположительные значения дают 100, максимум 1200).
  • /fmm location: сообщает о провайдерах защиты и подземелий и проверяет их в текущей позиции.
  • /fmm debug bedrock [on|off]: задаёт состояние подробного журнала [FMM-BedrockDebug] или, если состояние не указано, сообщает текущее. Оно сохраняется после /fmm reload, при новом запуске сервера выключено.
  • /fmm debug props [on|off]: включает диагностику наложенных реквизитов при запуске, загрузке сущностей и проверках перед созданием либо сообщает её состояние. Состояние сохраняется после /fmm reload и сбрасывается при новом запуске сервера.
  • /fmm packetdebug [ticks]: измеряет пакетную нагрузку за указанное число тиков модельных часов (по умолчанию 1, диапазон 1–200, неверный ввод даёт 1). Показывает пакеты за тик, рассылку по зрителям, крупнейших получателей и типы пакетов.
  • /fmm filmic [on|off]: временно отправляет все загруженные модели каждому игроку, у которого загружен их чанк, для записей ReplayMod. Не рекомендуется вне записи. См. кинематографический режим.

Администрирование:

  • /fmm deleteall [radius]: удаляет все загруженные моделированные сущности и реквизиты без подтверждения; используйте осторожно. Необязательный радиус доступен только игроку и ограничивает расстояние в блоках.

Права:

  • freeminecraftmodels.*, по умолчанию OP: выдаёт freeminecraftmodels.admin, freeminecraftmodels.deleteall, freeminecraftmodels.disguise.self, freeminecraftmodels.disguise.others и freeminecraftmodels.bypassregionprotection. Также это буквальное право для /fmm reload, /fmm stats, /fmm spawn, /fmm itemify, /fmm craftify, /fmm mount, /fmm hitbox visualize, /fmm debug, /fmm packetdebug, /fmm filmic, /fmm location, /fmm setup, /fmm initialize, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate, /fmm applypluginupdate и /fmm forcereinstallcontent.
  • freeminecraftmodels.admin, по умолчанию OP: /fmm admin и /fmm giveitem.
  • freeminecraftmodels.disguise.self, по умолчанию OP: маскировка и снятие маскировки только с себя.
  • Для disguise и undisguise с указанным игроком нужны одновременно freeminecraftmodels.disguise.self и freeminecraftmodels.disguise.others. Для disguiselist достаточно .others.
  • freeminecraftmodels.deleteall, по умолчанию OP: /fmm deleteall, дочернее право wildcard.
  • freeminecraftmodels.bypassregionprotection, по умолчанию OP: обходит проверку региональной защиты FMM. Не отменяет всю обработку событий других плагинов или проверку свободного пространства.
  • freeminecraftmodels.menu, по умолчанию true: всем игрокам доступен браузер рецептов через /fmm.
  • freeminecraftmodels.shop, по умолчанию true: всем доступен /fmm shop, если магазин включён.
  • nightbreak.login, по умолчанию OP: регистрируется MagmaCore, а не plugin.yml; требуется для /nightbreaklogin и /nightbreaklogout.

Если не указано иное, команды по умолчанию доступны только OP. При необходимости выдайте права остальным игрокам.

Возможности и ограничения моделей

Какие ограничения действуют на размер и поворот моделей?​

Подробнее

Размер:

  • Проверяется по всем кубам каждой кости, а не по модели целиком.
  • Конвертер умножает координаты кубов на 0.4 и заново центрирует каждую кость. Порог предупреждения — 192 в этих масштабированных координатах; это не подтверждённый предел отображения в 192 пикселя модели или 12 блоков.
  • Предупреждение не отклоняет и не уменьшает кость. Если геометрия отображается неверно, уменьшите кубы, придвиньте их или разнесите по костям, затем проверьте результат на целевом клиенте.
  • Модель может охватывать несколько костей; отсутствие предупреждения не доказывает корректность геометрии готового ресурс-пака.

Поворот кубов:

  • Minecraft 1.21.6 и новее: конвертер принимает произвольный остаточный угол в пределах ±45° после выделения базового преобразования (0°, ±90°, ±180°, запечённого в геометрию). Задавайте углы в обычном диапазоне −180°…180° и проверяйте результат; успешное разложение не проверяет отображение.
  • Minecraft 1.21.4 / 1.21.5: остаток должен равняться −45°, −22.5°, 0°, 22.5° или 45°. Поэтому допустимы 0°, ±22.5°, ±45°, ±67.5°, ±90°, ±112.5°, ±135°, ±157.5°, ±180° — кратные 22.5°.
  • Во всех версиях поддерживается только одна ось поворота куба. Цикл идёт от Z к X и перезаписывает выбор, поэтому побеждает первая ненулевая ось в порядке X/Y/Z.
  • [22.5, 0, 45] сохраняет поворот X и теряет поворот Z.
  • Неразложимый угол записывается как Could not decompose rotation angle ... for model name <model> и применяется без преобразования, что обычно выглядит неверно.

Поворот костей: поддерживаются любые углы и несколько осей. Видимые кости добавляют работу отображения и отправки пакетов для каждого зрителя; структурные кости и кости метаданных отображаются не все.

По возможности сокращайте количество видимых костей и зрителей. Java отображает видимые кости пакетными сущностями; у Bedrock другое представление. Число костей не равно числу обычных сущностей Bukkit.

Какие анимации поддерживаются?​

Подробнее

FMM привязывает пять имён к автоматическим состояниям:

  • spawn: один раз при создании модели, затем переход в idle.
  • idle: повторяется, пока скорость базовой сущности по X или Z не станет ненулевой.
  • walk: повторяется при горизонтальном движении; возвращается в idle на земле при нулевой скорости X и Z.
  • attack: один раз, затем возврат в idle.
  • death: один раз при удалении через removeWithDeathAnimation().

Другие имена — пользовательские анимации. Они не запускаются сами, но доступны по имени через API и Lua.

Об анимации jump

В AnimationStateType есть JUMP, и состояние walk запрашивает его при отрыве сущности от земли. Однако состояние прыжка не зарегистрировано в менеджере анимаций, поэтому автоматический переход сейчас ничего не делает. Анимацию с именем jump можно явно вызвать как любую пользовательскую анимацию.

Как это работает:

  • Создавайте анимации в Blockbench с указанными именами в нижнем регистре для автоматической привязки.
  • При импорте плагин читает ключевые кадры из .bbmodel и запекает их в кадры для каждого тика.
  • Анимации состояний следуют состоянию сущности.
  • Используйте playAnimation(animationName, blend, loop) у ModeledEntity или Lua context.prop:play_animation(name, blend, loop) для программного запуска.

Маскировка игроков отличается: /fmm disguise выбирает пять имён в порядке приоритета attack, jump, sneak, walk, idle перед работой общего движка воспроизведения. sneak и jump автоматически запускаются у маскировки; обычные модели тоже могут явно воспроизводить их как пользовательские анимации. Однократные анимации приостанавливают любой новый выбор на 20 тиков. Без idle появляется предупреждение, а при отсутствии других действий модель может остаться на последнем кадре. См. маскировку игроков.

Режимы повтора, интерполяцию, время ключевых кадров и IK описывает страница анимаций. Особый случай: заклинатели обнаруживают ближайшие клыки заклинателя и автоматически запускают атаку.

Что такое виртуальные кости?​

Подробнее

Виртуальные кости имеют зарезервированные имена и добавляют модели функции.

Хитбокс:

  • Точное имя hitbox, без учёта регистра.
  • Создаёт зоны взаимодействия и коллизий. Куб задаёт ширину, глубину и высоту; X и Z могут различаться. Хитбокс замаскированного игрока не изменяется.
  • Требуется верхний уровень outliner; внутри другой группы кость считается обычной.
  • Должен содержать один куб. Лишние кубы вызывают has more than one value defining a hitbox! Only the first cube will be used; пустая группа — has a hitbox bone but no hitbox cube!, оставляя размеры нулевыми. Положение и поворот куба не смещают хитбокс.
  • Не анимируется, не отображается и не экспортируется в геометрию Bedrock.

Имя:

  • Префикс tag_, текст над моделью для обозначения сущности.
  • Необязательная авторская точка привязки. Без неё используется позиция над хитбоксом; см. почему модель без имени.
  • Кубы не нужны: это только позиция text display, обычно над головой.

Поворот головы: префикс h_, автоматически следует за направлением головы игрока или сущности.

Скрытые и структурные кости:

  • Префикс b_.
  • Скрываются Java-отрисовкой костей; экспортёр геометрии Bedrock не фильтрует b_.
  • Подходят для структуры, организации и метаданных, которые должны участвовать в иерархии скелета без видимой геометрии.

Точки посадки:

  • Префикс m_; каждая кость создаёт место под управлением MountPointManager.
  • Место следует за анимациями кости; несколько костей дают несколько мест.
  • Исключаются из геометрии Bedrock.
  • См. кости точек посадки.

Создайте кость с таким именем в Blockbench, и плагин применит соответствующую функцию.

Устранение неполадок

Вместо моделей видна только лошадиная броня.​

Подробнее

Это значит, что ожидаемый внешний вид не применён. Проверьте, создал ли FMM модель, включена ли она в текущий пак и скачал ли клиент этот пак с его принятием. Конфликт объединения — лишь одна из возможных причин.

Resource Pack Manager от MagmaGuy умеет автоматически объединять паки; он доступен на Spigot здесь.

RSPM может объединять, размещать и раздавать готовый пак. Следуйте руководству настройки, проверьте включённые источники и доступность адреса хостинга, затем переподключите клиент и убедитесь в отображении модели.

Почему модель не видна после добавления .bbmodel?​

Подробнее

1. Забыли перезагрузить. После размещения .bbmodel выполните /fmm reload и проверьте консоль. Отклонение кандидата при проверке сохраняет текущую среду выполнения, поэтому команда сама по себе не подтверждает применение нового контента.

2. Пак не применён. Игрокам нужен активный пак FMM. Проверьте ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip, используйте RSPM для автоматической раздачи или настройте её через server.properties и хостинг.

3. Неверная папка. Отдельные .bbmodel кладут непосредственно в ~/plugins/FreeMinecraftModels/imports/. Этот путь сохраняет исходник и может повторно преобразовать его при следующих перезагрузках; он не импортирует отдельные сопутствующие YAML и не обходит произвольные подпапки. Модели с дополнительными файлами могут находиться в models/ либо поступать через правильно упакованный импорт. Официальные пакеты устанавливайте через /fmm setup или /fmm downloadall.

4. Ошибки модели. Проверьте консоль при /fmm reload: неподдерживаемые повороты, чрезмерные размеры и проблемы текстур.

5. Объединение паков. Если пак есть, но виден базовый материал, проверьте созданное определение, пути текстур, результат объединения и версию пака у клиента. Установка RSPM сама по себе не доказывает, что объединение и доставка удались.

6. Коллизия ID. Ищите [FMM Models] Rejected normalized model ID collision: два или более файла получили одинаковый ID и различаются по содержимому, поэтому отклонены все. См. коллизии ID.

Почему модель отклонена из-за коллизии ID?​

Подробнее

FMM переводит имя файла в нижний регистр и заменяет символы вне a-z, 0-9, ., _, - подчёркиванием. Результат становится ID модели и именем файла ресурс-пака.

Все эти имена дают my_table:

My Table.bbmodel
my table.bbmodel
my_table.bbmodel
MY_TABLE.bbmodel

Перед преобразованием FMM проверяет дерево моделей на такие коллизии. Если все конфликтующие файлы побайтно идентичны, например одна и та же модель поставляется двумя пакетами контента, FMM загружает одну копию, а остальные пропускает без предупреждения. В противном случае отклоняются все конфликтующие файлы, а не только лишние, что исключает непредсказуемый результат «побеждает загруженный последним». Консоль выводит:

[FMM Models] Rejected normalized model ID collision '<id>'. These files normalize to the same ID: <paths>. Rename the files so every normalized model ID is unique; no colliding model was loaded.

Исправление: переименуйте файлы по указанным абсолютным путям, чтобы нормализованные ID различались, и выполните /fmm reload.

Профилактика: используйте уникальные имена в нижнем регистре с подчёркиваниями, например stone_table.bbmodel, во всём дереве моделей. Разные папки не делают повторяющиеся базовые имена уникальными; другое имя также может нормализоваться в тот же ID.

Отклонённые модели не создают ни Java-ресурсов, ни пакета пользовательских сущностей Bedrock.

Почему у модели нет имени?​

Текущей среде выполнения больше не нужна кость tag_ для показа имени. Если такие кости есть, используется первая по алфавиту; иначе — позиция над хитбоксом.

Проверьте, задаёт ли управляющий плагин непустое имя и не скрывает ли табличку. При неверном положении проверьте хитбокс или добавьте в Blockbench точку tag_name без кубов. Несколько костей не повторяют имя. См. создание табличек имён.

ViaVersion может мешать отображению ресурс-паков.​

Подробнее

Текущий FMM требует сервер Minecraft 1.21.4 или новее. Подключение новых клиентов через переводчик протокола не делает старый сервер поддерживаемой установкой FMM.

Сначала воспроизведите проблему клиентом той же поддерживаемой версии, что и сервер. Убедитесь, что скачан текущий пак и клиент отображает его формат моделей предметов. Затем сравните подключение с переводом протокола. Запишите версии сервера, клиента и плагина протокола, не приписывая каждый отсутствующий объект ViaVersion.

Почему модели вызывают лаги или проблемы производительности?​

Подробнее

Большое число видимых костей увеличивает работу преобразований, пакетов и отображения на клиенте. Число зрителей тоже важно.

Оптимизация:

  • Сокращайте количество костей и созданных моделей.
  • Используйте статические модели, если живая базовая сущность не нужна; они тоже могут анимироваться.
  • Не размещайте рядом множество моделей с большим числом костей.

Java использует пакетные сущности костей, исключая скрытые и служебные пути отображения. Bedrock может представлять модель целиком пользовательской сущностью. Модель с 50 костями не обязательно создаёт 50 обычных серверных сущностей или отправляет 50 видимых сущностей каждому клиенту.

Проектируйте модели с меньшим числом костей, проверяйте производительность при реалистичном количестве моделей и следите за TPS при их добавлении.

Измерение: /fmm packetdebug 20 в проблемном месте показывает пакеты и рассылку по зрителям за следующие 20 тиков модельных часов, включая крупнейших получателей и типы пакетов. Это данные для исследования трафика, а не профиль CPU или доказательство отображения пакетов клиентом.

Встроенные оптимизации: три параметра config.yml по умолчанию используют оптимизированное поведение. Другие значения предназначены для отладки, не для настройки производительности.

  • skipUnchangedBoneUpdates, по умолчанию true: пропускает неизменившиеся преобразования, если кость явно не отмечена изменённой, например для смены оттенка. Не устраняет всю обработку модели и весь трафик зрителей.
  • useDeltaMetadataPackets, по умолчанию true: потиковые метаданные несут только изменённое преобразование вместо повторной сериализации всего item display.
  • maxModelsForProximityOverride, по умолчанию 25: модели в пределах 10 блоков обычно показываются без проверки луча видимости, чтобы не появляться внезапно. Когда мир содержит такое число загруженных моделей, исключение отключается в этом мире, и отсечение по перекрытию работает даже вблизи. Полезно проверить в многоэтажных зонах NPC, где игроки получают модели других этажей.

См. конфигурацию.

Дополнительные возможности

Нужен ли Resource Pack Manager?​

Подробнее

RSPM необязателен, но настоятельно рекомендуется. Он автоматически объединяет паки плагинов, размещает их без внешнего хостинга и раздаёт при входе. Ручной работы меньше, но источники, доступность хостинга и принятие клиентами всё равно нужно проверять.

Без RSPM придётся объединять пак FMM с остальными, размещать результат по доступному URL скачивания и настраивать server.properties либо другой отправитель на передачу URL игрокам. Сам server.properties не размещает файлы. После добавления моделей пак тоже нужно обновлять.

RSPM даёт общий процесс объединения, размещения и отправки паков. При пропавших моделях проверяйте его результат и настоящий клиент.

Скачать RSPM: https://www.spigotmc.org/resources/resource-pack-manager.118574/

Его разработал MagmaGuy, автор FreeMinecraftModels.

Можно ли использовать FMM в своём плагине?​

Подробнее

Да, через API для разработчиков.

Maven/Gradle: репозиторий https://repo.magmaguy.com/releases.

  • GroupId: com.magmaguy
  • ArtifactId: FreeMinecraftModels
  • Scope: provided; FMM должен быть установлен на сервере отдельно, без включения через shade.

Основные классы: ModeledEntity (базовый), StaticEntity, DynamicEntity, PropEntity.

StaticEntity staticEntity = StaticEntity.create(id, location);
if (staticEntity == null) {
Bukkit.getLogger().warning("Failed to create model");
return;
}
staticEntity.setRightClickCallback(...);
staticEntity.remove();

Не включайте FMM внутрь своего плагина: нужна отдельная установка. Подробности в официальном README.

Как замаскировать игрока пользовательской моделью?​

Подробнее

/fmm disguise заменяет внешний вид игрока пользовательской моделью.

/fmm disguise <modelID> [player]
/fmm undisguise [player]
/fmm disguiselist

Игрок скрывается от остальных, модель накладывается на его позицию и следует за движением. Подходит для ролевых серверов и мероприятий.

/fmm disguise dragon              # Disguise yourself
/fmm disguise dragon Steve # Disguise another player
/fmm undisguise Steve # Undisguise Steve
/fmm disguiselist # List everyone currently disguised

Требования:

  • Для себя: freeminecraftmodels.disguise.self, по умолчанию OP.
  • Для disguise и undisguise с указанным игроком нужны freeminecraftmodels.disguise.self и freeminecraftmodels.disguise.others; для disguiselist достаточно .others.
  • Консоль должна указать имя игрока.
  • modelID должен точно совпадать с загруженной моделью.
  • Другие плагины могут использовать публичный DisguiseAPI.

Поведение: хитбокс игрока не меняется, остальные видят модель вместо скина, повторная маскировка заменяет прежнюю. После соответствующих изменений эффектов FMM восстанавливает невидимость только тогда, когда именно эта маскировка изначально добавила эффект. Ранее существовавший эффект не восстанавливается. См. маскировку игроков.

Как создать предметы для размещения моделей?​

Подробнее

/fmm itemify создаёт специальные предметы для установки моделей в мире.

/fmm itemify <model> <material>
  • model: допустимый ID из папки моделей.
  • material: материал Minecraft, например STICK, PAPER, DIAMOND.
/fmm itemify lamp_post STICK

Предмет получает оформленное золотым имя, например «✦ Wolf ✦», и описание. Он добавляется прямо в инвентарь; оставьте место, поскольку избыток не выбрасывается. Правый клик из основной руки размещает реквизит с проверками FMM. Вне творческого режима предмет расходуется после успешного создания.

Подходит для украшения построек, мебельных «яиц спавна», раздачи предметов размещения с сохранением настроенных проверок защиты и наборов для творческого строительства.

Нужны freeminecraftmodels.* и игрок в игре; консоль не подходит.

Как отлаживать хитбоксы моделей?​

Подробнее

Команда показывает хитбоксы частицами:

/fmm hitbox visualize [duration]

duration необязателен, по умолчанию 100 тиков. Неположительные значения дают 100 тиков, максимум 1200; 20 тиков равны секунде.

/fmm hitbox visualize 100      # Show for 5 seconds
/fmm hitbox visualize 200 # Show for 10 seconds

Ищет модели в пределах 10 блоков и отображает границы ориентированных боксов OBB, чтобы сравнить модель с коллизией, проверить размер и поворот.

Проверка снарядов использует отрезок между отслеживаемыми позициями для обнаружения пересечения тонких OBB. Если предыдущей позиции нет, проверяется перекрытие. Ближайшие попадания обрабатываются первыми. Обычный снаряд может поразить одну моделированную цель, стрела с Пронзанием — pierce level + 1 различных целей. Отмена попадания предотвращает callback или стандартный урон, но всё равно расходует лимит целей. См. API снарядов.

Используйте для сравнения хитбоксов с моделью, отладки взаимодействий, поворотов и кликов. Требуется freeminecraftmodels.*. Хитбоксы FMM вращаются вместе с моделью, в отличие от обычных AABB Minecraft.

Можно ли создавать ездовые пользовательские модели?​

Подробнее

Да, через экспериментальную команду /fmm mount:

/fmm mount <modelID>

Создаёт лошадь в вашей позиции, маскирует моделью, приручает и надевает седло. Через тик пытается посадить вас: без точек посадки прямо на лошадь, при наличии точки — через маркерную стойку для брони.

/fmm mount dragon

Требуются freeminecraftmodels.* и допустимый ID модели.

Функция экспериментальная. Используется взрослая приручённая лошадь с базовой скоростью 0.3 и базовой силой прыжка 0.7; её хитбокс не меняется. Лучше подходят модели для верховой езды: ролевые маунты, транспорт VIP или ездовые существа приключенческих карт.

Что такое кости точек посадки?​

Подробнее

Они задают места на модели. В Blockbench используйте регистрозависимый префикс m_, например m_seat или m_back; каждая кость создаёт место для игрока.

  • Позиция следует за костью, включая анимации.
  • Несколько костей дают несколько мест.
  • Менеджер принимает игроков через API или Lua и выбирает первое свободное место. Места используют временные Interaction-сущности нулевого размера и обновляются, пока заняты.

Проверка: создайте или разместите реквизит и нажмите правой кнопкой, либо вызовите Lua context.prop:mount(player). /fmm mount <modelID> создаёт экспериментального маунта на основе лошади и использует другой путь посадки.

Подходит для многоместного транспорта, существ с заданными местами и питомцев на плече.

Пользовательские предметы

Что такое пользовательские предметы?​

Это предметы для удержания в руке, определённые полем material: в YAML рядом с моделью. Их идентификатор — fmm_item_id; предметы размещения из /fmm itemify используют model_id.

Создайте модель и одноимённый YAML, задайте material, при необходимости — name, lore и enchantments с пространством имён:

isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
enchantments:
- "minecraft:fire_aspect,2"

Используйте /fmm giveitem <id> или /fmm admin с freeminecraftmodels.admin.

Выполняют ли пользовательские предметы Lua-скрипты?​

Нет. Прежняя среда экипированных предметов и её 22 хука выведены из эксплуатации. Определение с непустым scripts: пропускается, как и старое зачарование без пространства имён вроде FIRE_ASPECT,2. Файл не преобразуется и не переписывается. Lua-скрипты реквизита не изменились.

Для эффектов используйте зачарования провайдеров, для жезлов и посохов — определения магического оружия.

Меню

Какие меню предоставляет FMM?​

Подробнее

Помимо отдельных меню настройки, редактора рецептов и необязательного магазина, есть два браузера контента.

Меню игрока /fmm:

  • freeminecraftmodels.menu, по умолчанию true, доступно всем.
  • Только записи с успешно зарегистрированными рецептами; registerCraftingRecipes: false убирает их из браузера.
  • Клик открывает подробности с сеткой крафта 3×3.
  • Показывает рецепты бумажных предметов размещения реквизита, отдельно от авторских предметов для удержания.

Меню администратора /fmm admin:

  • freeminecraftmodels.admin, по умолчанию OP.
  • Включённые пакеты с загруженным контентом, неупакованные папки, корневые модели и успешно зарегистрированные пользовательские предметы.
  • Пакеты и папки открывают списки, отдельные записи выдают предметы. Включение и скачивание пакетов — через /fmm setup.

Модели отображения

Что такое модели отображения?​

Подробнее

Они заменяют стандартный вид материала трёхмерной моделью в руке и инвентаре.

  1. В Blockbench выберите File > Export > Java Block/Item для экспорта .json.
  2. Положите его рядом с .bbmodel под тем же базовым именем, например magic_sword.json и magic_sword.bbmodel.
  3. Выполните /fmm reload.

Поведение:

  • Зарегистрированная модель может заменить внешний вид после принятия клиентом готового пака.
  • Ссылки текстур без пространства имён используют соответствующий числовой ключ. Если его нет, выбирается доступная извлечённая текстура, не обязательно с индексом ноль. Ссылки с пространством имён сохраняются.
  • Без .json остаётся обычный вид материала.
  • Текущий плагин требует Minecraft 1.21.4 или новее. Старые ветки отображения не означают поддержку старых серверов.

Нужны сервер 1.21.4 или новее и корректный экспорт Blockbench «Java Block/Item» (.json) рядом с моделью; повреждённый JSON не регистрируется. Группам состояний луков и арбалетов нужны все соответствующие модели состояний и JSON отображения.