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

Jugador

ESX 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 directamente

Obtener jugador (servidor)

Jugador

ESX 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

Jugador

ESX Legacy

xPlayer.identifier

QBCore

Player.PlayerData.citizenid

Qbox / ox

player.PlayerData.citizenid

Nombre del personaje

Jugador

ESX Legacy

xPlayer.getName()

QBCore

Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname

Qbox / ox

player.PlayerData.charinfo.firstname .. ' ' .. player.PlayerData.charinfo.lastname

Dar dinero en efectivo

Dinero

ESX 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

Dinero

ESX 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)

Dinero

ESX 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

Dinero

ESX Legacy

xPlayer.getAccount('bank').money

QBCore

Player.PlayerData.money.bank

Qbox / ox

exports.qbx_core:GetMoney(src, 'bank')

Asignar trabajo (grade número)

Trabajo

ESX 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

Trabajo

ESX Legacy

xPlayer.getJob().name, xPlayer.getJob().grade

QBCore

Player.PlayerData.job.name, Player.PlayerData.job.grade.level

Qbox / ox

player.PlayerData.job.name, player.PlayerData.job.grade.level

Dar un ítem

Inventario

ESX 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

Inventario

ESX Legacy

xPlayer.removeInventoryItem('water', 1)

QBCore

Player.Functions.RemoveItem('water', 1)

Qbox / ox

exports.ox_inventory:RemoveItem(src, 'water', 1)

Cantidad de un ítem

Inventario

ESX Legacy

xPlayer.getInventoryItem('water').count

QBCore

Player.Functions.GetItemByName('water').amount

Qbox / ox

exports.ox_inventory:GetItemCount(src, 'water')

Registrar ítem usable

Inventario

ESX 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:registerHook

Registrar callback de servidor

Callbacks

ESX 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)

Callbacks

ESX 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

UI

ESX Legacy

ESX.ShowNotification('Texto')

QBCore

QBCore.Functions.Notify('Texto', 'success')

Qbox / ox

lib.notify({ description = 'Texto', type = 'success' })

Evento de jugador cargado (servidor)

Eventos

ESX 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

Trabajo

ESX Legacy

xPlayer.getJob().name  -- y .grade (número), .grade_name, .grade_label

QBCore

Player.PlayerData.job.name  -- y .grade.level, .grade.name

Qbox / ox

player.PlayerData.job.name  -- y .grade.level

¿Está de servicio (on duty)?

Trabajo

ESX Legacy

-- ESX no tiene duty nativo; usa esx_policejob/ambulance o una variable propia

QBCore

Player.PlayerData.job.onduty

Qbox / 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)

Trabajo

ESX Legacy

-- ESX no tiene gangs nativas; se emula con un segundo job o un addon

QBCore

Player.PlayerData.gang.name  -- y .gang.grade.level

Qbox / ox

player.PlayerData.gang.name  -- y .gang.grade.level

Leer metadata (hambre/sed/estrés…)

Jugador

ESX Legacy

xPlayer.getMeta('hunger')  -- ESX Legacy 1.9+; si no, usa esx_status

QBCore

Player.PlayerData.metadata['hunger']

Qbox / ox

player.PlayerData.metadata.hunger

Escribir metadata

Jugador

ESX Legacy

xPlayer.setMeta('hunger', 100)

QBCore

Player.Functions.SetMetaData('hunger', 100)

Qbox / ox

player.Functions.SetMetaData('hunger', 100)

Dinero negro / sucio

Dinero

ESX Legacy

xPlayer.addAccountMoney('black_money', 500)  -- cuenta 'black_money'

QBCore

Player.Functions.AddMoney('cash', 500)  -- QB no separa; usa item 'markedbills' o crypto

Qbox / 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)

Jugador

ESX Legacy

for _, xP in pairs(ESX.GetExtendedPlayers()) do ... end

QBCore

for _, src in pairs(QBCore.Functions.GetQBPlayers()) do ... end

Qbox / ox

for _, player in pairs(exports.qbx_core:GetQBPlayers()) do ... end

Evento de jugador desconectado (servidor)

Eventos

ESX 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.

Ver planes
Conversor ESX a QBCore y Qbox (FiveM) | Crxative-M