Every FiveM server owner types some version of this into Google within their first week. The official docs call them resources. The FiveM folder on your server is even called resources/. But the whole community — YouTube, Reddit, Discord — calls them scripts. So that is what we will call them here.
Installing a FiveM script is not hard once you understand what is actually happening. The process breaks down into five steps: get the files, put them in the right folder, handle dependencies, tell your server to load the script, then verify it works. That is it. The part that trips people up is almost always one of the first three.
What a FiveM Script Actually Is
A FiveM script is a folder. Inside that folder lives a fxmanifest.lua file — that is the file FiveM reads to understand what the script does, what files it contains, and what other scripts it depends on. Without a valid manifest, FiveM will not load anything.
The rest of the folder typically contains Lua files for server-side logic, Lua or JavaScript files for client-side logic, an optional config.lua or config.js you are expected to edit, HTML/CSS/JS files for any UI, and sometimes SQL files for your database.
Your server loads scripts in the order they appear in your server.cfg, so dependencies — scripts your script requires to function — need to be listed and loaded first.
Step 1: Download the Script
Scripts come from a few places: GitHub releases, the Cfx.re forum, Tebex stores, or direct file deliveries from shops like this one. The delivery format is almost always a .zip file.
Before you extract anything, check the script's documentation page for two things:
- Dependencies — a list of other scripts this one requires. Common ones include
ox_lib,oxmysql,es_extended(ESX) orqb-core(QBCore). If you do not have these installed, the script will throw errors and not work. - Framework compatibility — most scripts target either ESX or QBCore. Some support both. Installing an ESX-only script on a QBCore server will not work, no matter how carefully you configure it.
Step 2: Extract the Files Correctly
This is the most common beginner mistake. When you unzip a script, you often get a folder inside a folder. For example:
police-job-v2.3.zip
└── police-job-v2.3/ ← outer wrapper folder
└── police-job/ ← the actual resource folder
├── fxmanifest.lua
├── config.lua
└── client/The folder that goes into your resources/ directory is the one that contains fxmanifest.lua — in this example, that is police-job/. Do not drop the outer wrapper folder into resources, or FiveM will look for a manifest that does not exist at that level.
The correct structure in your server looks like this:
server/
└── resources/
├── [system]/ ← default FiveM system resources
├── [local]/ ← your custom scripts go here
│ └── police-job/ ← folder that contains fxmanifest.lua
└── server.cfgStep 3: Install Dependencies
If the script requires dependencies, install them before the script itself. Two dependencies appear in almost every modern FiveM script:
- ox_lib — a shared utility library by the Overextended team. Used for UI notifications, progress bars, context menus, and more. Download from the official ox_lib releases page.
- oxmysql — a database connector that lets scripts read and write to your MariaDB/MySQL database. Replaces the older mysql-async. Download from the oxmysql releases page.
Install dependencies the same way you install any other script: extract the resource folder, place it in resources/, and ensure it in server.cfg — but do it above anything that depends on it.
Step 4: Import the Database (If Required)
Scripts that store persistent data — jobs, housing, vehicle ownership, player stats, inventories — need to create tables in your database. They do this either automatically on first load or by providing a .sql file you need to run manually.
Check the script folder for any file ending in .sql. If one exists, import it into your database before starting the server:
- Using HeidiSQL: open your database, click File → Run SQL file, select the file
- Using phpMyAdmin: select your database, click Import, choose the file
- Using the terminal:
mysql -u root -p your_database < script.sql
Skipping this step is why you see errors like Table 'database.tablename' doesn't exist in the server console.
Step 5: Edit the Config File
Most scripts ship with a config.lua (or shared/config.lua) that you are expected to customise. Open it in VS Code or any text editor before starting the server. At minimum, look for:
- Framework setting — something like
Config.Framework = 'esx'. Set it to match your server. - Database prefix — if you use a custom table prefix, check any SQL-related config options.
- Job names — if the script references a specific job name (e.g.
'police'or'ambulance'), make sure those jobs exist in your framework with the exact same name. - Discord webhook — many scripts log events to Discord. Either add a webhook URL or disable the logging to avoid console spam.
Step 6: Add ensure to server.cfg
Your server will not load a script unless you tell it to. Open your server.cfg and add an ensure line for the script:
# Dependencies first ensure oxmysql ensure ox_lib # Framework ensure es_extended # Your scripts ensure police-job
The name after ensure must exactly match the name of the folder inside resources/. Capitalisation matters on Linux servers — if the folder is Police-Job and you write ensure police-job, it will not load.
Order matters too. Dependencies must be ensured above anything that relies on them. A good rule of thumb: oxmysql at the top, then ox_lib, then your framework (ESX or QBCore), then framework dependencies, then your scripts.
Step 7: Start the Server and Check the Console
Restart the server fully rather than using txAdmin's resource restart button the first time you install a new script. A full restart loads everything in the correct order and surfaces any dependency errors clearly.
Watch the console for two things as the server starts:
- Green text / resource started: the script loaded successfully.
- Red errors: something went wrong. The error message almost always tells you exactly what — a missing dependency, a Lua syntax error, a missing database table, or a config value that is set incorrectly.
The Most Common Errors (and What They Mean)
Here are the errors that appear in every "please help" Discord message, and what they actually mean:
Could not load resource X— FiveM found the ensure line but cannot find a folder with that name in resources. Check spelling and capitalisation.^3WARN: Couldn't find resource X— a dependency is missing. The script named X is required but not installed or not ensured above the script that needs it.Table 'db.table' doesn't exist— you skipped the SQL import step. Import the.sqlfile into your database.attempt to index a nil value— usually a config error. A job name, item name, or framework reference in the config does not match what actually exists on your server.SCRIPT ERROR: @resource/client.lua:42— a Lua runtime error. The line number tells you exactly where. Often caused by a missing dependency or a config value that is the wrong type.
Installing Premium Scripts: What Is Different
Premium scripts from shops like this one follow the same installation process, but typically include two extra things: an escrow system and a more complete config.
Escrow means part of the script files are encrypted and locked to your server licence key. This is handled automatically by FiveM — you do not need to do anything special. Just ensure the resource normally. If you see an escrow error, it means the licence key registered with the resource does not match the server it is running on. Contact the seller with your server licence key to get it resolved.
Premium scripts also tend to have more thorough configs and documentation. Read everything before installing — the answers to most questions are already in the README.
Installing Multiple Scripts: The Right Order
When you are building a full server, the install order in server.cfg follows a consistent pattern regardless of which scripts you choose:
# 1. Database connector ensure oxmysql # 2. Shared libraries ensure ox_lib # 3. Framework core ensure es_extended # or qb-core # 4. Framework dependencies ensure ox_inventory # or qb-inventory ensure esx_multicharacter # 5. Core systems (economy, phone, housing) ensure esx_society ensure your-phone-script ensure your-housing-script # 6. Jobs and gameplay scripts ensure police-job ensure drug-system ensure vehicle-shop # 7. UI and HUD (last, so everything else is loaded) ensure your-hud
Scripts that depend on others will sometimes crash on startup if the dependency starts after them. When in doubt: if script B uses script A, script A goes above script B in the file.
Once you have the install process down, the real difference between a mediocre server and a polished one comes down to script quality. Poorly built scripts — ones with bad performance, no error handling, or configs that do not actually work — are a constant drain on your time. The scripts in this shop are tested on both ESX and QBCore, come with real documentation, and include free lifetime updates so they stay compatible as FiveM moves forward.
FAQ
What is the main point of How to Install FiveM Scripts: The Complete Beginner Guide?
FiveM calls them 'resources' but everyone searches for 'scripts'. Here is the full process: downloading, extracting, placing in the right folder, adding dependencies, ensuring in server.cfg, and fixing the errors that will absolutely show up.
Is this guide updated for FiveM in 2026?
Yes. The article is written for current FiveM server owners in 2026, with recommendations focused on txAdmin, modern frameworks, resource performance, database reliability, and stable RP server operation.
Does this apply to ESX, QBCore, and Qbox servers?
Most guidance applies to modern FiveM servers using ESX, QBCore, or Qbox. When a recommendation is framework-specific, the article calls that out directly.
What should I do after reading this guide?
After reading, the best next step is to apply the checklist on a test server, verify console errors, and then connect this guide with the related setup, optimization, and framework articles on FiveMotive.