Skip to content
fxmanifest.lua Generator

fxmanifest.lua Generator

Generate a valid fxmanifest.lua: fx_version, game, lua54, shared, client and server scripts, NUI page, files, data_file lines, dependencies and exports.

Open the tool Last updated

The fxmanifest.lua Generator builds the manifest every FiveM or RedM resource needs. You fill in scripts, NUI page, files, data_file entries, dependencies and exports, and it writes a clean fxmanifest.lua with warnings for the mistakes that stop a resource from loading.

What it is for

A manifest is short, but one wrong line costs you an hour: an NUI page that is not in files, a vehicle meta with a data_file line but no files entry. Use the generator when you start a new resource, when you turn a loose folder of add-on cars into a pack, or when you want to check an old __resource.lua style resource against a clean modern manifest.

Quick start

  1. Under Start from, pick Basic script, NUI resource or Vehicle pack. The preset keeps your Name and Author and fills the rest.
  2. In Resource, set fx_version, the Game chips, Name, Author, Version, Repository and Description.
  3. Add scripts in the Scripts panel. Type a path and press Enter or the plus button, or click one of the small + ... shortcut buttons under each list.
  4. For NUI, fill in ui_page and your web files under NUI & files.
  5. Add data_file lines for meta files, and list dependencies and exports if you need them.
  6. Fix anything in the amber warnings box, then download fxmanifest.lua from the code block and put it in the root of your resource folder.

Your manifest is saved in this browser, so you can come back and tweak it. Clear empties every field (it keeps game 'gta5', lua54 'yes' and version 1.0.0).

Presets

Preset What it sets
Basic script shared_scripts config.lua, client_scripts client/*.lua, server_scripts server/*.lua
NUI resource @ox_lib/init.lua and config.lua in shared, client and server globs, ui_page web/build/index.html, files web/build/index.html and web/build/**/*, dependency ox_lib
Vehicle pack lua54 off, client script vehicle_names.lua, and six data_file lines for handling, vehicles, carcols, carvariations, vehiclelayouts and dlctext metas under data/**/

Options

Resource

Option Output Default
fx_version fx_version 'cerulean' cerulean (current). bodacious and adamant are there for old resources and trigger a warning.
Game game 'gta5' for one game, games { 'gta5', 'rdr3' } for several gta5. Picking rdr3 also adds the required rdr3_warning line. common is for resources that run on any game.
Name, Author, Description, Version, Repository name '...', author '...' and so on Version 1.0.0. Empty fields are left out.
lua54 'yes' lua54 'yes' On. Lua 5.4 has been the default since mid 2025, so the line is optional on current servers, but keeping it does no harm and helps older artifacts.
use_experimental_fxv2_oal use_experimental_fxv2_oal 'yes' Off. Experimental faster native calls for Lua 5.4. Test before you ship.

Scripts

Three lists: shared_scripts, client_scripts and server_scripts. Each row can be edited in place, moved up with the arrow button or removed. Globs like client/*.lua work. The shortcut buttons add common entries:

List Shortcuts
shared_scripts @ox_lib/init.lua, @qbx_core/modules/lib.lua, @es_extended/imports.lua, @es_extended/locale.lua, config.lua, shared/*.lua, locales/*.lua
client_scripts client/*.lua, @qbx_core/modules/playerdata.lua, client/main.lua
server_scripts @oxmysql/lib/MySQL.lua, server/*.lua, server/main.lua

Order matters: scripts load in the order listed, and on each side shared_scripts load before the client or server scripts. Put @ox_lib/init.lua or @qbx_core/modules/lib.lua at the top of shared, and config.lua before any file that reads Config. Paths starting with @ point into another resource.

NUI and files

Option What it does
ui_page Path inside the resource, or an http(s) URL for a dev server.
files Files sent to clients. Globs like ** work. Shortcuts: html/**/*, web/build/**/*, stream/**/*.ytyp, locales/*.json.
Add ui_page and data_file paths to files automatically On by default. Copies the ui_page path (unless it is a URL) and every data_file path into files { }, because clients never download anything that is not listed there.

data_file

Add data_file adds a row with a type and a path. The type box suggests HANDLING_FILE, VEHICLE_METADATA_FILE, CARCOLS_FILE, VEHICLE_VARIATION_FILE, VEHICLE_LAYOUTS_FILE, DLCTEXT_FILE, CONTENT_UNLOCKING_META_FILE, PED_METADATA_FILE, WEAPONINFO_FILE, WEAPON_ANIMATIONS_FILE, WEAPONCOMPONENTSINFO_FILE, LOADOUTS_FILE, AUDIO_GAMEDATA, AUDIO_SOUNDDATA, AUDIO_SYNTHDATA, AUDIO_WAVEPACK, DLC_ITYP_REQUEST and TIMECYCLEMOD_FILE, but you can type any type. + Vehicle metas adds the six vehicle meta lines that are not already there.

Dependencies and exports

Option What it does
dependencies Resources that must start first. Shortcuts: oxmysql, ox_lib, ox_target, ox_inventory, qbx_core, qb-core, es_extended, /onesync, /gameBuild:3095. Entries like /onesync, /server:<artifact> and /gameBuild:<build> set server requirements.
provide Lets this resource stand in for another one, for example a mysql-async replacement.
exports (client) / server_exports Old style export lists. exports('name', fn) in Lua works without them.
escrow_ignore Files left readable when the resource goes through the Cfx.re asset escrow. Shortcuts: config.lua, locales/*.lua, client/open.lua, server/open.lua.

Output

The file comes out in this order: version and game lines, metadata, script blocks, ui_page, files, data_file lines, dependencies, provide, exports, escrow_ignore. The Basic script preset produces:

fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
lua54 'yes'

name 'my_script'
description 'Basic client/server script'
version '1.0.0'

shared_scripts {
    'config.lua',
}

client_scripts {
    'client/*.lua',
}

server_scripts {
    'server/*.lua',
}

A typical Qbox / ox_lib job resource:

fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
lua54 'yes'

name 'my_job'
version '1.0.0'

shared_scripts {
    '@ox_lib/init.lua',
    '@qbx_core/modules/lib.lua',
    'config.lua',
}

client_scripts {
    '@qbx_core/modules/playerdata.lua',
    'client/*.lua',
}

server_scripts {
    '@oxmysql/lib/MySQL.lua',
    'server/*.lua',
}

dependencies {
    'ox_lib',
    'qbx_core',
    'oxmysql',
}

The Vehicle pack preset, with automatic files on:

fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

name 'my_vehicles'
description 'Add-on vehicle pack'
version '1.0.0'

client_scripts {
    'vehicle_names.lua',
}

files {
    'data/**/handling.meta',
    'data/**/vehicles.meta',
    'data/**/carcols.meta',
    'data/**/carvariations.meta',
    'data/**/vehiclelayouts.meta',
    'data/**/dlctext.meta',
}

data_file 'HANDLING_FILE' 'data/**/handling.meta'
data_file 'VEHICLE_METADATA_FILE' 'data/**/vehicles.meta'
data_file 'CARCOLS_FILE' 'data/**/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/**/carvariations.meta'
data_file 'VEHICLE_LAYOUTS_FILE' 'data/**/vehiclelayouts.meta'
data_file 'DLCTEXT_FILE' 'data/**/dlctext.meta'

For a vehicle pack, put models (.yft, .ytd) in a stream folder, they are streamed automatically. The data/**/ globs let you keep one folder per car. Then add the resource to server.cfg:

server.cfg
ensure my_vehicles

Warnings the tool shows

  • @ox_lib/init.lua is loaded but lua54 is off.
  • You load @ox_lib/... files but ox_lib is not in dependencies.
  • You load @oxmysql/lib/MySQL.lua but oxmysql is not in dependencies.
  • You load @qbx_core/... files in shared scripts but qbx_core is not in dependencies.
  • common is combined with gta5 or rdr3.
  • ui_page is not in files (only when automatic files is off).
  • data_file lines exist while automatic files is off: every path must also be in files { }.
  • fx_version is not cerulean.
  • The name contains spaces. The folder name is what counts for ensure.

Common mistakes

  • Blank NUI frame. ui_page must also be in files. Leave the automatic option on.
  • Shipping both manifests. fxmanifest.lua replaced __resource.lua. Do not ship both in one resource.
  • RedM without the warning line. game 'rdr3' needs the exact rdr3_warning text. The generator adds it for you.
  • Editing the manifest on a running server. Run refresh and then ensure your_resource in the server console, or the old manifest stays in use.
  • Relying on [folder] order. If your resource needs another one to start first, list it in dependencies instead of hoping the folder order is right.

Tip

Keep the resource name and folder name the same, lowercase, with no spaces. ensure uses the folder name, and name in the manifest is only metadata.

Limitations

The generator does not look at your resource folder, so it cannot tell whether the files and globs you list exist. It writes one manifest at a time. Everything happens in your browser.