El panel del trabajo#
Todo empieza en el capataz — Sal Moretti por defecto —, que está en el patio del Garbage Center bajo un marcador flotante. Pulsa E junto a él, o selecciónalo con tu target, y la cámara pasa a él mientras el panel se abre en la mitad derecha de la pantalla. Gesticula como si estuviera a mitad de una frase, y tu propio personaje se oculta del plano mientras hablas.
Parte | Para qué sirve |
|---|---|
Tarjeta del capataz | Su nombre y su saludo, de |
Missions | Cada ruta con su imagen, el nivel que necesita, el equipo recomendado, el pago, la experiencia y el número de paradas. |
Garbage Group | Tu equipo: un retrato de cada miembro, un campo para invitar a un jugador por su ID de servidor y un botón de expulsar para el líder. |
Level | Tu nivel, tu experiencia hacia el siguiente y la bonificación de nivel. |
Statistics | Las clasificaciones histórica, de temporada y diaria, los premios, los últimos ganadores y el tiempo que queda antes de cada reinicio. |
Guide | Un recorrido paso a paso del trabajo para los nuevos recolectores, con consejos. |
Pie | Start Mission — o, mientras hay una ruta en curso, Abandon mission con una confirmación. |
Cualquiera puede abrir el panel para leer la guía y las estadísticas; el trabajo se comprueba cuando se inicia una ruta. El panel también se abre completo durante una ruta, así que un equipo puede consultar las clasificaciones sin renunciar a nada.
La guía está escrita por completo en
config/translations.lua:GUIDE_INTRO,GUIDE_STEP_1aGUIDE_STEP_6yGUIDE_TIP_1aGUIDE_TIP_4. Reescríbelas para tu servidor, o elimina una clave para quitar esa línea.
Con qué se abre un servidor nuevo#
En Config.Tasks vienen siete rutas, todas con salida desde el Garbage Center, además de una octava creada a partir de tus propiedades cuando qs-housing está en ejecución:
Ruta | Nivel | Paradas | Pago | Experiencia |
|---|---|---|---|---|
Beginner Route | 1 | 20 | $400 | 300 |
Neighborhood Pickup | 2 | 9 | $600 | 500 |
Urban Collection | 3 | 9 | $600 | 500 |
Citywide Cleanup | 4 | 10 | $800 | 700 |
Industrial Route | 5 | 11 | $1,000 | 800 |
Advanced Cleanup | 6 | 12 | $1,200 | 1,100 |
Metropolitan Circuit | 6 | 13 | $1,350 | 1,200 |
Housing Tour | 1 | 10, al azar | $750 | 600 |
La mayoría de las rutas incluyen paradas extra comentadas en la configuración: descoméntalas para hacer una ruta más larga. El pago y la experiencia son por recolector con el modo de pago por defecto; consulta Cómo se paga a un equipo más abajo.
Hacer una ruta#
Inicia la misión
Elige una ruta y pulsa Start Mission. El servidor comprueba el trabajo y el nivel de cada miembro del equipo, y que nadie esté ya en una ruta. Después se aparca un camión en la primera plaza libre del patio, se entregan sus llaves, el equipo se pone la ropa de trabajo y se abre el seguimiento de la ruta.
Conduce hasta la parada
La parada actual es un blip con una ruta de GPS. El seguimiento cuenta las paradas hechas sobre el total de la ruta.
Saca las bolsas
Cada contenedor tiene un número aleatorio de bolsas — de 1 a 3 por defecto, definido por
Config.GarbageBagsRequired. PulsaEen el contenedor para sacar una; el aviso muestra cuántas has sacado y cuántas hay.Lánzalas al camión
Lleva la bolsa a la parte trasera del camión y pulsa
E. Cada bolsa lanzada es una tirada de botín. Cuando la última bolsa del contenedor está dentro, la parada queda hecha y el GPS avanza, salvo que el contenedor haya quedado sucio y haya que limpiarlo antes.Devuelve el camión
Tras la última parada, el GPS te lleva de vuelta al depósito,
Config.DeliverTruckCoords. PulsaEallí: se recoge el camión, te quitas la ropa de trabajo y se paga la ruta.
Tecla | Qué hace |
|---|---|
| Hablar con el capataz, sacar una bolsa, lanzarla al camión, empezar a limpiar un contenedor, devolver el camión. Cámbiala con |
| Pasar el trapo en el minijuego de limpieza. |
| Abandonar el minijuego de limpieza. El contenedor sigue sucio. |
Con Config.Target = true las mismas acciones pasan a ser opciones de target — en el capataz, en el contenedor, en el camión y en un contenedor sucio — en lugar de pulsaciones de tecla. La entrega en el depósito siempre es una pulsación de tecla.
La recompensa se paga con el camión, no parada a parada. Abandonar desde el panel, perder el trabajo a mitad de ruta o desconectarse termina la ruta sin pagar nada, y el camión se elimina. Una ruta solo se paga cuando el servidor ha visto completadas todas sus paradas y el camión de vuelta en el depósito.
El minijuego de limpieza#
Después de vaciar un contenedor hay un Config.CleanDumpsterChance por ciento de probabilidad — 20 por defecto — de que haya quedado sucio. La ruta lo espera: vuelve al contenedor y pulsa E, y la cámara se acerca mientras el personaje lo rocía. Mantén pulsado el clic izquierdo y pasa el trapo por el contenedor hasta quitar suficiente suciedad. Las manchas incrustadas son más oscuras y necesitan varias pasadas.
Config.CleanDumpsterChance = 20 -- % chance a container needs cleaning
Config.CleanDumpster = {
duration = 45000, -- time limit in ms; running out means a retry
threshold = 0.90, -- share of the grime that must come off (0-1)
patches = 5, -- caked-on patches that need several passes
bonusExperience = 15, -- XP for a cleaned container, 0 disables it
}Quedarse sin tiempo, o pulsar ESC, deja el contenedor sucio y la ruta donde estaba: vuelve y límpialo de nuevo. Un contenedor limpio paga su bonificación una vez, al recolector que lo limpió. Establece Config.CleanDumpsterChance = 0 para desactivar el minijuego.
Config.Particles controla los chorros de agua que salen del contenedor mientras se frota — el efecto, cuántos, con qué frecuencia, su tamaño y dónde caen. Son solo estéticos: Enabled = false los elimina y no cambia nada más.
Botín#
Cada bolsa lanzada al camión es una tirada de Config.DropItems. Cada entrada se tira por separado, así que una bolsa con suerte puede dar más de un objeto.
Campo | Significado |
|---|---|
| El objeto, exactamente como lo nombra tu inventario. |
| Probabilidad en porcentaje por bolsa, de 0 a 100. |
| Cuántos se entregan cuando sale, elegidos al azar en ese rango. |
La tirada se hace en el servidor — el cliente del jugador solo informa de que se lanzó una bolsa — y solo cuenta desde la parada en la que se trabaja, con unos segundos de separación, y nunca más veces de las bolsas que tiene la ruta. A un jugador con el inventario lleno se le dice que encontró algo para lo que no tenía espacio, y el objeto se pierde.
Equipos#
Una ruta se puede hacer en solitario o con un equipo de hasta cuatro, líder incluido. Config.MaxPartyMembers define el número de huecos que dibuja el panel: redúcelo para equipos más pequeños; cuatro es el máximo que acepta el servidor.
Paso | Cómo funciona |
|---|---|
Invitar | En la tarjeta Garbage Group, escribe el ID de servidor del otro jugador y pulsa Invite. Debe estar a menos de |
Liderar | El jugador que invita es el líder. Solo el líder inicia una ruta — para todo el equipo — y solo el líder devuelve el camión. Cada miembro debe tener el trabajo y el nivel de la ruta. |
Trabajar | Todo el equipo va en el camión del líder y recibe la ruta, el seguimiento y la ropa. Cada miembro trabaja cada parada por su cuenta: sus propias bolsas, su propio progreso y su propio pago. |
Entregar | Cuando el líder devuelve el camión, la ruta termina para todos a la vez y cada miembro que completó todas sus paradas cobra, esté donde esté. |
Expulsar | El líder puede expulsar a un miembro desde el panel, y la ruta de ese miembro termina. Si el líder abandona, la ruta termina para todo el equipo. Cerrar el panel antes de que empiece una ruta disuelve el equipo que había formado el líder. |
Cómo se paga a un equipo#
Config.MissionPayout | Lo que recibe cada miembro |
|---|---|
| El dinero y la experiencia completos de la ruta, cada uno. Un equipo de cuatro en una ruta de $1,000 le cuesta al servidor $4,000. |
| El dinero y la experiencia repartidos entre los miembros que siguen en el equipo cuando se paga la ruta. Las partes se redondean hacia abajo y nunca bajan de 1. |
Lo que una ruta exige a cada recolector no cambia con el tamaño del equipo, así que 'members' es la opción generosa. Es la opción por defecto para que actualizar no altere la economía de un servidor existente.
Con qs-party en ejecución, un equipo también puede venir de tu sistema de grupos — consulta Integraciones.
Niveles y experiencia#
La experiencia se obtiene al terminar rutas y al limpiar contenedores. La cantidad necesaria para cada nivel crece un GrowthFactor en cada nivel, así que la subida de nivel no tiene tope:
Config.LevelExperience = {
BaseExperience = 1000, -- experience to clear level 1
GrowthFactor = 1.1, -- each level needs 10% more than the last
TipPerLevel = 0.01, -- level bonus shown on the panel (1% per level)
}
-- experience to clear level N = BaseExperience * GrowthFactor ^ (N - 1)Nivel | Experiencia para superarlo | Experiencia total para alcanzarlo |
|---|---|---|
1 | 1,000 | 0 |
2 | 1,100 | 1,000 |
3 | 1,210 | 2,100 |
4 | 1,331 | 3,310 |
5 | 1,464 | 4,641 |
6 | 1,610 | 6,105 |
Cada ruta tiene un levelRequired. El panel lo muestra en la tarjeta, y el servidor lo comprueba con cada miembro del equipo cuando se inicia la ruta. Una subida de nivel se anuncia en el momento en que ocurre, y la barra de experiencia del panel la sigue en directo.
La clasificación#
El botón Statistics abre tres clasificaciones, cada una ordenada por experiencia con las ganancias al lado, un cuadro de búsqueda y tu propia fila resaltada:
Pestaña | Ordena por | Se reinicia y paga |
|---|---|---|
All-Time Garbage | Experiencia total | Nunca |
Top Garbage Season | Experiencia de este mes | 00:00 hora del servidor el día 1 de cada mes |
Top Garbage Daily | Experiencia de hoy | 00:00 hora del servidor, cada día |
En cada reinicio, los tres primeros cobran en efectivo de Config.LeaderBoardRewards y se muestran como los últimos ganadores, con una cuenta atrás hasta el siguiente reinicio. Un ganador que está desconectado cobra en cuanto vuelve a entrar, y un reinicio que el servidor se perdió por estar apagado se recupera en su siguiente inicio.
Config.EnableLeaderboard = true -- false hides the Statistics button
Config.UpdateLeaderboard = 10 -- minutes between refreshes of the rankings (1-59)
Config.LeaderBoardRewards = {
Daily = { [1] = 500, [2] = 350, [3] = 200 },
Season = { [1] = 5000, [2] = 3500, [3] = 2000 },
}En una pestaña solo aparecen los jugadores con experiencia en ese periodo, con el nombre de su personaje. Las clasificaciones se actualizan con un temporizador, así que una ruta recién terminada puede tardar hasta Config.UpdateLeaderboard minutos en aparecer.
El Housing Tour#
Con qs-housing en ejecución, aparece una ruta extra en el panel: el Housing Tour, cuyas paradas se eligen al azar entre las propiedades que conoce qs-housing. Se crea cuando se inicia cualquiera de los dos recursos, y el mismo recorrido vale para todos hasta el siguiente reinicio.
Config.HousingTask = {
enabled = true, -- needs qs-housing running
taskOrder = 8, -- unique, higher than every route in Config.Tasks
name = "Housing Tour",
img = "garbage_2.png",
description = "Collect garbage from residential housing areas across the city.",
recommendedPlayers = { 1, 4 },
levelRequired = 1,
experience = 600,
money = 750,
spotsCount = 10, -- how many random properties to visit
}Establece enabled = false para mantenerlo fuera del panel aunque qs-housing esté instalado.
Añadir y editar rutas#
Cada ruta es una entrada en Config.Tasks. Copia una existente, dale un nuevo taskOrder y enumera sus paradas:
{
taskOrder = 9, -- unique, never reused
name = "Vinewood Hills Run",
img = "garbage_3.png",
description = "Winding roads and wealthy bins.",
recommendedPlayers = { 2, 4 },
levelRequired = 7,
experience = 1400,
money = 1600,
route = {
[1] = vector3(-1027.25, 359.83, 71.36),
[2] = vector3(-1092.04, 437.55, 75.23),
[3] = vector3(-1222.67, 456.12, 91.74),
},
},Campo | Qué es |
|---|---|
| El id de la ruta. El servidor busca la recompensa por él cuando vuelve el camión, así que debe ser único: nunca des el mismo a dos rutas. |
| Lo que dice la tarjeta de la misión. |
| La imagen de la tarjeta: |
| El tamaño del equipo que se muestra en la tarjeta, |
| El nivel que necesita cada miembro del equipo. |
| La recompensa por recolector, o el bote que se reparte con |
| Las paradas, servidas de una en una en el orden indicado. Cada una es un |
El camión, el depósito y la ropa#
El camión#
Config.VehicleModel — trash2, el Trashmaster — se aparca en la primera plaza de Config.VehicleSpawnCoords que no tenga ningún vehículo a menos de cuatro metros y medio. Cuando todas las plazas están ocupadas, el inicio se rechaza con Parking lot is full, así que añade plazas en un servidor concurrido. Config.SpawnInsideVehicle = true sienta al líder directamente al volante, y Config.Fuel llena el depósito. El camión pertenece a la ruta: se elimina cuando la ruta se entrega o se abandona.
El depósito y el mapa#
Ajuste | Qué coloca |
|---|---|
| El capataz: posición y orientación como un |
| Las plazas de aparcamiento del camión, tantas como quieras. |
| Donde se devuelve el camión. El aviso se muestra a menos de cinco metros. |
| El blip del Garbage Center: texto, sprite, tamaño y color. |
| El blip de la parada actual. |
| El marcador que flota sobre el capataz: forma, color, tamaño, altura, a qué distancia se muestra y un suave balanceo. |
La ropa de trabajo#
Al iniciar una ruta, el equipo se viste con la ropa de trabajo; al terminarla o abandonarla, recupera su propia ropa. La ropa se define al principio de client/clothing.lua, una para personajes masculinos y otra para femeninos, con los números habituales de componentes de ropa:
local playerClothing = {
male = {
["arms"] = 63,
["tshirt_1"] = 59, ["tshirt_2"] = 0,
["torso_1"] = 56, ["torso_2"] = 0,
["pants_1"] = 36, ["pants_2"] = 0,
["shoes_1"] = 25, ["shoes_2"] = 0,
["helmet_1"] = 58, ["helmet_2"] = 1,
},
female = { ... },
}Config.Clothing = false omite solo la ropa; entrar y salir de servicio funciona igual.
Avisos, nombres y dinero#
Ajuste | Qué cambia |
|---|---|
|
|
| El nombre que se muestra para los miembros del equipo: |
|
|
| Las notificaciones propias del script, o las tuyas — consulta Integraciones. |
Cómo se mantienen honestas las rutas#
Todo lo que paga se decide en el servidor, a partir de sus propios registros: un cliente modificado no puede cambiar lo que paga el trabajo ni reclamar una ruta que no hizo:
Comprobación | Qué evita |
|---|---|
Las paradas se cuentan en el servidor de una en una, en orden, y solo desde cerca de esa parada. | Reclamar una ruta sin conducirla. |
El camión tiene que estar de vuelta en el depósito cuando se paga la ruta. | Cobrar una ruta desde cualquier punto del mapa. |
La recompensa se lee de la copia que tiene el servidor de la ruta que asignó. | Que un cliente indique su propio pago o experiencia. |
El trabajo se vuelve a comprobar cuando se paga la ruta. | Tomar una ruta, cambiar de trabajo y cobrar por ambos. |
El botín se tira en el servidor, desde la parada en la que se trabaja, con un tiempo de espera y un límite por ruta. | Farmear objetos. |
La bonificación de limpieza se paga una vez por parada, en esa parada. | Farmear experiencia — y con ella los premios de la clasificación. |
Solo el líder del equipo inicia o termina una ruta, y las invitaciones tienen un límite de frecuencia por remitente y por jugador invitado. | Meter a desconocidos en una ruta, o llenar la pantalla de alguien de invitaciones. |
También es por eso que una ruta que no se terminó de verdad no paga nada: cuando eso ocurre, Errores comunes explica qué comprobación falló.



