> 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.md).

# Multiplayer Diving Job

## Overview

**TW Diving Job** is a multiplayer underwater job: take the boat out to a dive site, collect corals, clean the sea floor, open sunken suitcases and raise treasure boxes with a lift bag. Work alone or as a crew of up to 4 players, share the pay and level up your diving career.

{% hint style="success" %}
**Version 3.0** runs on **tw-lib**, the free Tworst library. Framework, inventory, vehicle keys, fuel and clothing are detected automatically, and your settings are kept in the database, so **an update never resets your economy, language or settings again.**
{% endhint %}

***

## Features

### Core Features

* **Multiplayer Crew** - Up to 4 players in one lobby; invite nearby players from the job menu
* **Diving Boat** - The crew's boat spawns at the harbour of the chosen dive site
* **Anchor** - Drop the anchor at the site so the boat stays put (default key **H**)
* **Scuba Gear** - Three oxygen tube levels and a mask; the higher the level, the longer you stay down
* **Coral Collection** - Harvest overgrown corals
* **Sea Cleaning** - Pick up tyres and rubbish from the sea floor
* **Suitcases** - Cut sunken suitcases open with a knife and loot them
* **Treasure Boxes** - Attach a lift bag to a box and raise it to the surface

### Additional Features

* **Reward Split** - The lobby owner decides each member's share of the money reward
* **Level & XP System** - 70 levels, dive sites can require a minimum level
* **4 Dive Sites** - Paleto Bay, Port of Los Santos, East Coast and North Coast
* **Daily Missions** - Daily tasks with extra money and XP
* **Leaderboard** - Top players of the job
* **Diving Market** - Buy gear and sell your finds at the diving NPC
* **Random Loot** - Corals, suitcases and boxes drop items by chance (common, rare, legendary)
* **Reconnect & Restart Safe** - A player who disconnects gets their seat back, and a member takes over the dive if the owner drops
* **One Job at a Time** - A player working another Tworst job is offered to leave it first
* **Tip Cards** - Hint cards at the start and for each kind of work
* **Admin Menu** - `/twlib`: live lobbies, money paid, players and job settings in one menu
* **Update Notice** - The server console tells you when a new version is out
* **7 Languages** - English, Turkish, German, French, Portuguese, Russian, Arabic

***

## How It Works

### Step 1: Start a Lobby

Go to the diving NPC at Paleto Bay and open the job menu. Pick a dive site, invite players nearby (optional) and start.

### Step 2: Get Your Gear

Buy what you need from the diving market at the NPC:

* **Scuba Mask** - $700
* **Scuba Tube** - Level 1: $500, Level 2: $1,000, Level 3: $1,500
* **Lift Bag** - $200 (for treasure boxes)
* **Knife** - $500 (for suitcases)

### Step 3: Sail Out

Take the boat to the dive site and drop the anchor with **H** (or `/anchor`).

### Step 4: Dive & Work

1. **Corals** - Collect the overgrown corals
2. **Sea Clean** - Pick up the rubbish on the sea floor
3. **Suitcases** - Cut them open with the knife and loot them
4. **Boxes** - Attach a lift bag and raise the box (only on the sites that have boxes)

Keep an eye on your oxygen. When it runs out, the gear comes off.

### Step 5: Get Paid

Deliver the boat back to finish. The crew is paid (split by the owner if enabled), and the corals and treasures can be sold at the diving market.

***

## Requirements

| Resource                        | Required | Notes                                                                                                      |
| ------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------- |
| [**tw-lib**](/tw-lib/tw-lib.md) | ✅ Yes    | Free. [Download](https://github.com/Tworst-Shop/tw-lib/releases/latest) or from your Cfx.re Granted Assets |
| **oxmysql**                     | ✅ Yes    | Database                                                                                                   |
| Framework                       | Optional | QBCore, QBox, ESX, TMC, vRP, or none (standalone)                                                          |

{% hint style="info" %}
There is **no separate stream folder** for diving. The lift bag prop ships inside `tw-diving` itself.
{% endhint %}

### Optional

| Resource               | Purpose                                         |
| ---------------------- | ----------------------------------------------- |
| ox\_target / qb-target | Target interaction instead of the Tworst prompt |
| Vehicle keys script    | Keys for the boat (detected automatically)      |
| Fuel script            | Full tank on the boat (detected automatically)  |
| Clothing script        | Job uniform on and off (works without one too)  |

{% hint style="info" %}
PolyZone and ox\_lib are **not** required by the script. If you use qb-target, it needs its own dependencies as usual.
{% endhint %}

***

## Supported Systems (Auto-detected by tw-lib)

Nothing to set in the config: tw-lib finds what runs on your server and prints it on start:

```
[tw-lib] 1.0.0 | framework=qb | inventory=ox_inventory | keys=qs-vehiclekeys | fuel=LegacyFuel | clothing=illenium-appearance
```

| System       | Supported                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Framework    | qbx\_core, qb-core, es\_extended, TMC, vRP, standalone                                                                                                                                                                                                                                                                                                                                          |
| Inventory    | ox\_inventory, qs-inventory, qs-inventory-pro, codem-inventory, codem-inventoryv2, tgiann-inventory, origen\_inventory, ak47\_qb\_inventory, ak47\_inventory, core\_inventory, jaksam\_inventory, one\_inventory, and the framework's own inventory (qb-inventory, ps-inventory, ESX)                                                                                                           |
| Vehicle keys | qbx\_vehiclekeys, qb-vehiclekeys, qs-vehiclekeys, wasabi\_carlock, MrNewbVehicleKeys, jc\_vehiclekeys, Renewed-Vehiclekeys, Jaksam vehicles\_keys, tgiann-hotwire, 0r-vehiclekeys, LifeSaver\_KeySystem, ak47 keys, filo\_vehiclekey, ic3d\_vehiclekeys, is\_vehiclekeys, mk\_vehiclekeys, mm\_carkeys, p\_carkeys, rd\_vehiclekeys, t1ger\_keys, mx\_carkeys, cd\_garage, okokGarage, mVehicle |
| Fuel         | LegacyFuel, ox\_fuel, cdn-fuel, ps-fuel, x-fuel, lc\_fuel, qb-fuel, Renewed-Fuel, myFuel, okokGasStation, qs-fuelstations, BigDaddy-Fuel, esx-sna-fuel, lj-fuel, hyon\_gas\_station, nd\_fuel, rcore\_fuel, ti\_fuel                                                                                                                                                                            |
| Clothing     | illenium-appearance, fivem-appearance, qb-clothing, esx\_skin, rcore\_clothing, codem-clothing, codem-appearance, qs-appearance, 4bit\_appearance, qf\_skinmenu, crm-appearance, tgiann-clothing, 0r-clothing                                                                                                                                                                                   |

{% hint style="info" %}
Using something else? Pick it by hand in the console (`twlib set tw-lib bridge.keys <resource>`), or connect your own script with `exports['tw-lib']:RegisterBridge(...)`. See [tw-lib → Configuration](/tw-lib/tw-lib/configuration.md#choosing-a-script-by-hand).
{% endhint %}

***

## Commands

| Command                  | Who     | Description                                                                          |
| ------------------------ | ------- | ------------------------------------------------------------------------------------ |
| `/anchor`                | Players | Drop or raise the boat's anchor (default key **H**, change it in FiveM key bindings) |
| `/deletegear`            | Players | Take off your scuba tube and mask                                                    |
| `/jobresetdiving`        | Players | Reset your current job (lobby owner)                                                 |
| `/twlib`                 | Admins  | Tworst admin menu: live lobbies, economy, players, settings                          |
| `twlib` (server console) | Console | Status, detected scripts, saved settings                                             |

***

## Items

| Item                 | Label        | Description                         |
| -------------------- | ------------ | ----------------------------------- |
| `scuba_tube_l1`      | Scuba Tube 1 | Oxygen tube, level 1                |
| `scuba_tube_l2`      | Scuba Tube 2 | Oxygen tube, level 2                |
| `scuba_tube_l3`      | Scuba Tube 3 | Oxygen tube, level 3 (longest dive) |
| `scuba_gear`         | Scuba Gear   | Mask                                |
| `liftbag`            | Lift Bag     | Raises treasure boxes               |
| `dendrogyra_coral`   | Dendrogyra   | Common coral                        |
| `antipatharia_coral` | Antipatharia | Rare coral                          |

The loot also gives `rolex`, `diamond_ring` and `goldbar`, and the market sells `weapon_knife`. These are not shipped with the job: make sure they exist in your inventory.

{% hint style="info" %}
Item definitions for QBCore and ox\_inventory are in `qb-item.txt` and `ox-item.txt`, and the item images in `ITEM-IMG/`. See [Installation](/scripts/diving-job/installation.md#step-4-add-items).
{% endhint %}

***

## Preview

{% embed url="<https://www.youtube.com/watch?v=Xqy-aAt3rZY>" %}

***

## Quick Links

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Installation</strong></td><td>Install or update to 3.0</td><td><a href="/scripts/diving-job/installation.md">Installation</a></td></tr><tr><td><strong>Configuration</strong></td><td>Where settings live and what they do</td><td><a href="/scripts/diving-job/configuration.md">Configuration</a></td></tr><tr><td><strong>Changelog</strong></td><td>Version history</td><td><a href="/scripts/diving-job/changelog.md">Changelog</a></td></tr></tbody></table>

***

## Purchase

{% hint style="info" %}
Purchase Multiplayer Diving Job from tworst.com in two editions: [**Open Source**](https://tworst.com/script/diving) or [**Escrow**](https://tworst.com/script/divingescrow).
{% endhint %}
