Configuration
The config files of Advanced Garbage Job, the job lock, routes, pay, Waste Bucks, upgrades and the settings owners change most.
Advanced Garbage Job is set up in its config files. It is not in the in-game /ggsettings menu. Edit the files, then restart gg_garbagejob.
Where the settings are
| File | What it holds |
|---|---|
utility.lua | Notifications, progress bar, debug mode, and framework, inventory and target overrides |
config/shared/general.lua | The Garbage Center location, blip, worker and job lock, the payment table, the truck, the daily challenge and the shop |
config/shared/routeData.lua | Every route, its stops, group size, cooldowns and pay |
config/shared/pickupData.lua | Pickup and load times, cuts and needle pokes, what each kind of trash can give, and every trash prop |
config/shared/player_levels.lua | The 25 levels and their bonuses |
config/shared/player_upgrades.lua | The four upgrades bought with Waste Bucks |
config/shared/settings.lua | UI colour, groups, uniform, popups, split pay, daily reset time and leaderboards |
config/lang.lua | Every text players see |
core/lib/miniBridge/client.lua | Vehicle keys and fuel |
Lock the job to a job name
By default anyone can work the job. To make it a company job, set job in config/shared/general.lua:
cfg.targetSettings = {
["garbage"] = {
icon = "fas fa-recycle",
distance = 2.5,
job = "garbage", -- your job name; nil lets everyone in
},
}
Only players with that job can then use the worker at the Garbage Center, so hiring and firing through your framework or business script controls who can work. The job must exist in your framework.
Routes
Every route lives in cfg.route in config/shared/routeData.lua:
{
id = "grove_st_01", -- unique id
type = 2, -- 1 or 2, see below
label = "Davis / Grove St House Cleanup",
level = 1, -- level needed to start it
cooldown = 0, -- minutes before the same player can run it again
global_cooldown = 0, -- minutes before anyone can run it again
groups = {min = 1, max = 4}, -- group size
rewards = {
money = 425,
experience = 560,
shop_currency = 325, -- Waste Bucks
},
route_stages = {
{ coord = vector3(11.27, -1862.36, 23.82), radius = 100.0, trash_collect = 10 },
-- more stages
}
},
There are two kinds of route:
type | How a stage works | A stage looks like |
|---|---|---|
1 | The job places the trash at each stop. Players collect every piece | A list of { coord = vector4(...), prop_data = cfg.pickups.props['prop_rub_binbag_05'] } |
2 | Players collect trash_collect pieces of any trash prop inside radius metres of coord | { coord = vector3(...), radius = 100.0, trash_collect = 10 } |
For type 1, prop_data must name a prop in cfg.pickups.props in pickupData.lua. Props marked "BREAKS ON IMPACT" there are not for type 1 routes. Give every new route its own id.
Pay and Waste Bucks
When the route's last stop is cleared, each player's share of money, experience and shop_currency goes to the payment table at the Garbage Center. With defaults.split_pay on, all three are split across the group. Players pick it up with Collect Payment; money is paid in cash. The level bonus and the Waste Bucks Boost upgrade are added on top.
Waste Bucks pay for the upgrades and the shop:
| Upgrade | Unlocks at level | What it does |
|---|---|---|
| Waste Bucks Boost | 1 | Up to +100% Waste Bucks, over 25 stages |
| Trash Pickup Efficiency | 3 | Cuts the pickup time, by up to 100% at the last stage |
| Trash Loading Efficiency | 5 | Cuts the loading time, by up to 100% at the last stage |
| Reinforced Work Gloves | 7 | Lowers the chance of cuts and needle pokes, down to none at the last stage |
Set enabled = false on an upgrade to remove it. Each stage's level, bonus and cost can be changed in player_upgrades.lua.
Reward items
| Where | Setting | Items |
|---|---|---|
| Finds in the trash | cfg.pickups.rewards in pickupData.lua | copper, rubber, iron, metalscrap, plastic, glass and, rarely, weapon_knife |
| Shop | cfg.shopItems in general.lua | plastic, glass, copper, rubber, metalscrap, iron, steel |
| Daily reward | cfg.DailyBonusChallenge.items in general.lua | Plastic, Glass, Copper, with capital letters |
Item names are case sensitive in most inventories. Change each item to the exact name your inventory uses, or remove the line. Remove the weapon_knife line if you do not want players to find knives.
Settings owners change
| Setting | File | What it does | Default |
|---|---|---|---|
cfg.npcLocations[1].coords | general.lua | Where the worker stands | vector4(-349.7, -1569.83, 25.22, 305.81) |
rentalSpawn | general.lua | Where garbage trucks spawn | 14 spots at the Garbage Center |
cfg.tableData | general.lua | The payment table and its cash props | Next to the worker |
cfg.TrashVehicle.vehicle | general.lua | The garbage truck | "trash" |
cfg.TrashVehicle.spawn_in_vehicle | general.lua | Puts the player in the truck when it spawns | false |
cfg.DailyBonusChallenge | general.lua | Routes needed for the daily reward, and the reward | 5 routes: $1,000, 1,250 XP, 1,000 Waste Bucks and 10 to 20 Plastic, Glass or Copper |
cfg.shopItems | general.lua | Shop items, unlock level and Waste Bucks price | Seven materials, 25 to 60 Waste Bucks |
cfg.levels | player_levels.lua | XP needed for each level and its money and XP bonus | 25 levels, up to +50% money and +100% XP |
cfg.pickups.timeouts | pickupData.lua | Milliseconds to pick up and to load a piece of trash | 2000 each |
cfg.pickups.affects | pickupData.lua | Chance and damage of cut hands and needle pokes | 10% each |
general.clothing_enabled | settings.lua | Adds Swap Uniform at the worker | true |
general.group_keys | settings.lua | Every group member gets the truck keys | true |
general.currency_type | settings.lua | Currency shown in the menu | "USD" |
defaults.prop_render | settings.lua | Distance in metres at which route trash appears | 50.0 |
defaults.split_pay | settings.lua | Splits route pay across the group | true |
reset_time | settings.lua | When the daily challenge resets, and the time zone | "00:00", "GMT" |
leaderboards.total_requests | settings.lua | Players shown on each leaderboard | 250 |
utility.lua
| Setting | What it does | Default |
|---|---|---|
notifications | Notification style: ox, qb or esx | "ox" |
ProgressBar | Progress bar style: ox, qb or esx | "ox" |
framework | Forces a framework: qbx_core, qb-core or es_extended. Leave blank to detect | "" |
inventory | Forces an inventory by its resource name. Leave blank to detect | "" |
target | Forces ox_target or qb-target. Leave blank to detect | "" |
debugMode | Prints debug lines in the console | false |
Vehicle keys and fuel
The job gives keys and sets fuel through core/lib/miniBridge/client.lua. It uses the first key script it finds started, in this order: bhd_garage, brutal_keys, cd_garage, F_RealCarKeysSystem, mk_vehiclekeys, mono_carkeys, MrNewbVehicleKeys, 0r-vehiclekeys, p_carkeys, Renewed-Vehiclekeys, qb-vehiclekeys, qbx_vehiclekeys, qs-vehiclekeys, tgiann-hotwire, vehicles_keys, wasabi_carlock.
Fuel works with bigDaddy-Fuel, cdn-fuel, esx-sna-fuel, frkn-fuelstationv4, lc_fuel, LegacyFuel, okokGasStation, ox_fuel, ps-fuel, qb-fuel, qs-fuelstations, rcore_fuel, Renewed-Fuel, ti_fuel and x-fuel. With any other fuel script, the job sets the game's own fuel level.
