Error

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
end

Paso a paso

  1. 1.Reemplaza todas las llamadas a `getMoney()` por `getAccount('money').money`.
  2. 2.Para banco usa `getAccount('bank')`, para dinero sucio `getAccount('black_money')`.
  3. 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 herramienta

Guías relacionadas

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

Arreglar "attempt to call a nil value (field 'getMoney')" en ESX