fxmanifest.lua Expert¶
The resource manifest file (fxmanifest.lua) defines metadata, dependencies, and file includes for every CFX resource. It replaced the deprecated __resource.lua format.
Required fields¶
Every manifest must include at minimum:
fx_versionmust always be'cerulean'-- this is the current and only supported versiongamesaccepts'gta5'(FiveM),'rdr3'(RedM), or both:{ 'gta5', 'rdr3' }- Use both when your resource works on either platform; use one if it depends on game-specific natives
Metadata fields¶
author 'YourName'
description 'What this resource does'
version '1.0.0'
repository 'https://github.com/user/repo'
These are optional but strongly recommended. The repository field is commonly used by update-checking systems. The version field enables automatic update detection when paired with repository.
Script declarations¶
- Glob patterns are supported:
'client/*.lua'matches all Lua files in the client folder shared_scriptsrun on both client and server- Order matters: files are loaded in the order listed
Lua 5.4¶
Lua 5.4 is the only runtime as of June 2025. Lua 5.3 has been fully removed from FiveM/RedM.
The lua54 'yes' directive is deprecated and ignored. Do not include it in new manifests. All Lua scripts automatically run on Lua 5.4 (v5.4.8) regardless of manifest settings.
Key Lua 5.4 features available by default: integers, bitwise operators, <const>, <close>, and the updated math.random algorithm.
Dependencies¶
Declares that this resource requires another resource to be started first. The server will warn if a dependency is missing.
Multiple dependencies can also be declared in a block:
Provide and replace¶
providetells the server this resource satisfies the dependency for another resource namereplaceprevents the named resource from starting if this one is active
NUI (web UI)¶
ui_page 'html/index.html'
files {
'html/index.html',
'html/style.css',
'html/script.js',
'html/**'
}
ui_pagesets the entry point for the in-game browserfileslists assets that need to be sent to the client- Glob patterns work in
filesblocks too
Data files¶
Used for streaming custom game assets (maps, models, textures).
JavaScript / Node.js¶
For JS resources, use the same script declarations but with .js extensions:
To specify the Node.js version for server scripts:
C¶
C# resources reference compiled DLLs:
Asset escrow¶
For paid/Tebex resources using Cfx.re asset escrow:
escrow_ignore lists files that remain unencrypted so server owners can customize them (configuration, locales). All other files are encrypted by the escrow system.
Recommended field order¶
fx_versiongamesauthor,description,versiondependency/dependenciesshared_scriptsclient_scriptsserver_scriptsfilesui_page
Common mistakes¶
- Using
__resource.luainstead offxmanifest.lua(deprecated) - Forgetting
fx_version(resource will not load) - Forgetting
games(resource will not load) - Listing files that do not exist (silent failure, scripts not loaded)
- Wrong glob pattern (e.g.
client/**instead ofclient/*.lua) - Including
lua54 'yes'(deprecated, ignored -- Lua 5.4 is the only runtime)