Skip to Content
ReferenceManifest Entry Catalog

Resource manifest entry reference

fxmanifest.lua runs in its own Lua runtime, separate from resource scripts. It describes metadata and loading; it does not share ordinary variables with client.lua or server.lua. Start with the practical manifest guide; this page supplies the complete built-in entry and version reference from the pinned upstream manifest manual .

Entries and downloaded files

EntryMeaning and constraints
fx_versionSelect a named feature level; cerulean is the current named level in this source. Later levels inherit earlier behavior except overrides.
game / gamesgta5 for FiveM, rdr3 for RedM, common for only CitizenFX APIs without game-specific APIs. Multiple games do not automatically make game-specific code portable.
resource_manifest_versionDeprecated GUID feature level in __resource.lua; migrate to fxmanifest.lua and a named fx_version.
client_script / client_scriptsRun on clients and implicitly include scripts in the client packfile; supports globs.
server_script / server_scriptsRun on the server; supports globs. Do not separately put server-only scripts or secrets in files.
shared_script / shared_scriptsRun separately on both sides and include in client downloads; supports globs. Shared is not private.
export / exportsExport a client Lua/JS global function. Prefer runtime exports('name', fn) or C# Exports.Add where appropriate.
server_export / server_exportsEquivalent manifest declaration for a server global.
ui_pageLocal NUI entry file or an absolute URL. Local HTML and its dependencies must also be packaged.
before_level_metaLoad a level meta before the main level meta; deprecated in favor of data files when possible.
after_level_metaLoad a level meta afterward; also deprecated in favor of data files.
replace_level_metaReplace the primary level meta; package the named .meta file. This is a map-authoring operation, not a general configuration fix.
data_fileRegister a typed content file. The filename supports globs; package the actual data. See data-file types.
this_is_a_mapMarks a map resource and reloads map storage when loaded. The documented marker uses 'yes'; presence matters.
server_onlyPrevent clients from downloading the resource. Do not combine with a feature that needs client code.
loadscreenSelect the loading-screen HTML; package its files.
loadscreen_manual_shutdownKeep the NUI loading screen open until ShutdownLoadingScreenNui; replaces the unsupported manual-shutdown native.
file / filesAdd files to the client packfile. Include assets actually referenced by the feature, not entire private directories.
dependency / dependenciesRequire earlier resource loading or one of the runtime constraints below.
escrow_ignoreLeave selected supported files unencrypted during asset escrow processing; this is not a download exclusion.
lua54Deprecated since all Lua scripts moved to 5.4 in June 2025; no longer necessary to enable the runtime.
node_versionServer JavaScript runtime selection. This pinned manual lists 16 as default and 22 as the alternative: node_version '22'. It does not change client JS or NUI.
provideAdvertise a resource as a replacement for another resource dependency. API compatibility is still your responsibility.
use_experimental_fxv2_oalEnable experimental Lua One Argument List native invocation; requires correct native types and explicit vector coordinates.
clr_disable_task_schedulerDisable the custom server C# scheduler; implied by bodacious and later. Resume on the game thread before native calls, for example with the documented await Delay(0) pattern.
convar_categoryExpose grouped configuration controls in FxDK Project Settings.

The loader distinguishes .lua, .js and .net.dll. For compiled C# use the appropriate CitizenFX client or server assembly; a DLL referencing the wrong context is not corrected by changing the filename. author, description and version are useful metadata rather than application secrets.

Globs

*.lua matches Lua files in the current directory, not arbitrarily deep folders. dir/*.dll matches DLLs inside dir, not b.dll at the resource root. The latter distinction corrects an ambiguous example in the pinned table. **/*.lua and **.lua are recursive forms; **/cl_*.lua restricts matching filenames by prefix. Globbing support belongs to the entry type, not every arbitrary metadata field.

Do not depend on a broad glob to establish module initialization order. List startup files explicitly when one must run first, and exclude build tools, tests, private JSON and server code from client globs.

Custom metadata and exports

Plural declarations expand into repeated singular metadata. A custom declaration can have extra data serialized under an _extra key:

-- fxmanifest.lua fx_version 'cerulean' game 'gta5' version '1.0.0' docs_feature 'preview' { limit = 20 } server_script 'server.lua'
-- server.lua local resource = GetCurrentResourceName() local count = GetNumResourceMetadata(resource, 'docs_feature') for index = 0, count - 1 do local name = GetResourceMetadata(resource, 'docs_feature', index) local extra = GetResourceMetadata(resource, 'docs_feature_extra', index) print(name, extra) -- extra is JSON text; validate before using decoded data. end

Metadata indexes are zero-based. A manifest declaration such as export 'readPreview' requires a corresponding global in client code. Runtime exports('readPreview', function() ... end) avoids the global declaration; consume on the same side with exports.resource_name:readPreview() in Lua or Exports["resource_name"].readPreview() in C#. Neither form crosses the client/server network boundary.

Runtime constraints

ConstraintExampleMeaning
server/server:9500Minimum server artifact/build number.
policy/policy:subdir_file_mappingRequired server-key policy, such as the documented clothing-support policy.
onesync/onesyncState awareness must not be disabled.
gameBuild/gameBuild:h4Minimum game build; accepts the sv_enforceGameBuild values. h4 maps to 2189.
native/native:0xE27C97A0Specified server-side native must be available.

A dependency failure is a startup diagnostic: fix the required environment or intentionally revise the requirement after testing. Deleting constraints to suppress an error can leave the resource executing unavailable APIs.

NUI, maps and experimental invocation

cerulean uses a secure NUI context; browser callback fetches must use https://, including local resource callbacks. An external ui_page is permitted, but brings network availability and content-trust concerns. Loading screens use a separate lifecycle from a normal NUI menu.

OAL does not unpack a vector3 into separate native coordinates. Supply coords.x, coords.y, coords.z explicitly along with every remaining native argument. Wrong or unknown native parameter types can fail unexpectedly under OAL. Treat it as a measured compatibility change rather than a universal performance flag.

FxDK ConVar descriptors

A category contains a description and a list of field descriptors. Each descriptor begins with display title and variable name, followed by its type and parameters.

TypeParameters after title and variable name
CV_STRINGType, default text.
CV_BOOLType, default boolean, optional checkbox label.
CV_INTType, default number, optional minimum and maximum.
CV_SLIDERType, default, minimum, maximum.
CV_COMBIType, default, minimum, maximum; slider plus manual input.
CV_PASSWORDMasked input. The pinned source labels this type but prints CV_SLIDER in its sample tuple; verify the FxDK implementation before relying on that inconsistent tuple. Masking does not make replicated data private.
CV_MULTIType, list of name/value pairs; the first item is the default.

Use $variable in the descriptor for replicated setr values and #variable for public-info sets values. Example:

convar_category 'Preview' { 'Local preview resource settings', { { 'Theme', '$docs_theme', 'CV_STRING', 'dark' }, { 'Items', 'docs_items', 'CV_INT', 20, 1, 100 }, { 'Mode', 'docs_mode', 'CV_MULTI', { { 'Off', 'off' }, { 'Preview', 'preview' } }} } }

Named FXv2 versions

VersionChanges recorded by upstream
adamant (2019-12)Equivalent to the 44febabe FXv1 level; requires game and is mandatory for RedM.
bodacious (2020-02)Implies disabling the custom C# server task scheduler and stops defining browser-like window in JS script contexts.
cerulean (2020-05)Secure NUI context, WASM/fetch support and HTTPS callbacks.

Historical GUID versions

These explain old resources; they are not recommended declarations for new work.

GUIDHistorical behavior
00000000-0000-0000-0000-000000000000No-version behavior; client Lua used natives_21e43a33.lua. Upstream warns against relying on this legacy level.
77731fab-63ca-442c-a67b-abc70f28dfa5December 2016 minimum FXServer operating level; no listed feature change.
f15e72ec-3972-4fe4-9c7d-afc5394ae207April 2017 native snapshot through natives_0193d0af.lua.
44febabe-d386-4d18-afbe-5e627f4af937Universal client native file natives_universal.lua and newer native snapshot.
05cfa83c-a124-4cfa-a768-c24a5811d8f9Registers scripts as game network scripts, affecting entity creation with network flags.

After migration, test startup, dependencies, exports, NUI callbacks and networked entity behavior on the actual target track. A syntactically valid manifest does not certify those behaviors.