Как добавить дополнительных персонажей (addon peds) на FiveM: файлы stream, peds.meta, имя для спавна

Добавьте дополнительных персонажей на FiveM сервер: файлы stream (ydd, yft, ytd, ymt), peds.meta с PED_METADATA_FILE, спавнинг по имени модели и установка персонажа как модели игрока.

У вас есть пак персонажей с файлами такие как .ydd, .yft, .ytd и peds.meta, и вы хотите спавнить персонажа или играть за него. Это руководство показывает, где каждый файл находится, что нужно в манифесте, как спавнить персонажа и как установить его как модель игрока.

Что содержит пак персонажей

Персонаж состоит из нескольких файлов, которые имеют имя персонажа:

  • .yft: главная модель персонажа.
  • .ydd: одежда и части тела (голова, волосы, туловище, ноги). Часто помещается в подпапку с именем персонажа.
  • .ytd: текстуры.
  • .ymt: файл «ped variation», который сообщает игре, какие компоненты и текстуры имеет персонаж.
  • peds.meta: запись данных, которая определяет персонажа (имя, тип, анимации и так далее).

Файлы моделей находятся в stream. peds.meta находится рядом с манифестом и загружается как файл данных.

Структура папок

text
resources/[peds]/mycop/
  fxmanifest.lua
  peds.meta
  stream/
    mycop.yft
    mycop.ymt
    mycop.ytd
    mycop/
      head_000_r.ydd
      uppr_000_u.ydd
      lowr_000_u.ydd
      ...

Точные названия внутренних файлов зависят от пака. Не переименовывайте их: .ymt ссылается на них. Сохраняйте структуру, которую дал вам автор.

fxmanifest.lua

lua
fx_version 'cerulean'
game 'gta5'

files {
    'peds.meta',
}

data_file 'PED_METADATA_FILE' 'peds.meta'

Запись files делает файл доступным для игрового клиента, и data_file 'PED_METADATA_FILE' сообщает игре, что он содержит определения персонажей. Вам нужны оба. Для нескольких персонажей в одном ресурсе вы можете использовать один peds.meta с несколькими записями, или паттерн такой как '**/peds.meta' в обеих строках.

Имя персонажа находится в peds.meta:

xml
<CPedModelInfo__InitDataList>
  <InitDatas>
    <Item>
      <Name>mycop</Name>
      <PropsName>NULL</PropsName>
      ...
    </Item>
  </InitDatas>
</CPedModelInfo__InitDataList>

Здесь имя модели — mycop. Оно должно совпадать с именами файлов .yft, .ymt и .ytd.

Запустите и спавните его

cfg
ensure mycop

Чтобы спавнить персонажа в скрипте, сначала запросите модель:

lua
local model = joaat('mycop')

RequestModel(model)
while not HasModelLoaded(model) do
    Wait(0)
end

local ped = CreatePed(4, model, coords.x, coords.y, coords.z, heading, true, false)
SetModelAsNoLongerNeeded(model)

Если ваш сервер использует ox_lib, lib.requestModel(model) делает запрос и ожидание. Если имя модели не существует, HasModelLoaded никогда не становится true и цикл выше зависает, поэтому тайм-аут — это хорошая практика для имён, которые приходят из конфигурации.

Много меню администратора также могут спавнить персонажа по имени: введите mycop и он появится.

Установите персонажа как модель игрока

Чтобы играть как персонаж, измените модель игрока:

lua
local model = joaat('mycop')

RequestModel(model)
while not HasModelLoaded(model) do
    Wait(0)
end

SetPlayerModel(PlayerId(), model)
SetModelAsNoLongerNeeded(model)
SetPedDefaultComponentVariation(PlayerPedId())

Помните, что изменение модели игрока даёт вам нового персонажа. Оружие, здоровье и некоторое состояние сбрасываются, поэтому верните их после изменения, если ваш сервер их требует.

Меню внешнего вида ESX и QBCore

Скрипты внешнего вида и персонажей — главная проблема. Они применяют персонажа freemode (mp_m_freemode_01 или mp_f_freemode_01) при спавне, и ваша модель заменяется момент позже. Варианты:

  • Используйте опцию в скрипте внешнего вида. Многие скрипты внешнего вида имеют способ установить пользовательского персонажа или список допустимых персонажей. Проверьте конфигурацию скрипта.
  • Установите модель после загрузки внешнего вида. На ESX, ждите esx:playerLoaded и окончания скрипта внешнего вида. На QBCore, ждите QBCore:Client:OnPlayerLoaded. Затем вызовите SetPlayerModel.
  • Не сохраняйте дополнительного персонажа как внешний вид. Данные внешнего вида для персонажа freemode не подходят для другой модели, и сохранённый внешний вид неправильного типа может сделать загрузку персонажа неправильной. Сохраняйте выбор персонажа в отдельном поле или скрипте.

На QBox то же самое: скрипт внешнего вида решает, какую модель получит игрок, поэтому установите персонажа после него, или используйте его собственную опцию пользовательского персонажа, если она есть.

Распространённые проблемы

  • Персонаж невидимый или модель по умолчанию. peds.meta не загружен или имена различаются. Проверьте строку data_file и имя в <Name>.
  • Персонаж без лица или белые текстуры. Файлы .ytd или .ydd отсутствуют, в неправильной папке или переименованы. .ymt требует исходных имён.
  • Ресурс запускается, но персонаж не может быть спавнен. Опечатка в имени спавна. Оно должно совпадать с записью <Name> в peds.meta.
  • Игра падает или streaming предупреждает. Большие файлы и много персонажей используют память потока. См. oversized assets.
  • Ресурс не запускается. Путь в files не существует. См. не мог запустить ресурс.

Автомобили следуют той же идее файлов данных: см. как добавить дополнительные автомобили.

Контрольный список

Проблема Решение
Персонаж не может быть спавнен Используйте <Name> из peds.meta; ensure ресурс
Персонаж невидимый или по умолчанию Добавьте files и data_file 'PED_METADATA_FILE'; совпадите имена
Белые или отсутствующие текстуры Сохраняйте имена .ydd и .ytd как в паке
Модель сбрасывается после спавна Вызовите SetPlayerModel после окончания скрипта внешнего вида или персонажа
Оружие исчезло после изменения Верните его после SetPlayerModel
Ресурс не запустится Проверьте, что каждый путь в files существует

Короткие ответы

Какое имя использовать для спавна дополнительного персонажа?

Имя персонажа в peds.meta, которое также является имя его файлов .ydd, .yft, .ytd и .ymt. Если файлы называются mycop, используйте mycop с joaat('mycop').

Почему мой дополнительный персонаж показывается как персонаж по умолчанию или невидимый?

Обычно peds.meta не загружен, или имя в нём не совпадает с именами файлов. Проверьте строку data_file 'PED_METADATA_FILE' и что имена совпадают.

Могу ли я использовать дополнительного персонажа как мою собственную персону?

Да, с помощью SetPlayerModel, но скрипты ESX и QBCore для внешнего вида часто переполняют модель на freemode персонажа. Вам нужно установить это после их запуска, или использовать опцию в скрипте внешнего вида.

Скрипты без этой проблемы

Parrots as PetsЧетырнадцать птиц, которые сидят на плече, летают с вами и возвращаются по зову.Смотреть скрипт →Drug Dealer AppУличная торговля в виде приложения lb-phone: зоны, NPC-покупатели, уровни и вызовы полиции.Смотреть скрипт →Quest CreatorВизуальный редактор квестов и диалогов с NPC — узел за узлом прямо в игре.Смотреть скрипт →

Читайте также

FiveMStreamingРуководстваДобавьте пакеты одежды EUP и дополнений на FiveM: stream, meta, исправленияУстановите пакеты дополнительной одежды (стиль EUP) на FiveM: файлы stream, ymt и meta, addon и replace, версия игры, и почему одежда невидимая или заменяет другие предметы.1 октября 2026 г. · 4 мин чтенияЧитать →FiveMNUIРуководстваПользовательский экран загрузки для FiveM: loadscreen, fxmanifest и shutdownСоздайте пользовательский экран загрузки FiveM: fxmanifest loadscreen и файлы, loadscreen_manual_shutdown с ShutdownLoadingScreenNui, советы по размеру музыки и видео, только один loadscreen.1 октября 2026 г. · 3 мин чтенияЧитать →FiveMПотоковая передачаПроизводительностьПадение сквозь карту в FiveM: коллизии не загружаются, как исправитьИгроки падают сквозь карту при спавне или телепортации? Исправьте поздние коллизии: отсутствующие .ybn файлы, слишком много потоковой передачи, RequestCollisionAtCoord и HasCollisionLoadedAroundEntity.1 октября 2026 г. · 4 мин чтенияЧитать →