Antes de empezar#
Antes de instalar Garbage Job, asegúrate de que tu servidor cumple los requisitos. Tres cosas son obligatorias: la base de datos, ox_lib y un framework. Todo lo demás es opcional, y se detecta por sí solo o se activa en la configuración.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos. Las tablas se instalan solas. |
| Obligatorio | Callbacks, el diálogo de invitación y los reinicios programados de la clasificación. |
Framework | Obligatorio |
|
Target | Opcional |
|
Llaves de vehículos | Opcional | Entrega al conductor las llaves del camión del trabajo. Se admiten nueve recursos de llaves, que se detectan solos. |
Inventario | Opcional |
|
Combustible | Opcional | Llena el depósito del camión cuando aparece. |
Complementos de Quasar | Opcional |
|
Algunas capas se eligen según lo que ya está en ejecución; las demás son una línea en config/config.lua:
Capa | Cómo se elige |
|---|---|
Framework | Detectado: |
Llaves de vehículos | Detectado entre los recursos en ejecución; |
Inventario | Detectado: |
Target | Manual: |
Combustible | Manual: |
Grupo, housing, text UI, pagos del trabajo | Detectado: se usa siempre que ese recurso esté iniciado. |
Cada integración opcional se hace a un lado discretamente cuando falta su recurso. Integraciones tiene los detalles de cada una.
github.comReleases · overextended/oxmysqlMySQL resource for FXServer.github.comReleases · overextended/ox_libA FiveM resource and script library for Lua and JS.Descargar Garbage Job#
Tras comprar Garbage Job, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en CFX Portal con la misma cuenta usada al finalizar la compra, abre Granted Assets y descarga Garbage Job.
Tras extraer la descarga, deberías tener la carpeta del recurso y una carpeta SQL opcional:
qs-garbagejob/
├── config/
│ ├── config.lua -- every setting, the routes included
│ └── translations.lua -- the language and all nine translations
├── client/
│ ├── clothing.lua -- the work outfit (editable)
│ ├── target.lua -- target options (editable)
│ ├── framework/ -- ESX and QBCore bridges (editable)
│ └── vehiclekeys/ -- one file per keys resource (editable)
├── server/
│ ├── framework/ -- ESX, QBCore and inventory bridges (editable)
│ └── missions.lua -- the qs-inventory quest (editable)
├── web/build/ -- the interface, already built
└── fxmanifest.lua
[sql]/
└── qs-garbagejob.sql -- optional, see The DatabaseInstalar el recurso#
Mueve la carpeta qs-garbagejob al directorio resources de tu servidor. Puede estar en cualquier parte dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── qs-garbagejob/Una vez copiada, abre tu server.cfg y asegúrate de que todas las dependencias — y todo lo que deba detectar — se inicien antes de Garbage Job:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional: target, inventory, keys, fuel
ensure ox_target
ensure ox_inventory
ensure qs-vehiclekeys
ensure LegacyFuel
# Optional: Quasar add-ons
# ensure qs-party
# ensure qs-housing
# ensure qs-textui
ensure qs-garbagejobEl orden de carga importa. El framework se detecta una vez, cuando se inicia el recurso, así que un framework que se inicia después de Garbage Job no se encuentra y el trabajo nunca aparece. qs-housing es la única excepción: el Housing Tour se reconstruye cada vez que se inicia cualquiera de los dos, así que funciona en cualquier orden.
La base de datos#
No hay ningún archivo SQL que tengas que importar. Garbage Job crea sus propias tablas en su primer inicio y, en cada inicio posterior, las comprueba y añade cualquier columna que le falte a una instalación antigua.
Tabla | Contiene |
|---|---|
| El nivel y la experiencia de cada jugador, además de la experiencia y las ganancias históricas, de temporada y diarias que ordena la clasificación. |
| Cuándo se reiniciaron por última vez las clasificaciones diaria y de temporada, para que el mismo día nunca se pague dos veces. |
| Premios de la clasificación ganados por un jugador que estaba desconectado en el reinicio, pagados la próxima vez que entre. |
| Los últimos ganadores diarios y de temporada que se muestran en la pestaña Statistics. |
En ESX ese mismo primer inicio también registra el trabajo: una fila garbage_collector en jobs y su grado 0 (Novice) en job_grades, cada uno solo cuando aún no existe. QBCore y Qbox guardan sus trabajos en un archivo Lua, así que ese paso te corresponde a ti — consulta más abajo.
El archivo
[sql]/qs-garbagejob.sqlhace exactamente lo mismo que el primer inicio, y solo está ahí si prefieres preparar la base de datos a mano. Cada sentencia que contiene es unCREATE TABLE IF NOT EXISTSo unINSERT IGNORE, así que importarlo no cambia nada en un servidor que ya ha iniciado el recurso. Sus dos sentencias de trabajo son solo para ESX.
Registrar el trabajo#
Por defecto, solo los jugadores con el trabajo garbage_collector pueden iniciar una ruta. Cualquiera puede abrir el panel para leer la guía y las estadísticas: el trabajo se comprueba cuando empieza una ruta, se vuelve a comprobar para cada miembro del equipo y se comprueba una última vez cuando se paga la ruta.
No hay nada que hacer. El primer inicio escribe el trabajo y su grado en tu base de datos e imprime Registered the ESX job "garbage_collector" en la consola. Asígnalo desde tu centro de empleo o con tu comando de administración:
/setjob <id> garbage_collector 0Añade el trabajo a qb-core/shared/jobs.lua y reinicia el servidor:
['garbage_collector'] = {
label = 'Garbage Collector',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Novice', payment = 10 },
},
},Añade el trabajo a qbx_core/shared/jobs.lua y reinicia el servidor. Qbox numera sus grados en lugar de ponerlos entre comillas:
['garbage_collector'] = {
label = 'Garbage Collector',
defaultDuty = true,
offDutyPay = false,
grades = {
[0] = { name = 'Novice', payment = 10 },
},
},Para usar un trabajo que ya tienes — QBCore incluye uno llamado garbage, por ejemplo —, inclúyelo en Config.GarbageCollectorJob. Se pueden permitir varios trabajos a la vez:
Config.RequireJob = true
Config.GarbageCollectorJob = {
['garbage_collector'] = true,
['garbage'] = true,
}Los objetos del botín#
Cada bolsa lanzada al camión tira Config.DropItems. Los valores por defecto entregan bread, gold y diamond, así que esos objetos tienen que existir en tu inventario — o sustituirse por objetos que sí existan:
Config.DropItems = {
{ name = "bread", chance = 5, minAmount = 1, maxAmount = 3 }, -- 5% per bag, 1 to 3 units
{ name = "gold", chance = 3, minAmount = 1, maxAmount = 2 },
{ name = "diamond", chance = 1, minAmount = 1, maxAmount = 1 },
}Un objeto que tu inventario no conoce no se entrega, se le dice al jugador que su hallazgo no cabría, y la consola del servidor indica la entrada incorrecta — una vez por reinicio, no una vez por bolsa:
[qs-garbagejob] Config.DropItems lists 'diamond', which is not an item in your inventory. Nothing was given.Establece Config.DropItems = {} para desactivar el botín por completo.
Configurar el recurso#
Todo lo que configuras está en archivos simples y sin cifrar. config/config.lua está dividido en secciones numeradas, y casi todo lo que querrás cambiar está en las secciones 1, 3 y 6:
Archivo / sección | Contenido |
|---|---|
1. General | Quién puede trabajar, target o pulsación de tecla, avisos, la tecla de interacción, el alcance de invitación, los nombres de los jugadores, la tarjeta del capataz, las notificaciones, el símbolo de moneda, el cambio de ropa, el modelo del camión y el combustible. |
2. Mundo | Los blips, el NPC, las plazas de aparcamiento del camión y el depósito donde se devuelve el camión. |
3. Ruta | Bolsas por contenedor, la tabla de botín, el minijuego de limpieza y sus partículas de agua. |
4. Niveles | La curva de experiencia y el tamaño del equipo. |
5. Misiones | Las rutas que eligen los jugadores y el Housing Tour opcional. |
6. Clasificación | La frecuencia de actualización y los premios diarios y de temporada. |
7. Marcador | El marcador flotante sobre el NPC. |
8. Depuración, webhooks, pago | El rastreo en consola, los webhooks de Discord y cómo se paga a un equipo ( |
| El idioma y cada línea de texto, en nueve idiomas. |
| La ropa de trabajo, una para personajes masculinos y otra para femeninos. |
Los valores que conviene revisar primero:
Config.RequireJob = true -- false: anyone can work a route
Config.Target = false -- true: use a target resource instead of keys
Config.TargetScript = "ox" -- "ox" or "qb"
Config.InteractKey = 38 -- E
Config.VehicleModel = "trash2" -- the job truck
Config.Fuel = false -- true: fill the tank on spawn
Config.Clothing = true -- put the crew in the work outfit
Config.MaxPartyMembers = 4 -- crew size, leader included
Config.MissionPayout = 'members' -- or 'split'
Config.Debug = false
-- config/translations.lua
Config.Language = "en" -- en · es · fr · de · pt · it · ru · tr · cnLos cambios de configuración se aplican tras reiniciar el recurso. Reinícialo cuando nadie esté haciendo una ruta: una ruta en curso cuando el recurso se detiene se pierde, y su equipo no cobra por ella.
Actualizar desde una versión anterior#
Detén el servidor, sustituye la carpeta qs-garbagejob por la nueva y copia tus propios valores en los nuevos config/config.lua y config/translations.lua en lugar de volver a poner los archivos antiguos: las nuevas versiones añaden ajustes y claves de traducción, y un archivo antiguo hace que falten.
Conserva tu base de datos. Al iniciarse, el recurso lee las columnas de qs_garbagejob y añade las columnas de clasificación que una instalación 1.x nunca tuvo, una línea de consola por columna. Los niveles y la experiencia se mantienen intactos.
[qs-garbagejob] Added missing column qs_garbagejob.total_experience
[qs-garbagejob] Added missing column qs_garbagejob.season_experienceVerificar la instalación#
Reinicia tu servidor y lee la consola. Garbage Job no muestra nada cuando todo está bien; las líneas que puedes ver en un primer inicio son estas:
[qs-garbagejob] Registered the ESX job "garbage_collector" # ESX, first start only
[qs-garbagejob] housing route built with 10 stops. # only with qs-housing runningSi en cambio aparece una línea roja — no se pudo verificar el esquema de la base de datos, o se renombró el script —, se trata en Errores comunes. Después, asígnate el trabajo, entra al servidor y completa el primer ciclo:
Visita el Garbage Center
El blip de Garbage Center marca el depósito. El capataz está en el patio bajo un marcador flotante: pulsa
Ejunto a él, o usa tu target, y se abre el panel del trabajo.Inicia la Beginner Route
Elige Beginner Route y pulsa Start Mission. Te pones la ropa de trabajo, se aparca un camión en el patio con tus llaves y la primera parada aparece en tu GPS.
Trabaja una parada
Acércate al contenedor y pulsa
Epara sacar una bolsa, llévala a la parte trasera del camión y pulsaEpara lanzarla dentro. Repite hasta que el contador esté lleno, y el GPS pasará a la siguiente parada.Devuelve el camión
Tras la última parada, el GPS te lleva de vuelta al depósito. Pulsa
Een el punto de entrega para devolver el camión y cobrar. Uso cubre todo lo que hay entre medias.
No hace falta tocar nada más en la base de datos. Las rutas, el pago, los niveles, los premios y el botín están en
config/config.lua.



