Installing a FiveM script is not complicated. But if you have never done it before, it helps to understand how the server loads scripts before jumping in.
FiveM scripts are called resources. A resource is a folder that contains everything a script needs to run. That includes client files, server files, config files, and any UI assets.
Every resource folder needs a file called fxmanifest.lua. This file tells the server what to load. Without it, the server ignores the folder completely.
Scripts are usually distributed as a .zip or .rar file. Extract it with 7-Zip or WinRAR.
Inside you will find the resource folder. It should contain at minimum:
fxmanifest.luaclient.lua, server.lua, config.lua, etc.)Do not rename the folder contents unless the documentation says it is safe to do so. File paths inside fxmanifest.lua are case-sensitive and must match the actual file names exactly.
Resources go inside the resources/ folder in your server data directory. A typical structure looks like this:
server-data/
└── resources/
└── [scripts]/
└── your-script/
├── fxmanifest.lua
├── client.lua
└── server.lua
Folders in square brackets like [scripts] are just categories for organization. They are not resources themselves. Scripts inside them still work fine.
Upload the resource folder via FTP, SFTP, or your hosting panel's file manager.
Most scripts include a config.lua file. Open it and set the values to match your server. This usually includes things like framework type, job names, and item names.
Read the documentation before starting the script. Skipping this step is the most common reason a script does not work after installation.
Open server.cfg and add this line:
ensure your-script
Replace your-script with the exact name of the resource folder. Capitalization matters.
If the script depends on other resources like ESX, QBCore, or ox_lib, make sure those are listed higher up in server.cfg so they load first.
ensureis the current standard. It starts the resource and restarts it automatically if it crashes. The olderstartdirective still works butensureis preferred.
You do not need to restart the whole server. There are two ways to start a resource:
start your-script directly into the console.Check the console output for errors. If the script loaded correctly you will see:
Started resource your-script
| Issue | Likely Cause |
|---|---|
| Resource not found | Folder name in server.cfg does not match the actual folder name |
Missing fxmanifest.lua warning | File is missing or placed in the wrong directory |
| Script starts but does not work | Config not set up correctly, or a dependency is missing |
| Framework errors on start | Script was built for a different framework than your server runs |
server-data/resources/.config.lua to match your server setup.ensure your-script to server.cfg.The process is the same for every script. The only part that changes is the configuration.