Understanding fxmanifest in RedM and FiveM: A Comprehensive Guide
- Published on
- • 5 mins read•--- views

Introduction
When developing resources for RedM or FiveM, one of the most important files you will work with is the fxmanifest.lua. This file acts as a descriptor for your resource, providing crucial information to the server about your resource's dependencies, scripts, and other metadata. In this article, we'll take an in-depth look at the fxmanifest.lua, its purpose, and how to properly set it up for your RedM or FiveM resource.
What is fxmanifest.lua?
The fxmanifest.lua is a configuration file written in Lua that describes a resource in a RedM or FiveM server. It replaced the previously used __resource.lua file format. The fxmanifest provides a more structured and feature-rich way to define resources.
Every resource must have an fxmanifest.lua file in its root directory. This file contains metadata about the resource, such as its name, version, author, and dependencies. It also specifies the scripts, files, and assets that make up the resource.
Basic Structure
Here's a basic example of an fxmanifest.lua file:
fx_version 'cerulean'
game 'rdr3'
author 'YourName'
description 'A brief description of the resource'
version '1.0.0'
client_scripts {
'client.lua',
}
server_scripts {
'server.lua',
}
Let's break down each part:
fx_version: Specifies the minimum FiveM version required for the resource to run. We'll discuss the different versions later in this article.game: Indicates the game the resource is intended for. In this case, it's'rdr3'for RedM. For FiveM, you would use'gta5'.author,description, andversion: Metadata fields that provide information about the resource and its creator.client_scriptsandserver_scripts: These tables list the client-side and server-side scripts that make up the resource. Scripts listed inclient_scriptswill run on the player's machine, while those inserver_scriptswill run on the server.
Script Loading
The fxmanifest.lua allows you to specify the scripts that should be loaded and executed by the client and server. You can list multiple scripts in the client_scripts and server_scripts tables. The scripts will be loaded in the order they are listed.
For example:
client_scripts {
'utils.lua',
'main.lua',
'events.lua',
}
In this case, utils.lua will be loaded first, followed by main.lua and then events.lua on the client-side.
File Loading
In addition to scripts, you can also specify other files that should be included in your resource. These can be config files, HTML files, images, or any other assets your resource needs.
files {
'config.json',
'index.html',
'assets/image.png',
}
The files listed in the files table will be downloaded by clients when they join the server and the resource is started.
Dependencies
If your resource depends on other resources to function properly, you can specify those dependencies in the dependencies table. This ensures that the required resources are loaded before your resource starts.
dependencies {
'es_extended',
'mysql-async',
}
In this example, the resource depends on the es_extended and mysql-async resources. The server will ensure these resources are started before starting your resource.
Exports and Imports
Resources can expose functions to other resources through exports. Exports allow resources to share functionality without tightly coupling them.
To export a function, use the exports keyword followed by the function definition:
exports('myFunction', function(arg1, arg2)
-- Function code here
end)
Other resources can then import and use this exported function:
local myFunction = exports.myResource:myFunction
myFunction(1, 2)
FX Versions
The fx_version field in the fxmanifest.lua specifies the minimum FiveM version required for the resource to run. FiveM uses codenames for its versions, such as adamant, bodacious, and cerulean.
Here's a list of FiveM versions and their corresponding codenames:
adamant: FiveM 2425 and abovebodacious: FiveM 2189 and abovecerulean: FiveM 2372 and above
When specifying the fx_version, use the codename that corresponds to the minimum version your resource requires. For example, if your resource uses features introduced in FiveM 2400, you would set fx_version 'adamant'.
It's important to set the correct fx_version to ensure compatibility and access to the necessary APIs and features provided by FiveM.
Conclusion
The fxmanifest.lua is a critical component of any RedM or FiveM resource. It provides the server with essential information about your resource, its scripts, dependencies, and metadata. By properly configuring your fxmanifest.lua, you ensure that your resource is loaded and executed correctly by the server.
When setting up your fxmanifest.lua, remember to:
- Specify the correct
fx_versionbased on the minimum FiveM version your resource requires. - List all necessary scripts in the
client_scriptsandserver_scriptstables. - Include any additional files your resource needs in the
filestable. - Declare dependencies on other resources using the
dependenciestable. - Use exports to share functionality between resources when needed.
By following these guidelines and leveraging tools like the resource manifest generator, you'll be well on your way to creating robust and properly configured resources for your RedM or FiveM server.
Resources
Join Our Community!
Get help, share ideas, get free scripts, and connect with other RedM enthusiasts in our Discord server.
Join Discord