# Dependencies

Everything your server needs before installing Wolfden Phone.

## Framework compatibility

Wolfden Phone runs on **Qbox**, **QBCore** or **ESX**, with **ox_inventory** on every framework or **qb-inventory** on QBCore. It detects both when it starts, so install it on a working server with one framework and one inventory.

| Framework | ox_inventory 2.40+ | qb-inventory 2.1.0+ |
| --- | --- | --- |
| Qbox (`qbx_core`) | Supported | Not supported (Qbox ships with ox_inventory) |
| QBCore (`qb-core`) | Supported | Supported |
| ESX (`es_extended`) | Supported, with ESX set to use ox_inventory | Not supported |

The forks ps-inventory and lj-inventory are not supported, and there is no bundled adapter for other frameworks or inventories.

A few things differ by framework. QBCore and ESX can only pay players who are online, while Qbox can also pay an offline citizen. On ESX versions that keep no duty state, every employee counts as on duty (`Config.Framework.esxDutyAlwaysOn` in `config/shared.lua`).

## Server requirements

| Requirement | Details |
| --- | --- |
| FXServer | A recent artifact (recommended build, 7290 or newer) |
| OneSync | Required. Set `set onesync on` in `server.cfg` or turn OneSync on in txAdmin. The resource does not start without it |
| MariaDB 10.3 or newer | The database installer uses MariaDB statements. MySQL 8 is not supported |

## Required resources

These resources must be installed and start successfully before Wolfden Phone.

| Resource | Why it is needed |
| --- | --- |
| [oxmysql](https://github.com/overextended/oxmysql) 2.7+ | Connects the phone to your server database |
| [ox_lib](https://github.com/overextended/ox_lib) 3.26+ | Menus, notifications and callbacks |
| One framework: [qbx_core](https://github.com/Qbox-project/qbx_core), [qb-core](https://github.com/qbcore-framework/qb-core) or [es_extended](https://github.com/esx-framework/esx_core) | Player, character and job information |
| One inventory: [ox_inventory](https://github.com/overextended/ox_inventory) 2.40+ or [qb-inventory](https://github.com/qbcore-framework/qb-inventory) 2.1.0+ | Phones, SIM cards, accessories and item metadata |

## Optional resources

| Resource | Needed for |
| --- | --- |
| [pma-voice](https://github.com/AvarianKnight/pma-voice) 6.6+ | **Required for call audio**: without it, calls connect but nobody hears anything. Also speakerphone, the Radio app, Clips Live voice and voices in videos. It is the only voice resource Wolfden Phone supports |
| [ox_target](https://github.com/overextended/ox_target) 1.16+ | Carrier shops, phone stores, payphones, repair counters, charging pads, routers, speakers, tower cabinets, the police records terminal and holding a phone up to someone's face. Without it, players get an **[E]** or text prompt instead |
| A banking resource | Renewed-Banking, okokBanking or qb-banking add job accounts and bank history to Nova Wallet. The framework's own bank works without one |
| A dispatch resource | Sends emergency calls and Services requests to ps-dispatch, cd_dispatch or cd_dispatch3d, qs-dispatch, rcore_dispatch, core_dispatch or lb-tablet, detected automatically |
| A garage or housing resource | The Garage app works with qbx_vehicles and qbx_garages out of the box; other garages and the Homes app connect through an adapter. See [Garage and housing resources](#/docs/wd_phone/city-apps?section=garage-and-housing-resources) |

The camera needs no screenshot resource: photos and videos are captured by the phone itself.

## Services you will need

| Service | Needed for | Options |
| --- | --- | --- |
| A media host | Saving camera photos and videos, and [Clips](#/docs/wd_phone/clips) | [Fivemanage](https://fivemanage.com) (an API key) or self-hosting (a domain with HTTPS) |
| A TURN relay | Video calls and [Clips Live](#/docs/wd_phone/clips?section=clips-live) | Your own coturn server (free), Cloudflare, Metered or another TURN provider |
| An AI API key | Optional AI answers in the Assist app | Off by default: needs the key and `enabled = true` in `config/assist_server.lua`. Assist's typed commands work without it |

Nothing is saved from the camera until a media host is configured. Without a relay, voice calls work and the video call buttons stay greyed out. See [Camera & media hosting](#/docs/wd_phone/media) and [Video calls](#/docs/wd_phone/video-calls).

## Access you will need

Have access to your server's resource folders, `server.cfg`, the database used by oxmysql, and your inventory's item list and images:

- ox_inventory: `ox_inventory/data/items.lua` and `ox_inventory/web/images/`.
- qb-inventory: `qb-core/shared/items.lua` and `qb-inventory/html/images/`.

The phone's interface ships ready to use in `web/dist`. No Node.js, npm or build step is needed.

## Ready to install?

Continue with [Installation](#/docs/wd_phone/installation), then complete [First setup](#/docs/wd_phone/first-steps) to test your phone and activate a SIM.
