Добавьте автомобили на FiveM дилерский центр (таблица ESX vehicles, QBCore, QBox)

Как добавить автомобиль на дилерский центр: таблицы ESX vehicles и vehicle_categories, записи QBCore и QBox shared vehicles.lua, и почему автомобиль показывается без цены.

Типичные симптомы:

text
The addon car works with /car, but the dealership does not sell it. Or it shows with no name, no price, or in the wrong category.

Дилерский центр продаёт, что указано в его данных, а не то, что существует в игре. Добавление автомобиля требует двух шагов: модель должна быть потоком передана в игру, затем она должна быть указана в данных, которые использует ваш фреймворк. Эта статья охватывает второй шаг для ESX, QBCore и QBox.

Шаг первый: модель должна быть потоком

Если модель не загружена, дилерский центр не может её показать, и покупка не спавнит ничего. Сначала добавьте автомобиль как ресурс и проверьте, работает ли он в игре:

text
/car mycar

Используйте имя спавна, которое приходит из vehicles.meta автомобиля. Если /car не работает, исправьте это перед тем как трогать магазин, см. добавление дополнительных автомобилей.

ESX: таблица vehicles

Дилерский центр ESX читает две SQL таблицы. vehicle_categories содержит категории, показанные в меню магазина, и vehicles содержит автомобили.

sql
DESCRIBE vehicle_categories;
DESCRIBE vehicles;

В стандартной базе данных ESX Legacy они выглядят так:

Таблица Столбцы
vehicle_categories name, label
vehicles name, model, price, category

Добавьте категорию, если вам нужна новая:

sql
INSERT INTO vehicle_categories (name, label) VALUES ('mycars', 'My cars');

Затем добавьте автомобиль:

sql
INSERT INTO vehicles (name, model, price, category)
VALUES ('My Car', 'mycar', 85000, 'mycars');
  • name — это ярлык, показанный в магазине.
  • model — это имя спавна, как в /car. Нижний регистр, ровный.
  • price — целое число.
  • category должен совпадать с name строки в vehicle_categories, иначе автомобиль не появится ни в какой категории.

Перезагрузите ресурс дилерского центра или весь магазин, чтобы он ещё раз прочитал таблицу. Ваш список столбцов может отличаться, если вы используете пользовательский магазин автомобилей, поэтому доверяйте DESCRIBE больше, чем этой таблице.

Совет: чтобы увидеть, как выглядит рабочий автомобиль, скопируйте значения строки, которая уже находится в магазине, с помощью SELECT * FROM vehicles LIMIT 5; и отредактируйте их.

QBCore: shared/vehicles.lua

QBCore хранит свой список транспортных средств в файле Lua, qb-core/shared/vehicles.lua. Каждая запись — это автомобиль:

lua
['mycar'] = {
    model = 'mycar',
    name = 'My Car',
    brand = 'Mic',
    price = 85000,
    category = 'sports',
    categoryLabel = 'Sports',
    hash = `mycar`,
    shop = 'pdm',
},

Поля:

  • model: имя спавна, то же, что и ключ таблицы.
  • name и brand: что показывает магазин.
  • price: цена продажи.
  • category и categoryLabel: группа в меню.
  • hash: хеш модели. Форма с backtick вычисляет её для вас.
  • shop: id дилерского центра, который её продаёт, например значение по умолчанию. Имя магазина, которое не существует, означает, что никакой магазин не продаёт автомобиль.

Точный макет зависит от версии qb-core. Некоторые версии используют таблицу, ключ которой — модель, другие используют простой список. Откройте свой собственный файл и скопируйте соседнюю запись, затем измените значения, чтобы структура всегда совпадала.

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

QBox: qbx_core shared vehicles

QBox держит транспортные средства в собственном ядре, qbx_core/shared/vehicles.lua. Идея та же, что и на QBCore: запись с моделью, имя, бренд, цена, категория и магазин. QBox изменяет макет своих данных между выпусками, поэтому откройте файл и скопируйте запись, которая уже работает на вашей версии, затем отредактируйте её.

Перезагрузите qbx_core и ваш дилерский центр. Не запускайте отдельную папку qb-core рядом с ней, см. преобразование QBCore скриптов в QBox.

Скрипты дилерского центра с их собственной конфигурацией

Не каждый дилерский центр использует список фреймворка. Некоторые читают свой собственный файл конфигурации или таблицу базы данных, и таблица vehicles или общий файл игнорируется. Сначала проверьте конфигурацию скрипта на список транспортных средств. Если у него есть один, добавьте автомобиль там тоже.

Проблемы с именем, ценой и категорией

Автомобиль не показывает имя. Поле name пусто, или дилерский центр использует имя отображения игры. Имя отображения в игре приходит из AddTextEntry с gameName модели в vehicles.meta. Без этого магазин может показать NULL или модель. Установите ярлык в ваших данных.

Автомобиль, который стоит 0 или бесплатный. Цена отсутствует или не является числом. Удалите кавычки вокруг неё.

Категория не показывается. На ESX значение category не имеет строки в vehicle_categories. На QBCore ярлык категории отсутствует, или магазин фильтрует по категории, которую он не знает.

Неправильное имя спавна. Mycar и mycar — это не то же самое в поиске данных. Используйте имя ровно так, как оно определено, в нижнем регистре.

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

Обработка и производительность дополнительных автомобилей

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

Добавьте много автомобилей сразу

Для пака автомобилей цикл в SQL экономит время на ESX. Напишите строки в одном утверждении:

sql
INSERT INTO vehicles (name, model, price, category) VALUES
('Car A', 'cara', 60000, 'mycars'),
('Car B', 'carb', 75000, 'mycars'),
('Car C', 'carc', 90000, 'mycars');

На QBCore и QBox вставьте записи одну за другой в файл Lua, с запятой после каждой.

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

Проблема Решение
Автомобиль работает с /car, но не продаётся Добавьте его в таблицу vehicles, или shared/vehicles.lua
Автомобиль отсутствует в категории на ESX category должна совпадать с name в vehicle_categories
Имя или цена не показывается Заполните name и price, с ценой как числом
Никто не продаёт автомобиль на QBCore или QBox Проверьте, что значение shop совпадает с дилерским центром
Покупка не спавнит ничего Модель не потоком передана: сначала исправьте дополнительный автомобиль
Отредактированные данные не имеют никакого эффекта Перезагрузите ресурс данных и дилерский центр
Ошибки файла Lua после редактирования Проверьте запятые и скобки вокруг вашей новой записи

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

Почему мой дополнительный автомобиль не на дилерском центре?

Магазин только выводит, что находится в его данных: таблица vehicles на ESX, или shared/vehicles.lua на QBCore и QBox. Добавление автомобиля в поток сервера — это отдельный шаг, и оба нужны.

Какое имя модели я ввожу в таблицу?

Имя спавна транспортного средства, то, которое используется в /car, которое определено в vehicles.meta транспортного средства. Оно должно совпадать ровно, в нижнем регистре.

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

Перезагрузите ресурс, который содержит данные, и скрипт дилерского центра. На ESX магазин обычно читает таблицу при запуске, поэтому перезагрузки этого достаточно.

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

Advanced BoostingУгон машин на заказ через планшет: контракты от класса D до S+, команды и живая очередь.Смотреть скрипт →Chameleon Paints82 краски-хамелеона с переливом цвета в одном меню — наносятся в один клик.Смотреть скрипт →Shop CreatorМагазин меньше чем за минуту — владельцы, сотрудники, сейфы и ограбления в комплекте.Смотреть скрипт →

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

FiveMESXQBCoreГараж FiveM: owned_vehicles и player_vehicles, отсутствующие машины исправленыМашины отсутствуют в гараже? Как работают таблицы ESX owned_vehicles и QBCore player_vehicles, сохраненные и столбцы состояния, и SQL для исправления машин, застрявших снаружи.1 октября 2026 г. · 4 мин чтенияЧитать →FiveMESXQBCoreКлючи автомобиля FiveM: не можешь водить свой автомобиль или заблокировать его? Исправь этоКак работают системы ключей автомобилей в FiveM: списки номерных знаков, выдача ключей после спауна или покупки, блокировка с помощью SetVehicleDoorsLocked и почему вы теряете доступ к своему автомобилю.1 октября 2026 г. · 4 мин чтенияЧитать →FiveMox_libESXПолучайте и устанавливайте свойства транспортного средства в FiveM: lib, ESX и QBCoreСохраняйте и восстанавливайте моды транспортного средства, цвета и дополнения в FiveM: lib.getVehicleProperties, ESX.Game.GetVehicleProperties, QBCore.Functions.GetVehicleProperties, SetVehicleModKit и база данных.1 октября 2026 г. · 3 мин чтенияЧитать →