ESX vs QBCore: which FiveM framework should you choose?
ESX vs QBCore is the first decision most new FiveM server owners face, and it is hard to undo later. Both are mature, free roleplay frameworks. The real difference is how they are built, because that decides which scripts you can use. This comparison sticks to how each framework works, without invented benchmark numbers.
The short answer
- Pick ESX Legacy if you already own ESX scripts, or your developers know ESX.
- Pick QBCore if you are starting fresh and want a large set of ready-made jobs and systems that follow one structure.
- Also look at QBox, a QBCore fork built on the ox libraries: see QBox vs QBCore.
What each framework is
ESX (es_extended) is the older of the two. Current servers run ESX Legacy, maintained by the esx-framework organisation on GitHub. Scripts get the shared ESX object (in Legacy, through an export) and work with an xPlayer object for money, jobs and inventory.
QBCore started as a separate framework with its own conventions. Scripts get the core object with exports['qb-core']:GetCoreObject() and work with Player.PlayerData. Jobs, gangs, items and vehicles are defined in shared Lua files inside qb-core.
Side by side
| ESX Legacy | QBCore | |
|---|---|---|
| Core resource | es_extended | qb-core |
| Player object | xPlayer (ESX.GetPlayerFromId) | Player (QBCore.Functions.GetPlayer) |
| Jobs | Database tables jobs and job_grades | Shared Lua file (shared/jobs.lua) |
| Gangs | Not built in (scripts add them) | Built in (shared/gangs.lua) |
| Items | Database items table (or ox_inventory data) | Shared Lua file (or ox_inventory data) |
| Money | Accounts: money, bank, black_money | money: cash, bank, crypto |
| Status (hunger/thirst) | Separate status resources | Player metadata |
| Database driver | oxmysql | oxmysql |
| txAdmin recipe | Yes (ESX Legacy) | Yes (QBCore Framework) |
Scripts and compatibility
A script written for one framework calls that framework's functions, so it will not run on the other without changes or a bridge. Many paid script authors ship both versions, or a config switch. Standalone scripts and ox resources (ox_lib, ox_inventory, ox_target) work with both.
Before deciding, list the 10–20 scripts your server cannot live without and check which framework each supports. The FiveM resource finder shows what established servers run, which is a quick way to see what works together.
What about performance?
Neither framework is slow by itself. Server performance is decided by the resources you add: how often they run loops, how many database queries they make, and how they sync entities. Use resmon and txAdmin's performance charts on your own server instead of trusting published framework benchmarks.
Switching frameworks later
Switching is a migration project, not a setting: the database layout, player data and every framework-dependent script change. Plan for converting characters, money and vehicles, and for replacing or porting every script. If you are unsure, decide before your first players join.
How to choose
- Existing ESX scripts or developers → ESX Legacy.
- Fresh server, wide choice of free QBCore jobs → QBCore (setup guide).
- Fresh server and you like the ox ecosystem → QBox.
Browse each ecosystem in the ESX hub and the QBCore hub.