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.En server.cfg, asegúrate de que `ensure es_extended` va ANTES que `ensure tu_recurso`.
- 2.Usa `exports['es_extended']:getSharedObject()` en vez de asumir la global ESX.
- 3.Si tu recurso depende de ox_lib u otra librería, declárala también antes en el orden de carga.
- 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 herramientaGuías relacionadas
Última actualización: 2026-06-15. Crxative-M no está afiliado a Cfx.re ni Rockstar Games.
