PiTyUs.Hire me

Frameworks

Moving a server or script from ESX to QBCore/Qbox

Plan an ESX to QBCore or Qbox migration: mapping xPlayer functions, money, jobs and items, database differences, converting player data and bridging scripts.

Updated 12 min readBy PiTyUs · FiveM developer

Overview

Framework migrations are among the riskiest projects on a live server: every script touches the framework, and every player’s money and items live in its tables. Most of the work is mapping — functions, data and events — and the most important decision is which scripts to convert, which to bridge and which to replace.

API mapping

ESXQBCoreQbox
ESX.GetPlayerFromId(src)QBCore.Functions.GetPlayer(src)exports.qbx_core:GetPlayer(src)
xPlayer.identifierPlayer.PlayerData.citizenidplayer.PlayerData.citizenid
xPlayer.addMoney(n)Player.Functions.AddMoney('cash', n)exports.qbx_core:AddMoney(src, 'cash', n)
xPlayer.addAccountMoney('bank', n)Player.Functions.AddMoney('bank', n)exports.qbx_core:AddMoney(src, 'bank', n)
xPlayer.job.name / .gradePlayerData.job.name / .job.grade.levelSame as QBCore
xPlayer.setJob(job, grade)Player.Functions.SetJob(job, grade)exports.qbx_core:SetJob(src, job, grade)
esx:playerLoadedQBCore:Client:OnPlayerLoadedQBX.PlayerData / same events

Full APIs: ESX tutorial, QBCore tutorial, Qbox tutorial.

Data differences

DataESXQBCore / Qbox
Character tableusers keyed by identifierplayers keyed by citizenid (plus license)
Moneyaccounts JSON (money, bank, black_money)money JSON (cash, bank, crypto)
Jobjob, job_grade columnsjob JSON with grade table
Vehiclesowned_vehiclesplayer_vehicles
ItemsInventory/ESX tablesInventory-specific (qb-inventory or ox_inventory)

Write a conversion script that reads each ESX row, generates a citizenid, maps money accounts and jobs, and inserts into the new tables — then verify totals (sum of all money before and after). Schema tips: database design.

Convert, bridge or replace

Script typeUsual choice
Your own scriptsConvert, or add a framework bridge — see bridges
Popular multi-framework resourcesSwitch the config to the new framework
Old ESX-only resourcesReplace with maintained equivalents
Escrowed ESX-only scriptsAsk the seller for a QB/Qbox version

01A migration plan

  1. Inventory every resource and its framework dependency.
  2. Set up the new framework on a test server with a copy of the database.
  3. Convert data; compare money, items and vehicle counts.
  4. Test every job, shop, garage and admin tool.
  5. Announce a maintenance window; take a backup; switch; keep the old server ready for rollback.

Backups: server backups.

Frequently asked questions

Can I convert ESX scripts to QBCore?

Yes — map the xPlayer calls to QBCore Player functions (or Qbox exports), update events and inventory calls, and test.

Should I migrate to QBCore or Qbox?

For a new move, Qbox gives the QBCore data model with a modern ox-based stack; QBCore has the larger legacy script catalogue.

Can I keep player data when switching frameworks?

Yes, with a conversion script that maps users to players, money accounts and jobs. Test it on a copy first.

What is the biggest migration risk?

Economy data: money, items and vehicles. Verify totals before and after conversion.

Need this built, not just explained?

Ten years of FiveM work, from Lua to NUI

Custom resources, React NUI, ESX / QBCore / Qbox integration, OneSync performance audits and security reviews — plus the websites and SEO around your server brand.

Related guides