Fundamentos: tu primer recurso en QBCore · Lección 5/5 · 8 min
Leer errores como un pro
Los errores de Lua tienen un patrón. Aprende a leer el stack trace y a localizar la causa en segundos.
Programar es, en gran parte, leer errores. La consola de FiveM (F8 en cliente, la consola del servidor / txAdmin en servidor) te dice exactamente qué archivo y qué línea fallaron.
El error más común: index a nil
SCRIPT ERROR: @taxi_job/server.lua:14: attempt to index a nil value (local 'Player')Un error típico
Se lee así: en server.lua, línea 14, intentaste acceder a algo (.PlayerData, .Functions...) de una variable Player que valía nil. Traducción: Player no existe. Causa habitual en QBCore: QBCore.Functions.GetPlayer(src) devolvió nil porque el jugador no está cargado todavía o el ID es incorrecto.
- attempt to index a nil value → usaste algo.campo pero «algo» es nil (¿GetPlayer devolvió nil?).
- attempt to call a nil value → llamaste a una función que no existe (¿typo? ¿export mal escrito?).
- attempt to perform arithmetic on a nil value → sumaste/operaste con un nil.
- attempt to concatenate a nil value → uniste un texto con un nil (..).
Truco: tras GetPlayer comprueba SIEMPRE if not Player then return end. Programar a la defensiva evita el 80% de los crashes.
En la sección de Guías tienes soluciones a los errores más frecuentes de QBCore (incluido attempt to index a nil value). Úsala como diccionario cuando te atasques.
Practica lo aprendido
0/3Ves este error: «attempt to index a nil value (local 'Player')». ¿Qué significa?
El error «attempt to call a nil value (field 'AddMoneyy')» viene de un typo. Corrige el nombre del método.
Este código tiene un fallo:
Player.Functions.AddMoneyy('cash', 500)Reescríbelo corregido:
Pista
Mira bien el nombre del método... tiene una letra de más. Debería ser AddMoney.
Completa el patrón defensivo que evita el 80% de los crashes tras obtener al jugador.
local Player = QBCore.Functions.GetPlayer(source)if not Player then endPista
Si el jugador no existe, corta la ejecución de la función antes de tocar sus datos.
Reto: prográmalo tú
Te dan este error: attempt to call a nil value (field 'AddMoneyy'). ¿Cuál es la causa más probable y cómo lo arreglarías?
Escríbelo tú en tu editor (VS Code) y pruébalo en tu servidor. Aquí se aprende haciéndolo, no copiando.
Ver pista
Mira bien el nombre del método... ¿está bien escrito? Debería ser AddMoney.
Escribe aquí tu solución:
