> For the complete documentation index, see [llms.txt](https://docs.rainmad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rainmad.com/resources/blackmarkets-player-run-contraband-operation/phone-and-integrations.md).

# Phone & Integrations

Blackmarket bridges to the resources you already run. Every integration is one key in `cfg.bridge` (plus a couple of dedicated config blocks). `'auto'` picks the first supported resource that is running; an explicit name forces one; `false` disables it.

## Phone app

The **Blackmarket** phone app lets buyers browse public vendors, start an anonymous chat (the buyer shows up only under a generated alias), share their live location, and receive the van's location back. Vendors reply from the laptop **Inbox** tab.

```lua
cfg.bridge.phone = 'auto' -- 'auto' | 'lb-phone' | 'yseries' | false
```

| Value      | Phone                                                                                     |
| ---------- | ----------------------------------------------------------------------------------------- |
| `auto`     | Tries `lb-phone`, then `yseries`.                                                         |
| `lb-phone` | [lb-phone](https://docs.lbscripts.com/)                                                   |
| `yseries`  | yseries phone                                                                             |
| `false`    | Disables the phone app (warehouses can still operate; only the buyer-facing app is gone). |

A warehouse only appears in the app after the owner enables **Public listing** in the laptop **Settings** tab (vendor name, description, avatar URL). The phone database tables are created on first start, as long as `cfg.bridge.phone` isn't set to `false`.

{% hint style="info" %}
Conversations and messages are pruned after `cfg.retention.conversations` days (default 30). Set it to `0` to keep them forever.
{% endhint %}

## Notifications

```lua
cfg.bridge.notification = 'builtin'
```

Supported: `builtin`, `ox_lib`, `qb`, `esx`, `okokNotify`, `ps-ui`, `lation_ui`, `wasabi_notify`, `zsxui`.

## Text UI

```lua
cfg.bridge.textUI = 'builtin'
```

Supported: `builtin`, `ox_lib`, `esx`, `qb`, `okokTextUI`, `jg-textui`.

## Progress bar

```lua
cfg.bridge.progressbar = 'builtin'
```

Supported: `builtin`, `ox_lib`, `qb`, `esx`, `wasabi_uikit`, `lation_ui`, `zsxui`, or `false`.

## Target

```lua
cfg.bridge.target = 'auto'
```

Supported: `auto`, `ox_target`, `qb-target`, or `false`.

## Dispatch

Used for police alerts on supply pickups and public sales.

```lua
cfg.bridge.dispatch = false
```

Supported: `false`, `default_dispatch`, `cd_dispatch`, `qs-dispatch`, `ps-dispatch`, `rcore_dispatch`, `sonoran_cad`, `origen_police`, `redutzu-mdt`, `lb-tablet`, `core_dispatch`, `tk_dispatch`, `l2s-dispatch`, `bub-mdt`, `fd_dispatch`, `kartik-mdt`, `piotreq_gpt`, `p_mdt`, `wasabi_mdt`.

The alert codes/messages/blips are configured per feature in `cfg.supplyOrder.drop.dispatch` and `cfg.sale.publicShare.dispatch`.

## Vehicle keys

Hands the van keys to whoever drives it out.

```lua
cfg.bridge.vehiclelock = 'auto'
```

Supported: `auto`, `false`, `qb-vehiclekeys`, `wasabi_carlock`, `qs-vehiclekeys`, `cd_garage`, `Renewed-Vehiclekeys`, `okokGarage`, `t1ger_keys`, `MrNewbVehicleKeys`, `jaksam`.

## Framework

```lua
cfg.bridge.framework = 'auto' -- 'auto' | 'qb' | 'esx'
```

`auto` detects QBCore/Qbox or ESX. Force one only if auto-detection guesses wrong.

## Black money

By default sales pay out in **cash**. To pay in black money instead:

```lua
cfg.blackMoney = {
    enabled     = true,
    type        = 'item',        -- 'item' | 'account' | 'markedbills'
    item        = 'black_money', -- when type = 'item'
    account     = 'black_money', -- when type = 'account'
    metadataKey = 'worth',       -- when type = 'markedbills'
}
```

| `type`        | Pays out as                                                              |
| ------------- | ------------------------------------------------------------------------ |
| `item`        | A stackable inventory item named by `item`.                              |
| `account`     | A framework money account named by `account` (e.g. ESX `black_money`).   |
| `markedbills` | A marked-bills item whose value is stored in metadata key `metadataKey`. |

Make sure the chosen item/account actually exists in your framework/inventory.
