> 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/plumber-job.md).

# Multiplayer Plumber Job

## Overview

**TW Plumber Job** is a multiplayer plumbing job: drive the plumbing van to a building, repair and fit pipes, unclog toilets, open valves and fix switches with hands-on minigames. Work alone or as a crew of up to 4 players, share the pay and level up your plumber 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
* **Plumbing Van** - The crew's van, with the pipes and tools on board
* **Pipe Repair** - Fix the broken pipes
* **Pipe Fitting** - Carry new pipes from the van and fit them
* **Toilet Unclogging** - Clear the blocked toilets
* **Valves** - Open the valves
* **Switches** - Fix the switch panels in a minigame (bonus task)

### Additional Features

* **Reward Split** - The lobby owner decides each member's share of the money reward
* **Level & XP System** - 70 levels, regions can require a minimum level
* **6 Work Regions** - El Burro Heights, Alta Building, Paleto Bay, Redwood Lights Track, Richman and Pacific Bluffs
* **Daily Missions** - Daily tasks with extra money and XP
* **Leaderboard** - Top players of the job
* **Reconnect & Restart Safe** - A player who disconnects gets their seat back, and a member takes over the job if the owner drops
* **One Job at a Time** - A player working another Tworst job is offered to leave it first
* **Tutorial** - In-game video tutorials and tip 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 plumber NPC and open the job menu. Pick a region, invite players nearby (optional) and start.

### Step 2: Take the Van

The crew's plumbing van spawns next to the NPC. Drive to the marked building.

### Step 3: Fix the Plumbing

1. **Pipes** - Repair the broken pipes and fit new ones from the van
2. **Toilets** - Unclog the blocked toilets
3. **Valves** - Open the valves
4. **Switches** - Fix the switch panels (bonus)

### Step 4: Get Paid

Hand the van back to finish. The crew is paid (split by the owner if enabled).

***

## 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                                                                                                   |
| **tw\_plumber\_stream**         | ✅ Yes    | Map, props and the van (comes with the script)                                                             |
| Framework                       | Optional | QBCore, QBox, ESX, TMC, vRP, or none (standalone)                                                          |

### Optional

| Resource               | Purpose                                         |
| ---------------------- | ----------------------------------------------- |
| ox\_target / qb-target | Target interaction instead of the Tworst prompt |
| Vehicle keys script    | Keys for the van (detected automatically)       |
| Fuel script            | Full tank on the van (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                                                 |
| ------------------------ | ------- | ----------------------------------------------------------- |
| `/jobresetplumber`       | Players | Reset your current job (lobby owner)                        |
| `/jobleaveplumber`       | Players | Leave the crew                                              |
| `/openTutorialplumber`   | Players | Open the video tutorial                                     |
| `/twlib`                 | Admins  | Tworst admin menu: live lobbies, economy, players, settings |
| `twlib` (server console) | Console | Status, detected scripts, saved settings                    |

***

## Items

The plumber job needs **no inventory items**. There is nothing to add to your inventory.

{% hint style="info" %}
You can still hand out extra items at the end of a region with `missioncompletedItems`. See [Configuration](/scripts/plumber-job/configuration.md#mission-completion-items).
{% endhint %}

***

## Preview

{% embed url="<https://www.youtube.com/watch?v=8jk9ApHOI2M>" %}

***

## 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/plumber-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/plumber-job/configuration.md">Configuration</a></td></tr><tr><td><strong>Changelog</strong></td><td>Version history</td><td><a href="/scripts/plumber-job/changelog.md">Changelog</a></td></tr></tbody></table>

***

## Purchase

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