Error

attempt to concatenate a nil value

Sale al unir (..) una variable que es nil. Te enseñamos a localizar cuál y a protegerlo.

El problema

La consola muestra «attempt to concatenate a nil value (local 'x')» y el script se corta en esa línea.

La causa

Estás uniendo con `..` una variable que vale `nil` (un dato que no llegó: un campo de la BD vacío, un argumento que no se pasó, un getter que devolvió nil). Lua no puede concatenar nil con texto.

La solución

Comprueba el valor antes de concatenar y dale un valor por defecto:

lua
-- En vez de:
local msg = 'Hola ' .. name        -- name puede ser nil -> error

-- Protege con un valor por defecto:
local msg = 'Hola ' .. (name or 'desconocido')

-- O valida antes:
if not name then return end
local msg = 'Hola ' .. name

-- Para números, conviértelos: tostring(value)
print('Saldo: ' .. tostring(amount))

Paso a paso

  1. 1.Mira el nombre entre paréntesis del error (local 'x' / field 'y'): esa es la variable nil.
  2. 2.Rastrea de dónde sale: ¿una consulta MySQL vacía? ¿un argumento de evento que no llegó?
  3. 3.Protege con `(valor or 'defecto')` o valida con `if not valor then return end`.
  4. 4.Para concatenar números usa `tostring(n)`.
  5. 5.Si viene de la BD, comprueba que la fila existe antes de usar sus campos.

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

Cómo arreglar "attempt to concatenate a nil value" en FiveM (Lua)