Error

attempt to index a nil value (global 'ESX')

El error más común de ESX Legacy. Te explicamos la causa y el fix definitivo para que ESX cargue antes que tu recurso.

El problema

La consola del servidor muestra «attempt to index a nil value (global 'ESX')» y tu recurso no hace nada o crashea al iniciar.

La causa

Tu script intenta usar ESX antes de que el recurso es_extended esté cargado, o el orden de ensure en server.cfg es incorrecto. En ESX Legacy moderno la variable global ESX puede estar vacía si no la obtienes con getSharedObject.

La solución

Obtén el objeto compartido de ESX de forma segura y espera a que esté listo:

lua
-- server.lua / client.lua (ESX Legacy moderno)
ESX = exports['es_extended']:getSharedObject()

-- Si aún así llega nil al arrancar, espéralo:
local ESX = nil
CreateThread(function()
    while ESX == nil do
        ESX = exports['es_extended']:getSharedObject()
        Wait(0)
    end
    -- A partir de aquí ESX está garantizado
end)

Paso a paso

  1. 1.En server.cfg, asegúrate de que `ensure es_extended` va ANTES que `ensure tu_recurso`.
  2. 2.Usa `exports['es_extended']:getSharedObject()` en vez de asumir la global ESX.
  3. 3.Si tu recurso depende de ox_lib u otra librería, declárala también antes en el orden de carga.
  4. 4.Reinicia el servidor completo (no solo el recurso) para aplicar el orden de ensure.

¿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-15. Crxative-M no está afiliado a Cfx.re ni Rockstar Games.

Cómo arreglar "attempt to index a nil value (global 'ESX')" en FiveM