> 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/getting-started-installation/scripts/plumber-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 1.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, notifications and vehicle removal hook 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** at the start and for each kind of work.
* **Update notice** in the server console.
* **New job menu** on the shared Tworst UI, with the plumber colours.
* **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.
* **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](/getting-started-installation/scripts/plumber-job.md#supported-systems-auto-detected-by-tw-lib)).

## Fixed

* 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 pipe counter no longer races between players; minigames unlock on a reset.
* Pipe and valve prompts only show within 3 m of their target.
* The whole crew sees the same world; the player who builds it keeps it until they leave.
* The van can be used by crew members who are out of range; the driver hands it in with the prompt card.
* A member who drops or leaves lets go of the pipe or minigame they had open; a member leaving keeps the crew's vehicles and props.
* The vans stay when their driver drops.
* 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; declining an invite clears it on the server.
* The invite box sits top right, as in the other jobs.
* `/jobleaveplumber` outside a lobby does nothing instead of throwing an error.
* The switch minigame's texts and blip names come from the locales; Turkish texts fixed.
* Security: many more server-side checks on job actions and rewards.

## Removed

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

## Update

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