fxmanifest.lua 指南:掌握 FiveM 资源清单
每次编写干净的 fxmanifest.lua。脚本、UI 页面、依赖项、共享文件及所有现代 FiveM 资源关键项。
Agency Scripts
Agency Scripts 创始人兼首席开发者
什么是 fxmanifest.lua?
每个FiveM资源都需要一个清单文件,告诉服务器资源包含什么以及如何加载。 fxmanifest.lua 文件替代了旧的 __resource.lua 格式并提供一种干净、声明式的方式来定义您的资源元数据。此文件指定哪些脚本在客户端运行,哪些在服务器运行,包含哪些NUI文件,资源依赖关系及其他元数据。正确配置manifest至关重要,因为此处的错误可能导致整个资源无法加载。
必填字段
每个清单必须以两个必填字段开头: fx_version 和 games. 该 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 数据文件,如武器元数据、操控文件或车辆模型数据。 export 和 server_export 字段声明其他资源可调用的函数。添加元数据使用 description, author,和 version 字段用于文档目的。 lua54 directive enables Lua 5.4 features when set to 'yes',提供整数除法、按位运算符及其他语言改进,简化复杂脚本。