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: cada rechazo en Garbage Job proviene de una comprobación que el servidor hace a propósito, y el mensaje o la línea de la consola indica cuál. Activa Config.Debug = true para que el script explique cada paso en la consola del servidor y en F8.
Instalación e inicio#
"You have renamed the script!" y el servidor deja de responder
La carpeta del recurso debe llamarse exactamente qs-garbagejob. Una copia renombrada detiene el servidor a propósito. Devuelve a la carpeta su nombre original, actualiza su línea ensure en server.cfg y reinicia.
"Could not verify the database schema"
No se pudieron crear o comprobar las tablas; el error de MySQL aparece tras el mensaje. Asegúrate de que oxmysql se inicie antes del trabajo y se conecte, y de que el usuario de la base de datos pueda hacer CREATE y ALTER en las tablas. Evita XAMPP y entornos de desarrollo similares en un servidor en producción. También puedes importar [sql]/qs-garbagejob.sql a mano con HeidiSQL.
"Could not register the ESX job rows"
Las tablas propias del trabajo están bien; solo las filas de jobs / job_grades no se pudieron escribir, normalmente porque esas tablas faltan o tienen otra estructura en tu ESX. Ejecuta las dos sentencias del trabajo que hay al principio de [sql]/qs-garbagejob.sql, ajustadas a tus columnas.
El capataz nunca aparece
El NPC se genera a través del puente del framework, así que el framework no se detectó: se inicia después de Garbage Job, o no es es_extended, qb-core o qbx_core. Mueve su ensure por encima del trabajo. Si la consola F8 muestra Ped model '…' never loaded, el modelo en Config.StartJob.ped.model está mal escrito.
No aparece el blip de Garbage Center
El blip solo se muestra a los jugadores que pueden trabajar — los que tienen un trabajo en Config.GarbageCollectorJob, o todos con Config.RequireJob = false — y solo con Config.EnableBlip = true. Aparece en cuanto se le da el trabajo a un jugador.
"qs-inventory not started, skipping garbagejob quest creation."
Inofensivo. Se muestra cuando un jugador entra en un servidor sin qs-inventory y solo significa que no se entregó la misión opcional.
Iniciar una ruta#
"You don't have the garbage collector job"
El trabajo del jugador no está en Config.GarbageCollectorJob. En QBCore y Qbox, comprueba que garbage_collector exista en tu shared/jobs.lua; si tu servidor usa otro nombre de trabajo, añade ese nombre a la lista. En un equipo, cada miembro necesita el trabajo. Config.RequireJob = false elimina la comprobación.
"Parking lot is full"
Cada plaza de Config.VehicleSpawnCoords tiene un vehículo a menos de cuatro metros y medio: el coche de un jugador o el camión de otro equipo. Despeja el patio o añade más plazas en un servidor donde trabajen varios equipos a la vez.
Un miembro del equipo no tiene el nivel requerido
Se comprueba a cada miembro según el levelRequired de la ruta, no solo al líder. Elige una ruta que pueda hacer el miembro de menor nivel, o sácalo del equipo. El mensaje es NOT_ENOUGH_LEVEL_MEMBERS en el archivo de traducciones.
"You are not the leader of the group"
Solo el jugador que formó el equipo puede iniciar una ruta para él. Un miembro que quiera trabajar solo debe salir antes del equipo.
"You are already on a mission"
El jugador — o alguien del equipo — todavía tiene una ruta. Abandónala desde el pie del panel y luego inicia la nueva. Una ruta que terminó de cualquier otra forma (pagada, expulsado, desconectado) se limpia sola.
El camión aparece y desaparece al instante
El camión tiene que existir antes de poder dárselo al equipo, así que primero se aparca y después decide el servidor. Cuando el servidor rechaza el inicio — por nivel, por trabajo, porque alguien ya está en una ruta —, el camión se retira de nuevo para liberar la plaza, y la notificación indica el motivo.
Durante una ruta#
No aparece el aviso en el contenedor
El aviso aparece a menos de tres metros de las coordenadas de la parada, así que colócate justo junto al contenedor. Con Config.Target = true no hay aviso de tecla: usa la opción de target y comprueba que Config.TargetScript indique el recurso de target que realmente usas. En una ruta que hayas escrito tú, una parada colocada en la calle en lugar de en el contenedor pone el aviso en la calle.
No hay llaves para el camión
No se detectó tu recurso de llaves: se inicia después del trabajo o no es uno de los compatibles. Sube su ensure o pon sus llamadas en client/vehiclekeys/none.lua como se muestra en Integraciones.
El camión no tiene combustible
Establece Config.Fuel = true y apunta Config.FuelExport a tu recurso de combustible. Debe tener un export SetFuel.
El uniforme no cambia o la ropa del jugador no vuelve
En ESX, el uniforme necesita esx_skin y skinchanger; en QBCore y Qbox usa los eventos qb-clothing. Un recurso de ropa que no responda a ellos necesita adaptar las llamadas de client/clothing.lua — o establece Config.Clothing = false.
El minijuego de limpieza es demasiado difícil
Baja threshold o patches, o sube duration, en Config.CleanDumpster. Pulsar ESC abandona el intento; el contenedor sigue sucio hasta que se limpia.
La ruta terminó sola
Una ruta se cancela cuando el jugador pierde el trabajo, cuando el líder del equipo la abandona o lo expulsa, cuando el líder devuelve el camión o cuando el jugador se desconecta. Reiniciar el recurso termina todas las rutas en curso.
Pagos#
"You did not finish the route, so there is nothing to collect"
El servidor solo paga cuando ha visto todas las paradas terminadas y el camión de vuelta a menos de treinta metros de Config.DeliverTruckCoords. En un equipo, la causa habitual es que el líder devolvió el camión antes de que este miembro terminara sus propias paradas: cada miembro trabaja todas las paradas. Con Config.Debug activado, la consola del servidor indica si la ruta quedó sin terminar o si el jugador no estaba en el depósito.
El pago es menor de lo que indica la ruta
Con Config.MissionPayout = 'split', el dinero y la experiencia de la ruta se reparten entre el equipo. Con qs-job-management en ejecución, el dinero se paga a través de él en lugar de ir al efectivo del jugador.
"Rejected payout for source … no active route"
Se entregó el camión de una ruta que el servidor ya había terminado: abandonada, por expulsión del equipo o perdida por un reinicio del recurso. No se pagó nada porque no había nada en curso.
"Rejected payout for source … no longer holds the job"
El jugador cambió de trabajo antes de devolver el camión. Una ruta solo se paga a quien todavía tiene el trabajo.
Equipos#
"The player is too far away"
El jugador invitado debe estar a menos de Config.InviteDistance metros — 20 por defecto —, medidos por el servidor cuando se envía la invitación.
"Wait a few seconds before inviting that player again"
Las invitaciones están limitadas a una cada tres segundos por remitente y una cada quince segundos por jugador invitado, y no se puede enviar una segunda invitación a un jugador mientras la primera siga sin respuesta; caduca al cabo de un minuto.
Un miembro se unió pero no recibió la ruta
Tiene que aceptar la invitación antes de que el líder empiece y no debe estar en una ruta propia. Si el líder cerró el panel antes de empezar, el equipo se disolvió: vuelve a invitarlo.
"The group is full"
Un equipo admite como máximo cuatro jugadores, líder incluido, o menos si Config.MaxPartyMembers es menor.
"The group has been eliminated"
El líder salió, abandonó o se desconectó, o este jugador fue expulsado del equipo.
Las fichas del equipo muestran iniciales en lugar de una cara
Solo se puede tomar el retrato de un jugador que esté cerca de ti. Los miembros fuera de alcance muestran sus iniciales; no pasa nada.
Botín, niveles y clasificación#
"You found something, but your inventory is full" — siempre
Busca en la consola del servidor Config.DropItems lists '…', which is not an item in your inventory. El objeto no existe en tu inventario: regístralo o cambia la entrada por un objeto que tengas.
Nadie encuentra nunca nada
Las probabilidades son porcentajes por bolsa, y los valores por defecto son bajos a propósito: 5, 3 y 1. Sube chance en Config.DropItems.
La clasificación está vacía o falta un jugador
La clasificación se actualiza cada Config.UpdateLeaderboard minutos, y una pestaña solo muestra a los jugadores con experiencia en ese periodo. Los nombres se leen de la tabla users en ESX y de players.charinfo en QBCore; se omite una fila cuyo personaje ya no existe.
No llegó un premio diario o de temporada
Los premios van a los tres primeros por experiencia — no por ganancias — a las 00:00 del reloj del servidor, que puede no coincidir con la zona horaria de los jugadores. A un ganador que estaba desconectado se le paga la próxima vez que entre.
Falta el Housing Tour
Necesita qs-housing en ejecución con al menos un punto de vertido, y Config.HousingTask.enabled = true. Busca housing route built with … stops en la consola del servidor y asegúrate de que su taskOrder no lo use otra ruta.
Mensajes de la consola#
Mensaje | Significado |
|---|---|
| La carpeta no se llama |
| No se pudieron crear o comprobar las tablas; normalmente es oxmysql o los permisos de la base de datos. |
| No se pudo escribir el trabajo de ESX. Añádelo a mano. |
| Se actualizó una instalación anterior. Normal. |
| Primer inicio en ESX. Normal. |
| Una entrada de botín indica un objeto que tu inventario no tiene. |
| Se pidió un pago sin ninguna ruta asignada. |
| El jugador cambió de trabajo antes de devolver el camión. |
| Se inició una ruta que la configuración del servidor no tiene; normalmente, dos rutas que comparten un |
| El nombre del modelo del capataz es incorrecto. |
|
|
| El cliente recibió una ruta que no conoce; normalmente el Housing Tour antes de que llegara a ese jugador. Volver a entrar lo soluciona. |
| El Housing Tour está listo. Normal. |
| La clasificación diaria se pagó y se reinició. La de temporada muestra lo mismo con Season. Normal. |
|
|
¿Sigues atascado? Activa
Config.Debug = true, reproduce el problema y abre un ticket con la consola del servidor, una captura de pantalla de la consola F8, tu framework y su versión, y los recursos que usas para target, inventario y llaves de vehículos.



