> For the complete documentation index, see [llms.txt](https://docs.tworst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tworst.com/scripts/garbage-job/changelog/v3.0.0.md).

# v3.0.0

{% hint style="info" %}
Version numbers jump to 3.0 so that every Tworst job on tw-lib shares the same major version.
{% endhint %}

## New

* **Runs on tw-lib** (free, required). Framework, inventory, vehicle keys, fuel and clothing are detected automatically; `Config.Framework`, `Config.Inventory` and `Config.SQL` are gone.
* **Settings survive updates.** Every changed value is saved in the database and written back after an update. Your 2.x config, coordinates and texts are imported once on the first start.
* **In-game admin menu** `/twlib`: live lobbies, money paid, players, and job settings.
* **Reward split:** the lobby owner sets each member's share of the money reward.
* **Hooks folder:** your own start/end functions and notifications in `hooks/`, never overwritten by an update.
* **One job at a time** across Tworst jobs, with an offer to leave the other job.
* **Leaderboard** and **tip cards** for each kind of work.
* **Update notice** in the server console.
* **New job menu** on the shared Tworst UI, with the garbage colours; key prompts use the shared Tworst prompt (`Config.DrawTextUI`).
* **Interaction choice once for all jobs** (`Config.InteractionHandler = 'default'`), plus `qb-target` and `auto`.
* **Job uniform** now works with any clothing script, or none, and is on by default: the player's own clothes come back at the end.
* **Random bags:** the server spreads the bags randomly around each dumpster.
* **Crew takeover:** a member takes over the running job when the owner drops.
* **Rejoin:** a member who drops mid-job comes back into it.
* Many more supported inventories, key and fuel scripts (see [Overview](/scripts/garbage-job.md#supported-systems-auto-detected-by-tw-lib)).

## Fixed

* Region names match where the dumpsters actually are.
* Level-up keeps the XP above the requirement; max-level players get the cooldown too.
* The cooldown counts every crew member, not only the owner.
* A start refused by the start hook says "wrong job", not "cooldown".
* The server counts thrown bags and emptied dumpsters; emptied dumpsters stay empty.
* The truck hood opens for everyone while a bag goes in, and the truck keeps its real plate.
* A taken bale stays in the taker's hands; a bale or bag held by a member who drops goes back to the crew.
* One crew member builds the world for the whole crew, so everyone sees the same dumpsters and bags.
* The trucks stay when their driver drops; a member leaving keeps the crew's vehicles and props.
* An accepted invite opens the menu camera only once the server has taken the player in.
* An unanswered invite no longer keeps a key thread running.
* `/jobleavegarbage` outside a lobby does nothing instead of throwing an error.
* Route, stuck bag and leftover blip problems reported by customers.
* Missing texts added in every language (bag notices fell back to Turkish); Turkish wording fixed.
* Security: the job trusts no client for regions, payouts or props.

## Removed

* `config/` and `locales/` folders → now `defaults/`.
* mysql-async / ghmattimysql support → oxmysql only.
* PolyZone requirement.

## Update

Copy the new `tw-garbagev2` over the old folder, install **tw-lib**, add `ensure tw-lib` before the job. See [Installation → Updating from 2.x](/scripts/garbage-job/installation.md#updating-from-2-x).
