el campo 'Jobs' es nil
No se pudo leer tu lista de trabajos. Una errata en el archivo de trabajos rompe de golpe todos los scripts que dependen de ellos.
Haz esto primero
Si editaste hace poco tu archivo de trabajos, deshaz ese cambio y reinicia.
Qué significa
El código leyó el registro de trabajos del framework y no estaba. En QBCore eso es QBCore.Shared.Jobs, y en ESX se carga desde la tabla jobs de la base de datos. Cuando pasa, fallan de golpe todos los scripts con acceso por trabajo, y eso lo hace parecer más grande de lo que es.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
Un error de sintaxis en la configuración de trabajos
qb-core/shared/jobs.luaes Lua. Una llave que falta y el archivo entero no carga, así que la tabla no se asigna nunca; y el error que ves está en el script que la lee, no en el archivo que se rompió. - 2
La tabla de trabajos nunca se importó (ESX)
ESX lee los trabajos de la base de datos. Sin filas, no hay trabajos.
- 3
Un trabajo que existe en un sitio y en el otro no
Un jugador cuya columna
jobnombra un trabajo que la configuración no define. El registro está bien; lo que es nil es esa búsqueda. - 4
Leerlo antes de que el core haya cargado
El mismo problema de tiempos que con el propio objeto del core.
- 5
Un archivo compartido editado que una actualización reemplazó
Una actualización pisó tus trabajos a medida.
Cómo saber cuál es el tuyo
Subí buscando un error de carga en los archivos del propio framework: un jobs.lua roto siempre se anuncia antes de que se queje nada más. Y después:
print(json.encode(QBCore.Shared.Jobs and 'loaded' or 'nil'))
Dónde mirar
qb-core/shared/jobs.lua, o la tabla jobs de la base de datos si es ESX.
Cómo arreglarlo
Validá el archivo de configuración antes de reiniciar:
luac -p qb-core/shared/jobs.lua
Y protegé la búsqueda de un trabajo concreto, que es una clave que legítimamente puede faltar en vez de una tabla rota:
local job = QBCore.Shared.Jobs[player.PlayerData.job.name] if not job then return end
¿Sigues atascado en tu propio código?
Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.
bug_reportAbrir el Server FixerPara este tipo de error, el Conversor de scripts traduce un recurso entre ESX, QBCore y Qbox.