Frameworks

Qbox vs QBCore vs ESX: Which FiveM Framework Should You Pick?

An honest comparison of Qbox, QBCore and ESX Legacy: history, dependencies, code style, script compatibility and which framework fits your FiveM server.

· 7 min read

The framework is the foundation of a FiveM roleplay server. It owns the player: their character, money, job, inventory, vehicles and everything that gets saved to the database. Almost every script you add later talks to it, so picking one is the most expensive decision to undo.

There are three serious options in 2026: ESX Legacy, QBCore and Qbox. All three are free, open source and installable in a few clicks through txAdmin. This guide compares them honestly, without a favorite.

Short version: pick Qbox for a new server if you are comfortable with the Overextended (ox) ecosystem and want the most actively modernized codebase. Pick QBCore if you want the largest pool of qb-ready scripts and tutorials. Pick ESX Legacy if you are buying scripts that are ESX-first, or you already know ESX.

What a framework actually does

Without a framework, a FiveM server is a sandbox: players spawn, drive and leave, and nothing is remembered. A framework adds:

Where the framework sits

  • Characters and identity – who the player is and what is saved about them.
  • Economy – cash, bank and other money types, with functions to add and remove money safely on the server.
  • Jobs and grades – police, EMS, mechanic and the permissions that come with them.
  • Inventory and items – either built in or through a separate inventory resource.
  • A shared API – the functions every other script calls, such as "get this player" or "give this player $500".

That last point is why switching is hard. A script written for ESX calls ESX functions, and a QBCore server does not have them.

The three frameworks at a glance

ESX LegacyQBCoreQbox
OriginThe oldest of the three; ESX Legacy is the maintained continuation of the original ESXCreated in 2021 as a cleaner alternative to ESXForked from QBCore in September 2022
Core resourcees_extendedqb-coreqbx_core
Accessing the coreESX global via @es_extended/imports.luaexports['qb-core']:GetCoreObject()Direct exports such as exports.qbx_core:GetPlayer(source)
Typical ecosystemesx_* resources, ox_inventory commonqb-* resourcesqbx_* resources plus ox_lib, ox_inventory and ox_target
DatabaseMariaDB or MySQL via oxmysqlMariaDB or MySQL via oxmysqlMariaDB 10.9+ only (MySQL not supported)
Script compatibilityESX scriptsQBCore scriptsNative Qbox scripts and most QBCore scripts through a compatibility bridge
txAdmin recipeYesYesYes

ESX Legacy

ESX is where FiveM roleplay frameworks started, and it still has the largest back catalog of scripts. Older ESX had a reputation for being slow and insecure; ESX Legacy is the maintained version that fixed much of that, removed the old event-based way of getting the core object, and moved to modern patterns.

Choose ESX if:

  • The paid scripts you want are written ESX-first.
  • Your team already knows ESX.
  • You are migrating an existing ESX server and do not want a rewrite.

Watch out for: old tutorials and free scripts that use TriggerEvent('esx:getSharedObject', ...). That pattern is deprecated; modern ESX resources load the core through @es_extended/imports.lua instead. If a script still uses the old event, treat it as unmaintained.

QBCore

QBCore arrived in 2021 with a more organized structure: a single core object, consistent Player.Functions methods and a set of matching qb-* resources for jobs, housing, phones and more. It quickly became the most popular framework for new servers, and most script sellers today ship a QBCore version.

Choose QBCore if:

  • You want the largest selection of ready-made, framework-specific scripts.
  • You learn best from YouTube tutorials and forum threads; there are more for QBCore than for anything else.
  • You plan to use mostly off-the-shelf resources rather than writing your own.

Watch out for: mixing old and new qb-* resources from different years. Many free resources were never updated, and version mismatches with qb-core are a frequent source of errors.

Qbox

Qbox started as a QBCore fork in September 2022 with one goal: keep QBCore's familiar structure but modernize the internals. It leans heavily on the Overextended stack – ox_lib for UI and utilities, ox_inventory for items and ox_target for interactions – and exposes the core through direct exports instead of a shared object.

Its biggest practical advantage is the QBCore bridge: according to the Qbox documentation, most QBCore scripts run on Qbox without changes, with a few exceptions. You get a modern core without giving up the QBCore script market.

Choose Qbox if:

  • You are starting a new server and want the most actively modernized codebase.
  • You like the ox ecosystem (ox_inventory, ox_target, ox_lib).
  • You want QBCore compatibility today and native, cleaner code for the scripts you write yourself.

Watch out for: the database requirement. Qbox needs MariaDB 10.9 or newer and does not support MySQL. Scripts that reach deep into QBCore internals, rather than its public functions, are the ones most likely to need changes.

The same task in all three frameworks

Here is a server-side function that gives a player $500 in cash. It shows how each framework feels to write against.

ESX Legacy (with @es_extended/imports.lua in your fxmanifest.lua):

local function giveCash(source, amount)
    local xPlayer = ESX.GetPlayerFromId(source)
    if not xPlayer then return end

    xPlayer.addMoney(amount)
end

QBCore:

local QBCore = exports['qb-core']:GetCoreObject()

local function giveCash(source, amount)
    local Player = QBCore.Functions.GetPlayer(source)
    if not Player then return end

    Player.Functions.AddMoney('cash', amount, 'gift')
end

Qbox (native):

local function giveCash(source, amount)
    exports.qbx_core:AddMoney(source, 'cash', amount, 'gift')
end

All three are fine. The differences are style: ESX uses an xPlayer object, QBCore uses Player.Functions, and Qbox prefers calling exports directly. Notice the reason argument in QBCore and Qbox; it ends up in your logs, which matters the first time you investigate a duplication exploit.

Security note: money changes must always happen on the server, and the server must decide the amount. Never trust an amount sent from the client, or a cheater can trigger your event with any number they like.

Which scripts will work?

This is usually the deciding factor:

  • Paid scripts from established sellers almost always support ESX and QBCore, often through a config option. Many now list Qbox too. Check before you buy.
  • QBCore scripts on Qbox usually work thanks to the bridge. Test anything that touches inventory, because Qbox uses ox_inventory rather than qb-inventory.
  • ESX ↔ QBCore scripts are not interchangeable. Converting one means replacing every framework call, plus inventory and notification calls.
  • Standalone scripts that do not touch money, jobs or inventory work on all three.

Switching frameworks later

Possible, but plan for it as a project, not an afternoon:

  • QBCore → Qbox is the easiest move. The bridge keeps most resources running while you migrate. You will also move from qb-inventory to ox_inventory, which means converting item definitions and player inventories.
  • ESX → QBCore/Qbox (or the reverse) means new database tables, a player data migration and rewriting or replacing every framework-dependent script.

If you are unsure, start on the framework your must-have scripts are built for.

Our recommendation

  • New server, comfortable editing code: Qbox.
  • New server, mostly buying scripts: QBCore or Qbox; check your script list against both.
  • Existing ESX server or ESX-first scripts: stay on ESX Legacy.

Whichever you choose, write down your framework, inventory and target resources and keep them consistent. Mixing qb-target and ox_target, or two inventories, causes more broken servers than any framework choice. When you generate scripts with BLDR, select your framework and libraries so the output uses the right calls from the start.

New to all of this? Start with How to Make a FiveM Server, which covers installing any of the three through txAdmin.

Frequently asked questions

Is Qbox better than QBCore?

Qbox is a modernized continuation of QBCore with a cleaner core and tighter ox integration, and it runs most QBCore scripts. "Better" depends on your scripts; if one you rely on breaks on the bridge, QBCore is the safer pick.

Is ESX dead?

No. ESX Legacy is maintained and still has a large catalog of scripts. It is less popular for brand-new servers than it used to be, but plenty of large servers run it.

Can I run ESX and QBCore scripts on the same server?

Not reliably. Both frameworks manage the same player data in different ways. Pick one framework and convert scripts to it.

Which framework is fastest?

Framework choice matters much less for performance than individual scripts. A badly written script with a per-frame loop will cost more than the difference between frameworks. Measure with resmon and the txAdmin profiler.

Keep reading