> 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/diving-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 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 end function, notifications and progress bar 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 diving 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: the player's own clothes come back at the end.
* **Lift bag prop ships inside `tw-diving`.** No separate stream resource is needed.
* **Market** shows every item on one page.
* **Crew takeover:** a member takes over the running dive when the owner drops.
* **Rejoin:** a member who drops mid-dive comes back into it.
* Many more supported inventories, key and fuel scripts (see [Overview](/scripts/diving-job.md#supported-systems-auto-detected-by-tw-lib)).

## Fixed

* Buying and selling work only at the diving NPC.
* A purchase that does not fit in the inventory gives the money back.
* The server takes the lift bag from the player when it is attached.
* A job list in `['job']` opens the menu for every listed job.
* The cooldown counts every crew member, and every member gets it.
* The dive site's loot boxes reach the whole crew again.
* Whoever reaches a dive area first spawns it for the crew.
* The reef counts only what is really down there.
* The boat stays when its driver drops.
* The earnings screen closes on **E** or after 15 seconds.
* The lift bag model is registered correctly.
* Coral, suitcase and trash prompts end with the job.
* All texts are translated in every language: Arabic, German, French, Portuguese and Russian were English copies, and blip names and the scuba notice were not translatable.
* Security: many more server-side checks on job actions and rewards.

## Removed

* `config/config.lua` and `config/locales.lua` → now `defaults/config.lua` and `defaults/locales/`.
* mysql-async / ghmattimysql support → oxmysql only.
* PolyZone requirement.
* The separate `Liftbag-model` resource: the lift bag prop is inside `tw-diving` now.

## Update

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