Документация / Ресурсы и режимы

Установка ресурсов

Структура ресурса, fxmanifest.lua, зависимости, ensure и проверочный Lua-ресурс.

Устройство ресурса

Ресурс — отдельный каталог с манифестом и скриптами, моделями либо интерфейсом. В комплекте уже есть базовые ресурсы; сторонние режимы устанавливаются отдельно. Каталог в квадратных скобках, например [local], группирует ресурсы и сам ресурсом не является.

game/
  server.cfg
  resources/
    [local]/
      owner-check/
        fxmanifest.lua
        server.lua

Не оставляйте дополнительную вложенность owner-check/owner-check/fxmanifest.lua, часто возникающую после распаковки ZIP. В ensure используется имя папки с манифестом, а не имя архива или группы.

Перед установкой

Проверьте источник, лицензию, версию, зависимости, поддерживаемый framework, SQL-миграции и необходимость внешних сервисов. Сохраните исходный архив и контрольную сумму. Сделайте резервную копию конфигов и БД, если ресурс меняет данные. Первую установку выполняйте в отдельной тестовой копии, с отдельными портами и БД.

Открытый Lua-код тоже может выполнять опасные действия с правами процесса сервера. Проверьте установочные скрипты, HTTP-запросы, команды ОС, динамическую загрузку кода и файлы конфигурации. Не выдавайте неизвестному ресурсу широкие ACE-права только ради исчезновения ошибки.

Минимальный проверочный ресурс

Создайте указанные выше файлы. Содержимое fxmanifest.lua:

fx_version 'cerulean'
game 'gta5'

author 'Server owner'
description 'Local startup verification'
version '1.0.0'

server_script 'server.lua'

Содержимое server.lua:

AddEventHandler('onResourceStart', function(resourceName)
    if resourceName ~= GetCurrentResourceName() then return end
    print('[owner-check] resource started')
end)

Это серверный ресурс: он выводит одну строку, не открывает сетевые события и не меняет данные игроков. Формат манифеста описан в официальном справочнике CitizenFX. Наличие директивы в современном справочнике не гарантирует её поддержку историческим движком OpenM; проверяйте используемую возможность на вашей сборке.

Подключение к конфигурации

Добавьте в свой custom.cfg или основной конфиг после необходимых зависимостей:

ensure owner-check

Если каталог добавлен в работающий сервер, в Live Console txAdmin сначала выполните refresh, затем ensure owner-check. refresh обновляет список ресурсов и не заменяет запуск. ensure запускает остановленный ресурс, а уже запущенный может перезапустить; не применяйте команду ко всему режиму без окна обслуживания.

Проверьте строку [owner-check] resource started и отсутствие ошибок манифеста. После полного перезапуска сервера строка должна появиться снова: это проверяет постоянную настройку, а не только ручной запуск.

Зависимости и порядок

Сначала запускают библиотеку или коннектор, затем ядро режима, затем зависящие ресурсы. Используйте явные ensure для критичных компонентов; не полагайтесь на порядок имён внутри большой группы. Если поставщик указывает dependency в манифесте, это не отменяет установки нужной версии зависимости и её настройки.

Для NUI убедитесь, что HTML, JS, CSS и изображения перечислены в files, а ui_page указывает существующий файл. Для Lua укажите корректную сторону выполнения: client_script, server_script или shared_script. Секреты не должны находиться в общих или клиентских скриптах: эти файлы получают игроки.

Обновление и удаление

Остановите ресурс или весь режим согласно инструкции поставщика. Заменяйте каталог целиком в подготовленной копии, сохраняя отдельный пользовательский конфиг; наложение архива может оставить устаревшие скрипты. Применяйте SQL-миграции только после резервной копии и проверки версии. Перезапустите зависимости в предусмотренном порядке и протестируйте действия игрока.

Для удаления сначала уберите ensure и зависимости от ресурса, затем остановите сервер и перенесите каталог в резервное место вне resources. Не удаляйте таблицы автоматически: их могут использовать другие компоненты. Откат бинарных/скриптовых файлов без отката несовместимой схемы БД может не восстановить работу.

Границы совместимости

Ресурсы с обязательными Cfx.re-сервисами, escrow, закрытыми модулями, новыми natives или неподдерживаемой версией движка требуют отдельной проверки. Сохранённые имена CitizenFX/FiveM API обеспечивают часть совместимости, но не обещают работу любого современного ресурса. Ошибки экспорта, native и БД диагностируйте раздельно.

Введите название, параметр или текст ошибки.

Esc — закрыть · Tab — выбрать результат