Herramienta gratis
Conversor ESX ↔ QBCore ↔ Qbox
Equivalencias exactas de API entre los tres frameworks: dinero, trabajos, ítems, callbacks, notificaciones y eventos. Elige una categoría y copia la línea que necesites.
Obtener el objeto core
JugadorESX Legacy
ESX = exports['es_extended']:getSharedObject()QBCore
local QBCore = exports['qb-core']:GetCoreObject()Qbox / ox
-- Qbox no usa core object: usa exports.qbx_core y ox_lib directamenteObtener jugador (servidor)
JugadorESX Legacy
local xPlayer = ESX.GetPlayerFromId(src)QBCore
local Player = QBCore.Functions.GetPlayer(src)Qbox / ox
local player = exports.qbx_core:GetPlayer(src)Identificador único del jugador
JugadorESX Legacy
xPlayer.identifierQBCore
Player.PlayerData.citizenidQbox / ox
player.PlayerData.citizenidNombre del personaje
JugadorESX Legacy
xPlayer.getName()QBCore
Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastnameQbox / ox
player.PlayerData.charinfo.firstname .. ' ' .. player.PlayerData.charinfo.lastnameDar dinero en efectivo
DineroESX Legacy
xPlayer.addMoney(500)QBCore
Player.Functions.AddMoney('cash', 500, 'motivo')Qbox / ox
exports.qbx_core:AddMoney(src, 'cash', 500, 'motivo')Ingresar en el banco
DineroESX Legacy
xPlayer.addAccountMoney('bank', 500)QBCore
Player.Functions.AddMoney('bank', 500, 'motivo')Qbox / ox
exports.qbx_core:AddMoney(src, 'bank', 500, 'motivo')⚠ En ESX el efectivo es la cuenta 'money' y el banco 'bank'. No confundas addMoney (efectivo) con addAccountMoney('bank').
Quitar dinero (banco)
DineroESX Legacy
xPlayer.removeAccountMoney('bank', 500)QBCore
Player.Functions.RemoveMoney('bank', 500, 'motivo')Qbox / ox
exports.qbx_core:RemoveMoney(src, 'bank', 500, 'motivo')Leer saldo del banco
DineroESX Legacy
xPlayer.getAccount('bank').moneyQBCore
Player.PlayerData.money.bankQbox / ox
exports.qbx_core:GetMoney(src, 'bank')Asignar trabajo (grade número)
TrabajoESX Legacy
xPlayer.setJob('police', 2)QBCore
Player.Functions.SetJob('police', 2)Qbox / ox
exports.qbx_core:SetJob(src, 'police', 2)⚠ El grade SIEMPRE es número, nunca string ('2' falla).
Leer el trabajo y rango
TrabajoESX Legacy
xPlayer.getJob().name, xPlayer.getJob().gradeQBCore
Player.PlayerData.job.name, Player.PlayerData.job.grade.levelQbox / ox
player.PlayerData.job.name, player.PlayerData.job.grade.levelDar un ítem
InventarioESX Legacy
xPlayer.addInventoryItem('water', 1)QBCore
Player.Functions.AddItem('water', 1)Qbox / ox
exports.ox_inventory:AddItem(src, 'water', 1)⚠ Si el servidor usa ox_inventory, los ítems van por sus exports AUNQUE el core sea ESX o QBCore.
Quitar un ítem
InventarioESX Legacy
xPlayer.removeInventoryItem('water', 1)QBCore
Player.Functions.RemoveItem('water', 1)Qbox / ox
exports.ox_inventory:RemoveItem(src, 'water', 1)Cantidad de un ítem
InventarioESX Legacy
xPlayer.getInventoryItem('water').countQBCore
Player.Functions.GetItemByName('water').amountQbox / ox
exports.ox_inventory:GetItemCount(src, 'water')Registrar ítem usable
InventarioESX Legacy
ESX.RegisterUsableItem('water', function(src) ... end)QBCore
QBCore.Functions.CreateUseableItem('water', function(src, item) ... end)Qbox / ox
-- ox_inventory: define el uso en data/items.lua (client.export) o usa exports.ox_inventory:registerHookRegistrar callback de servidor
CallbacksESX Legacy
ESX.RegisterServerCallback('res:cb', function(src, cb, ...) cb(result) end)QBCore
QBCore.Functions.CreateCallback('res:cb', function(src, cb, ...) cb(result) end)Qbox / ox
lib.callback.register('res:cb', function(src, ...) return result end)Llamar callback de servidor (cliente)
CallbacksESX Legacy
ESX.TriggerServerCallback('res:cb', function(result) ... end, ...)QBCore
QBCore.Functions.TriggerCallback('res:cb', function(result) ... end, ...)Qbox / ox
local result = lib.callback.await('res:cb', false, ...)Notificación al jugador
UIESX Legacy
ESX.ShowNotification('Texto')QBCore
QBCore.Functions.Notify('Texto', 'success')Qbox / ox
lib.notify({ description = 'Texto', type = 'success' })Evento de jugador cargado (servidor)
EventosESX Legacy
AddEventHandler('esx:playerLoaded', function(src, xPlayer) ... end)QBCore
AddEventHandler('QBCore:Server:OnPlayerLoaded', function() ... end)Qbox / ox
AddEventHandler('qbx_core:server:playerLoaded', function(player) ... end)Leer el trabajo y el grade
TrabajoESX Legacy
xPlayer.getJob().name -- y .grade (número), .grade_name, .grade_labelQBCore
Player.PlayerData.job.name -- y .grade.level, .grade.nameQbox / ox
player.PlayerData.job.name -- y .grade.level¿Está de servicio (on duty)?
TrabajoESX Legacy
-- ESX no tiene duty nativo; usa esx_policejob/ambulance o una variable propiaQBCore
Player.PlayerData.job.ondutyQbox / ox
player.PlayerData.job.onduty⚠ ESX Legacy no trae 'onduty' de serie; lo aporta el job (policía/ambulancia) o lo gestionas tú.
Leer la banda (gang)
TrabajoESX Legacy
-- ESX no tiene gangs nativas; se emula con un segundo job o un addonQBCore
Player.PlayerData.gang.name -- y .gang.grade.levelQbox / ox
player.PlayerData.gang.name -- y .gang.grade.levelLeer metadata (hambre/sed/estrés…)
JugadorESX Legacy
xPlayer.getMeta('hunger') -- ESX Legacy 1.9+; si no, usa esx_statusQBCore
Player.PlayerData.metadata['hunger']Qbox / ox
player.PlayerData.metadata.hungerEscribir metadata
JugadorESX Legacy
xPlayer.setMeta('hunger', 100)QBCore
Player.Functions.SetMetaData('hunger', 100)Qbox / ox
player.Functions.SetMetaData('hunger', 100)Dinero negro / sucio
DineroESX Legacy
xPlayer.addAccountMoney('black_money', 500) -- cuenta 'black_money'QBCore
Player.Functions.AddMoney('cash', 500) -- QB no separa; usa item 'markedbills' o cryptoQbox / ox
exports.qbx_core:AddMoney(src, 'cash', 500)⚠ ESX tiene cuenta black_money de serie; QB/Qbox lo modelan con un ítem (markedbills) o crypto, no con una cuenta aparte.
Iterar todos los jugadores online (servidor)
JugadorESX Legacy
for _, xP in pairs(ESX.GetExtendedPlayers()) do ... endQBCore
for _, src in pairs(QBCore.Functions.GetQBPlayers()) do ... endQbox / ox
for _, player in pairs(exports.qbx_core:GetQBPlayers()) do ... endEvento de jugador desconectado (servidor)
EventosESX Legacy
AddEventHandler('esx:playerDropped', function(src) ... end)QBCore
AddEventHandler('QBCore:Server:OnPlayerUnload', function(src) ... end)Qbox / ox
AddEventHandler('qbx_core:server:playerDropped', function(src) ... end)Traduce un script entero con IA
Pega código arbitrario y la IA lo reescribe al framework destino con las firmas exactas.
ProTraducción de scripts con IA (ESX ↔ QBCore ↔ Qbox)
Sube a Pro o Studio para desbloquearlo.
