Reference / fxmanifest.lua
fxmanifest.lua reference.
Every FiveM resource starts with an fxmanifest.lua in its root folder. It tells the server which scripts run where, which files go to players and what each meta file is. Here is what each common line does.
Build one with a form · Check an existing one
Last updated
A working example.
An addon car pack with its three meta files.
fx_version 'cerulean'
game 'gta5'
name 'my_cars'
version '1.0.0'
files {
'data/vehicles.meta',
'data/carvariations.meta',
'data/handling.meta',
}
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
Directives.
| Directive | Example | What it does |
|---|---|---|
fx_version | fx_version 'cerulean' | Required. The manifest version. Use cerulean for new resources; bodacious and adamant are older. |
game / games | game 'gta5' | Required. The game the resource runs on: gta5, rdr3, or common for both. games takes a list. |
lua54 | lua54 'yes' | Deprecated. Every Lua script runs on Lua 5.4 since June 2025, so new resources can leave it out. Older manifests still carry it and it does no harm. |
author, description, version | version '1.0.0' | Metadata shown by tools. The server does not need them. |
client_script(s) | client_scripts { 'client/*.lua' } | Scripts that run on each player's game. Globs such as client/*.lua work. |
server_script(s) | server_scripts { '@oxmysql/lib/MySQL.lua', 'server/*.lua' } | Scripts that run on the server only. Players never download them. |
shared_script(s) | shared_scripts { '@ox_lib/init.lua', 'config.lua' } | Scripts that run on both sides, loaded before client and server scripts. |
files | files { 'html/**', 'data/*.json' } | Files sent to players that are not scripts: NUI pages, images, JSON, and meta files a data_file points to. |
ui_page | ui_page 'html/index.html' | The NUI page the resource shows. The page and its assets must also be in files. |
loadscreen | loadscreen 'index.html' | A loading screen page. Also list it in files. |
data_file | data_file 'HANDLING_FILE' 'data/handling.meta' | Tells the game what a meta file is. The file must also be listed in files. |
dependency / dependencies | dependencies { 'ox_lib', 'oxmysql' } | Resources that must be running first. The resource will not start without them. |
provide | provide 'mysql-async' | Says this resource stands in for another one, so its dependents still start. |
this_is_a_map | this_is_a_map 'yes' | Marks a map resource so its streamed map files load like the game's own. |
| Type | File | For |
|---|---|---|
VEHICLE_METADATA_FILE | vehicles.meta | Vehicles |
HANDLING_FILE | handling.meta | Vehicles |
VEHICLE_VARIATION_FILE | carvariations.meta | Vehicles |
CARCOLS_FILE | carcols.meta | Vehicles |
VEHICLE_LAYOUTS_FILE | vehiclelayouts.meta | Vehicles |
DLCTEXT_FILE | dlctext.meta | Vehicles |
WEAPONINFO_FILE | weapons.meta | Weapons |
WEAPON_METADATA_FILE | weaponarchetypes.meta | Weapons |
WEAPONCOMPONENTSINFO_FILE | weaponcomponents.meta | Weapons |
WEAPON_ANIMATIONS_FILE | weaponanimations.meta | Weapons |
PED_METADATA_FILE | peds.meta | Peds |
SHOP_PED_APPAREL_META_FILE | a shop meta, e.g. mp_m_freemode_01_mypack.meta | Clothing |
PED_FIRST_PERSON_ALTERNATE_DATA | first_person_alternates.meta | Clothing |
PED_OVERLAY_FILE | tattoo overlays .xml | Tattoos |
TATTOO_SHOP_DLC_FILE | shop_tattoo.meta | Tattoos |
DLC_ITYP_REQUEST | a .ytyp in stream/ | Props and maps |
INTERIOR_PROXY_ORDER_FILE | interiorproxies.meta | Maps |
AUDIO_GAMEDATA | <name>_game.dat151.rel, declared as <name>_game.dat | Audio |
AUDIO_SOUNDDATA | <name>_sounds.dat54.rel, declared as <name>_sounds.dat | Audio |
AUDIO_SYNTHDATA | <name>_amp.dat10.rel, declared as <name>_amp.dat | Audio |
AUDIO_WAVEPACK | a folder of .awc banks | Audio |
Questions.
- Which fx_version should I use?
- cerulean. It is the current version and the one new resources should declare. bodacious and adamant are older versions you still see in old resources.
- Do files in stream/ need to be listed in the fxmanifest?
- No. FiveM streams everything in a resource's stream folder on its own. You declare meta files, with a files entry and a data_file line. Prop packs often declare their .ytyp the same way, with DLC_ITYP_REQUEST.
- What is the difference between fxmanifest.lua and __resource.lua?
- __resource.lua is the old manifest name from before fx_version existed. New resources use fxmanifest.lua.
- Why does my resource say it could not find a script?
- A path in client_scripts, server_scripts or shared_scripts does not match a real file, often because of a typo or wrong folder. Rivo's free fxmanifest checker compares the manifest with the files and shows the line.