Cómo se hace

ESX vs QBCore: cuál elegir

Comparativa objetiva de ESX y QBCore, los dos frameworks más usados de FiveM: qué es cada uno, diferencias reales, su API equivalente y cómo elegir sin caer en favoritismos.

El problema

Vas a montar un servidor FiveM de rol y no sabes si empezar con ESX o con QBCore. Cada tutorial y cada comunidad recomienda uno distinto, y temes elegir mal y tener que rehacerlo todo.

La causa

ESX y QBCore son los dos frameworks de rol más extendidos. Resuelven lo mismo (jugadores, trabajos, dinero, inventario, base de datos) pero con APIs y filosofías ligeramente distintas. La elección importa para qué recursos podrás usar tal cual, pero NO cambia los conceptos que de verdad tienes que aprender. Mucha gente lo presenta como una guerra de bandos cuando en realidad son herramientas equivalentes.

La solución

El mismo ejemplo (obtener al jugador y darle dinero) en ESX y en QBCore, lado a lado. Verás que la lógica es idéntica; solo cambian los nombres de la API:

lua
-- =====================================================
--  MISMO RESULTADO, DOS FRAMEWORKS
--  Obtener al jugador por su server id y darle 500 $
-- =====================================================

-- ---------- ESX (Legacy) ----------
local ESX = exports['es_extended']:getSharedObject()

RegisterCommand('pagar', function(source)
    local xPlayer = ESX.GetPlayerFromId(source)   -- objeto del jugador
    if not xPlayer then return end

    xPlayer.addMoney(500)                          -- dar dinero (cash)
    local job = xPlayer.job.name                   -- nombre del trabajo
    print(('ESX -> %s cobró, trabajo: %s'):format(source, job))
end)

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

RegisterCommand('pagar', function(source)
    local Player = QBCore.Functions.GetPlayer(source)  -- objeto del jugador
    if not Player then return end

    Player.Functions.AddMoney('cash', 500)             -- dar dinero (cash)
    local job = Player.PlayerData.job.name             -- nombre del trabajo
    print(('QBCore -> %s cobró, trabajo: %s'):format(source, job))
end)

-- Conclusión: cliente-servidor, validar 'source' en el servidor y
-- no confiar en el cliente son IGUALES en ambos. Solo cambia la firma.

Paso a paso

  1. 1.Qué es ESX: framework veterano (ESX Legacy es la versión mantenida). Su mayor fortaleza es el tamaño: una base ENORME de recursos, scripts gratuitos y de pago, tutoriales y una comunidad con años de rodaje. Si buscas un recurso concreto, lo más probable es que exista para ESX.
  2. 2.Qué es QBCore: framework más moderno, nacido después y con un núcleo más integrado en algunos aspectos (metadatos del jugador, sistema de trabajos y necesidades más cohesionado de serie). Tiene su propio ecosistema de recursos qb-* muy activo.
  3. 3.Ambos viven sobre el ecosistema ox: oxmysql (acceso a base de datos), ox_lib (utilidades de UI y servidor), ox_inventory (inventario moderno) y ox_target (interacción por mirada). Puedes usar estos recursos con ESX o con QBCore, así que la decisión de framework no te encierra en un inventario o un target concretos.
  4. 4.Tabla de equivalencias de API — el mismo concepto, distinto nombre:
  5. 5. • Obtener jugador: ESX.GetPlayerFromId(src) ↔ QBCore.Functions.GetPlayer(src)
  6. 6. • Dar dinero: xPlayer.addMoney(500) ↔ Player.Functions.AddMoney('cash', 500)
  7. 7. • Nombre del trabajo: xPlayer.job.name ↔ Player.PlayerData.job.name
  8. 8. • Identificador: xPlayer.identifier ↔ Player.PlayerData.citizenid
  9. 9. • Objeto compartido: exports['es_extended']:getSharedObject() ↔ exports['qb-core']:GetCoreObject()
  10. 10.Cómo elegir (recomendación honesta): no elijas por bando. Aprende primero los CONCEPTOS —arquitectura cliente-servidor, eventos, validar siempre en el servidor, no confiar en el cliente, seguridad— porque son IDÉNTICOS en los dos. Luego elige el framework según los recursos concretos que quieras usar en tu servidor: mira qué scripts (trabajos, economía, inventario) encajan con tu idea y comprueba para cuál están hechos.
  11. 11.Regla práctica: si los recursos que te gustan son mayoritariamente ESX, empieza con ESX; si son qb-*, empieza con QBCore. Migrar lógica entre ambos es viable porque solo cambian las firmas de la API, no la forma de pensar.

¿Tu caso es distinto?

Pega tu error en la herramienta IA y te da la solución al instante.

Probar la herramienta

Guías relacionadas

Última actualización: 2026-06-29. Crxative-M no está afiliado a Cfx.re ni Rockstar Games.

ESX vs QBCore: cuál elegir para tu servidor FiveM (comparativa objetiva)