Проблемы с аддон-транспортом в FiveM: причины и решения
Большинство поломок аддон-транспорта в FiveM сводится к имени, которое не совпадает между двумя файлами, к незагруженному meta-файлу или к слишком тяжёлой модели. Найдите симптом ниже: если транспорт не спавнится, смотрите манифест или vehicles.meta, если нет текстур, смотрите имя .ytd, а если он едет неправильно, смотрите handling.meta.
Быстрая таблица: симптом, причина и решение
| Симптом | Наиболее вероятная причина | Решение |
|---|---|---|
| Команда спавна сообщает, что модель не существует | Ресурс не запущен, vehicles.meta не загружен или modelName отличается от имени .yft | Не спавнится |
| Транспорт невидим или появляется с задержкой | Слишком тяжёлые модель или текстуры; нет _hi.yft | Невидимый транспорт |
| Белые, серые или отсутствующие текстуры | txdName отличается от имени .ytd или текстуры нет в словаре | Нет текстур |
| Транспорт проваливается сквозь землю | Модель экспортирована без коллизии | Проваливается сквозь карту |
| Едет как другая машина, или правки handling ничего не дают | handlingId не совпадает или имя использовано дважды | Неправильный handling |
| Нет деталей тюнинга или детали от другой машины | Дублирующийся ID кита в carcols.meta | Проблемы с тюнингом |
| Название показывается как NULL или как код | Нет текстовой метки для gameName | Неправильное название |
| Игрок сидит неправильно или не может сесть | Layout не подходит к костям модели | Сиденья и посадка |
Прежде всего посмотрите в консоль сервера при запуске ресурса и в клиентскую консоль (F8) при спавне транспорта. Обе называют файл, с которым у них проблема.
Почему мой аддон-транспорт не спавнится?
Если игра сообщает, что модель не существует, транспорт так и не был зарегистрирован. Проверьте по порядку:
- Ресурс запущен.
ensure mycarесть в server.cfg, и имя папки написано так же. Папка внутри папки-категории вроде[cars]допустима. - vehicles.meta указан и в
files, и вdata_file 'VEHICLE_METADATA_FILE', с правильным путём. См. справочник data_file. - Имена совпадают. Имя для спавна равно
modelName, а файл модели должен называтьсяstream/<modelName>.yft. - XML корректен. Один незакрытый тег делает весь файл нечитаемым. Откройте его в редакторе, который проверяет XML.
- Файлы извлечены. FiveM не загружает архивы
.rpf, положенные вstream, поэтому файлы.yftи.ytdнужно из них достать.
stream/mycar.yft <modelName>mycar</modelName>
stream/mycar.ytd <txdName>mycar</txdName>
handling.meta <handlingName> <handlingId>MYCAR</handlingId>
carvariations.meta <modelName> <modelName>mycar</modelName>
vehiclelayouts.meta <Name> <layout>LAYOUT_STANDARD</layout>
carcols.meta <kitName> carvariations.meta <kits><Item>
Если платный ресурс вообще не запускается, а в консоли написано "You lack the required entitlement", причина в ключе сервера, а не в транспорте: смотрите гайд как исправить ошибку entitlement.
Почему мой транспорт невидим или появляется медленно?
Если транспорт спавнится (в него можно сесть, камера следует за ним), но не отрисовывается, это почти всегда проблема стриминга.
- Слишком тяжёлые файлы. Поищите в консоли сервера "uses ... MiB of physical memory". FXServer сам сообщает, что такие файлы "lead to streaming issues (such as models not loading/rendering)". Уменьшите текстуры, как описано в гайде о файлах модели транспорта и предупреждении 16 MiB.
- Нет
_hi.yft. Когда первое значениеlodDistancesбольше нуля, игра запрашивает<modelName>_hi.yftдля транспорта рядом с камерой. Кладите в ресурс этот файл именно с таким именем. - Слишком много тяжёлого транспорта в одном месте. Память суммируется по уникальным моделям, поэтому на автосходке может сломаться то, что работает с одной машиной.
Почему нет текстур?
- Имя словаря.
txdNameв vehicles.meta должно быть равно имени файла.ytdбез расширения. - Текстуры нет в словаре. Откройте
.ytdи проверьте, что каждая текстура, которую используют материалы, лежит там под тем же именем. - Общие текстуры. Если модель полагается на текстуры из
vehshareили из общего словаря пака транспорта, этот словарь должен быть родителем словаря транспорта вtxdRelationships. - Ливреи. Им нужен
FLAG_HAS_LIVERYи текстуры, имена которых заканчиваются на_sign_1,_sign_2и так далее.
Почему транспорт проваливается сквозь карту?
Коллизия транспорта хранится внутри .yft. Модели, экспортированной без коллизии, не на что опереться, поэтому она проваливается сквозь дорогу или уходит в землю по крышу. Исправлять это нужно в модели: откройте её в инструменте, в котором она сделана, добавьте коллизию и экспортируйте заново. Никакой meta-файл этого не исправит.
Если тонут только колёса или кузов скребёт по земле, коллизия есть, а проблема в подвеске: смотрите fSuspensionRaise и пределы хода в разборе handling.meta.
Как добавить bounds в Blender, описано в гайде как настроить коллизию транспорта в Sollumz.
Почему handling неправильный?
- Имена не совпадают.
handlingIdв vehicles.meta должен быть равенhandlingNameв handling.meta. - Файл не загружен. Для handling.meta нужны
filesиdata_file 'HANDLING_FILE'. - Имя использовано дважды. Если два ресурса определяют один и тот же
handlingName, ваши правки могут попадать в ту запись, которую игра не использует. Давайте каждому транспорту уникальное имя. - Не тот блок sub-handling. Для
VEHICLE_TYPE_BIKEнуженCBikeHandlingData, для машиныCCarHandlingData. - Правки не применились. Перезапустите ресурс, переподключитесь и заспавните новый транспорт, прежде чем оценивать изменение.
Почему деталей тюнинга нет или они от другой машины?
ID китов в carcols.meta общие для всего транспорта на сервере. Когда у двух китов одинаковый id, игра переносит один из них на другой ID, и транспорт с этим китом может получить не те детали или остаться без них. Поменяйте id на номер, который не использует другой транспорт. ID сирен и света конфликтуют так же.
Также проверьте, что имя кита в списке kits файла carvariations.meta равно kitName в carcols.meta и что модель каждой детали, названной в ките, лежит в папке stream. Подробности в разборе carvariations и carcols.
Проверка конфликтов ID в carcols показывает каждый ID кита, который занят в нескольких carcols.meta на сервере.
Почему название транспорта показывается как NULL?
В gameName хранится ключ текстовой метки, а не само название. Добавьте метку в клиентском скрипте и уложите ключ максимум в 11 символов:
-- client script: readable name for <gameName>MYCAR</gameName>
AddTextEntry('MYCAR', 'My Car GT')Почему игрок сидит неправильно или не может сесть?
layout в vehicles.meta определяет сиденья и анимации посадки и рассчитывает на определённые кости в модели: кости сидений вроде seat_dside_f и кости дверей вроде door_dside_f. Выберите layout, сделанный для такого же вида транспорта (layout мотоцикла для мотоцикла, двухдверный layout для двухдверной машины), и проверьте, что в модели есть кости, которые называет layout. Как устроены layout, описано в разборе vehiclelayouts.meta.
Если ничего из этого не помогло, соберите ресурс с нуля по гайду о добавлении аддон-транспорта в FiveM и тестируйте после каждого файла.
Частые вопросы
- Почему моя машина в FiveM не спавнится?
- Ресурс не запущен, vehicles.meta отсутствует в files или data_file в fxmanifest.lua либо modelName не совпадает с именем файла .yft. Посмотрите в консоль сервера при запуске ресурса: она называет файл, на который жалуется.
- Почему моя аддон-машина невидима в FiveM?
- Обычно потому, что её файлы слишком тяжёлые для стриминга. Поищите в консоли сервера предупреждение "uses MiB of physical memory" и уменьшите размеры текстур. Вторая частая причина: отсутствует файл _hi.yft.
- Почему моя машина проваливается сквозь карту в FiveM?
- У модели .yft нет коллизии. Её нужно добавить в 3D-редакторе и экспортировать модель заново. Meta-файлы этого не исправят.
- Почему мои изменения в handling.meta не работают?
- Проверьте, что handlingId совпадает с handlingName, что файл загружен как HANDLING_FILE, что никакой другой ресурс не использует то же имя handling, и заспавните новый транспорт после перезапуска ресурса.
- Как исправить детали тюнинга, которые появляются не на той машине?
- Дайте каждому мод-киту в carcols.meta уникальное значение id. Причина в дублирующихся ID китов в разных ресурсах.
Источники
- FXServer source: asset size check (ResourceStreamComponent.cpp)
- FiveM docs: Resource manifest
- FiveM docs: Data files
Товары из гайда
Все гайды
- Как установить ресурс FiveM из Cfx.re Escrow (Granted Assets)
- Как добавить кастомный транспорт на сервер ESX, QBCore или QBox
- Что такое LOD у транспорта в FiveM?
- Как добавить аддон-транспорт на сервер FiveM
- Разбор vehicles.meta по полям
- Разбор handling.meta: поля, единицы и флаги
- Разбор carvariations.meta и carcols.meta
- Разбор vehiclelayouts.meta: сиденья, точки входа и анимации
- Справочник data_file в fxmanifest для транспорта
- Файлы модели транспорта (yft, _hi.yft, ytd) и предупреждение oversized assets
- Как исправить "You lack the required entitlement" на сервере FiveM
- Как конвертировать мод машины для одиночной GTA 5 в аддон FiveM
- Как ховерборд в FiveM работает без скрипта
- Как сделать транспорт для FiveM в Blender с Sollumz 2.9
- Как оптимизировать транспорт FiveM: полигоны, LOD и бюджет текстур
- Как настроить коллизию транспорта в Sollumz
- Покупка транспорта для FiveM: что проверить до оплаты
- Паки машин FiveM или отдельный транспорт
- Машины реальных брендов в FiveM: можно или нет?
- CodeWalker или Sollumz: какой инструмент нужен для транспорта FiveM?
