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.Mira el nombre entre paréntesis del error (local 'x' / field 'y'): esa es la variable nil.
- 2.Rastrea de dónde sale: ¿una consulta MySQL vacía? ¿un argumento de evento que no llegó?
- 3.Protege con `(valor or 'defecto')` o valida con `if not valor then return end`.
- 4.Para concatenar números usa `tostring(n)`.
- 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 herramientaGuías relacionadas
Última actualización: 2026-06-25. Crxative-M no está afiliado a Cfx.re ni Rockstar Games.
