Руководство по fxmanifest.lua: Освойте манифест ресурса FiveM
Пишите чистый fxmanifest.lua каждый раз. Скрипты, UI-страницы, зависимости, общие файлы и все ключи, важные для современных ресурсов FiveM.
Agency Scripts
Основатель и ведущий разработчик Agency Scripts
Что такое fxmanifest.lua?
Каждый ресурс FiveM требует манифест-файл, который сообщает серверу, что содержит ресурс и как его загружать. fxmanifest.lua файл заменяет старый __resource.lua формат и предоставляет чистый, декларативный способ определения метаданных вашего ресурса. Этот файл указывает, какие скрипты запускаются на клиенте, какие на сервере, какие NUI-файлы включать, зависимости ресурса и дополнительную метаинформацию. Правильное оформление манифеста крайне важно, так как ошибки здесь могут помешать загрузке всего ресурса.
Обязательные поля
Каждый манифест должен начинаться с двух обязательных полей: fx_version и games. The fx_version устанавливает версию формата манифеста, с 'cerulean' будучи текущим стандартом, который поддерживает все современные функции. games поле определяет, какую игру поддерживает ресурс, обычно {'gta5'} для FiveM. Пропуск любого из этих полей приведет к полной ошибке загрузки ресурса, поэтому всегда включайте их как первые две строки вашего манифеста.
Объявления скриптов
Использовать client_scripts, server_scripts , и shared_scripts объявлять ваши Lua-файлы. Клиентские скрипты запускаются на клиенте игрока и отвечают за рендеринг, ввод и локальное взаимодействие с игрой. Серверные скрипты запускаются на сервере и отвечают за авторитетную логику, операции с базой данных и управление игроками. Общие скрипты запускаются с обеих сторон и полезны для конфигурационных файлов, утилит и общих констант. Вы можете использовать глобальные шаблоны, такие как 'client/*.lua' включать все файлы в директории, но явные списки файлов дают контроль над порядком загрузки.
Объявления NUI и файлов
Если ваш ресурс включает пользовательский интерфейс, объявите входной HTML-файл с помощью ui_page 'html/index.html'. Затем перечислите все веб-ресурсы, необходимые вашему UI, в files таблица, включая HTML, CSS, JavaScript, изображения и шрифты. Только файлы, перечисленные здесь, будут доступны браузеру NUI. Используйте глобальные шаблоны, такие как 'html/**/*' включать целые директории. Помните, что файлы NUI отправляются клиенту во время загрузки ресурса, поэтому оптимизируйте ваши веб-ресурсы для сокращения времени загрузки и использования трафика.
Зависимости и порядок загрузки
Объявляйте зависимости ресурсов с помощью dependencies поле для обеспечения запуска требуемых ресурсов до вашего. Общие зависимости включают ресурсы фреймворка, такие как qb-core или es_extended , ресурсы базы данных, такие как oxmysql и общие библиотеки. Если зависимость не запущена, ваш ресурс не загрузится и выведет предупреждение. Используйте provide указывать, что ваш ресурс служит заменой для другого, что полезно при создании мостов для фреймворков или альтернативных реализаций общих скриптов.
Расширенные функции манифеста
Манифест поддерживает несколько дополнительных директив для специализированных случаев. Используйте data_file загружать файлы данных GTA, такие как weapon metas, handling файлы или данные моделей транспортных средств. export и server_export поля объявляют функции, которые могут вызывать другие ресурсы. Добавляйте метаданные с помощью description, author , и version поля для документации. lua54 директива включает функции Lua 5.4 при установке в 'yes' , даёт доступ к целочисленному делению, побитовым операторам и другим улучшениям языка, которые могут упростить сложные скрипты.