attempt to call a nil value (field 'getMoney')
ESX cambió su API: getMoney() ya no existe. Aquí está el método correcto para leer el dinero del jugador.
El problema
Al llamar a `xPlayer.getMoney()` la consola lanza «attempt to call a nil value (field 'getMoney')».
La causa
ESX Legacy reorganizó las cuentas del jugador. `getMoney()` fue eliminado; ahora el dinero vive dentro de las cuentas (accounts) y se lee con `getAccount`.
La solución
Sustituye getMoney por getAccount('money'):
lua
-- ❌ Antiguo (ya no existe)
local money = xPlayer.getMoney()
-- ✅ Correcto en ESX Legacy
local money = xPlayer.getAccount('money').money
-- Compatibilidad defensiva por si mezclas versiones:
local function getPlayerMoney(xPlayer)
if xPlayer.getAccount then
return xPlayer.getAccount('money').money
end
return xPlayer.money or 0
endPaso a paso
- 1.Reemplaza todas las llamadas a `getMoney()` por `getAccount('money').money`.
- 2.Para banco usa `getAccount('bank')`, para dinero sucio `getAccount('black_money')`.
- 3.Recuerda: dar/quitar dinero se valida y ejecuta SIEMPRE en el servidor (server-authoritative).
¿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.
