THE ORB
Arrancando el studio

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.

groupsTodos los trabajos dejan de andarpersonPodés arreglarlo

Haz esto primero

Si editaste hace poco tu archivo de trabajos, deshaz ese cambio y reinicia.

bug_reportMejor pega tu consola entera

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. 1

    Un error de sintaxis en la configuración de trabajos

    qb-core/shared/jobs.lua es 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. 2

    La tabla de trabajos nunca se importó (ESX)

    ESX lee los trabajos de la base de datos. Sin filas, no hay trabajos.

  3. 3

    Un trabajo que existe en un sitio y en el otro no

    Un jugador cuya columna job nombra un trabajo que la configuración no define. El registro está bien; lo que es nil es esa búsqueda.

  4. 4

    Leerlo antes de que el core haya cargado

    El mismo problema de tiempos que con el propio objeto del core.

  5. 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 Fixer

Para este tipo de error, el Conversor de scripts traduce un recurso entre ESX, QBCore y Qbox.

Errores que viajan con este