Lo que falla con más frecuencia, lo que significa realmente y qué hacer al respecto. La mayoría de estos casos son de configuración, no fallos. Antes que nada, activa Config.Debug = true y reinicia: la consola indicará entonces el framework y el target que eligió Job Center.
Instalación y el empleado#
La consola dice "You have renamed the script!" y el servidor se congela
La carpeta debe llamarse exactamente qs-jobcenter. Detén el servidor, devuelve a la carpeta su nombre, corrige la línea ensure en server.cfg para que coincida y vuelve a iniciarlo.
El recurso no se inicia
ox_lib falta o se inicia después. Debe estar instalado y con ensure por encima de qs-jobcenter.
El empleado está ahí, pero no hay opción de target ni aviso
Job Center eligió un target que no es el que usan los jugadores — normalmente porque hay dos en ejecución, o porque el real se inicia después de Job Center. Revisa la línea de depuración, mueve tu target por encima de ensure qs-jobcenter, o fíjalo con Config.Target. Para prescindir de los targets y usar el aviso E, establece Config.UseTarget = false.
No aparece ningún empleado, o flota o se hunde
Config.JobCenterPed.model debe ser un nombre de modelo de ped válido — un error tipográfico deja al empleado sin aparecer. Para la altura, toma coords donde está de pie un jugador: los pies del empleado quedan un metro por debajo de esa z.
Los textos dicen "Translation [xx][KEY] does not exist"
Al archivo de idioma en uso le falta esa clave — algo típico de una traducción personalizada o desactualizada. Copia las líneas que faltan de locales/en.lua a tu archivo y tradúcelas. Un Config.Language sin ningún archivo usa el inglés en su lugar.
Ofertas y solicitudes#
Aparece "You have been hired", pero el trabajo no cambia
La clave de la oferta no es un trabajo que tu framework conozca. Job Center pide al framework que asigne ese trabajo con el rango 0; el framework rechaza un nombre desconocido, pero la notificación ya se ha enviado. Cambia la clave al nombre del trabajo en el framework — ambulance en lugar de ems, taxi en lugar de taxidriver — o crea ese trabajo, con un rango 0, en tu framework.
Un jugador fue expulsado con "Attempted to exploit job hiring system"
El servidor recibió una contratación instantánea para una oferta cuyo applyType no es "instant". La ventana del centro de empleo nunca envía una, así que vino de otro script — una app del teléfono, un menú o un cheat. Si es uno de los tuyos, haz que compruebe applyType primero, como se describe en Comandos y eventos.
Apply for Job no hace nada
"chatbox"necesitahasChatbox = trueen la misma oferta."link"necesitaapplyLink— una dirección completa que empiece porhttps://. La página se abre en el navegador web del jugador, fuera del juego.Un
applyTypemal escrito muestra el botón pero no hace nada. Los valores válidos soninstant,chatbox,linkyhobby.
Falta una oferta en su categoría
Su category no coincide con ninguna clave de Config.JobCategories — las claves distinguen mayúsculas y minúsculas. Mientras no coincida, la oferta solo aparece en All Jobs.
Las imágenes o los iconos aparecen en blanco
Las imágenes se cargan desde la dirección de image en el juego de cada jugador. Una dirección que ya no existe, que requiere inicio de sesión o que bloquea el hotlinking no muestra nada — usa un enlace directo https a un .jpg o .png en un alojamiento de confianza. Los iconos deben ser clases gratuitas de Font Awesome 6 (fas fa-…); un nombre exclusivo de Pro o mal escrito dibuja un cuadrado vacío.
Chats y el panel del jefe#
/jobchats dice "You don't have access to this command"
Deben cumplirse dos cosas: el trabajo actual del jugador es la clave de la oferta, y su rango figura en el campo bossGrades de esa oferta. La lista es exacta — {3} no incluye el rango 4. Si no pasa nada en absoluto, Config.UseBossCommand es false.
La tablet del jefe no hace nada, o dice "You can't use this item"
You can't use this item es la misma comprobación de jefe de arriba. Si no pasa nada en absoluto:
El nombre del ítem en tu inventario debe ser igual a
Config.BossItem(boss_tablet).Config.UseBossItemdebe sertrue.El ítem debe ser usable y estar gestionado por tu framework — usa las definiciones de Instalación, incluido
consume = 0en ox_inventory.
Todos los chats desaparecen tras un reinicio
Es intencionado: los chats de solicitudes viven en la memoria del servidor y empiezan de cero en cada reinicio del recurso o del servidor. Los jugadores contratados conservan sus trabajos. Consulta La base de datos.
Algunos mensajes no se envían
Hay cinco segundos entre mensajes, por remitente. La ventana muestra Please wait before sending another message, y el servidor ignora todo lo que llegue más rápido.
A un jefe no le llegó la notificación de una nueva solicitud
Solo los jefes que están conectados, y que en ese momento tienen el trabajo con un rango de jefe, reciben la notificación. Los demás encuentran al solicitante en el panel, marcado como no leído, la próxima vez que lo abren.
Un solicitante aparece como "Applicant 1a2b3c4d"
Los nombres se leen de los jugadores conectados. Mientras el solicitante está ausente, el panel muestra en su lugar el inicio de su identificador; su nombre vuelve cuando se conecta de nuevo.
Registros de Discord#
No llega nada a Discord
Comprueba que Config.DiscordWebhook.enabled sea true, que url esté rellenado y que el interruptor del evento esté en true. Con Config.Debug activado, la consola indica qué ocurrió:
Línea de consola | Significa |
|---|---|
|
|
|
|
| El webhook se eliminó en Discord, o la dirección es incorrecta. Crea uno nuevo y pégalo de nuevo. |
| Discord está limitando la frecuencia del webhook. Desactiva |
¿Sigues atascado? Abre un ticket e incluye tu framework y su versión, tu target, la consola del servidor desde el inicio con
Config.Debug = true, y la oferta deConfig.Jobsimplicada. Una captura de la consola F8 ayuda en cualquier tema de la interfaz.



