Skip to content

What it works with

Everything below is detected on its own. There is no “which framework am I” setting, and no list of resource names to fill in: the phone looks at what is running and asks that.

A kind of resource that is not running is not a broken phone — the app that needed it says so, or is not there. The marketplace works without a garage; the Wallet works without a billing resource.


ESXLegacy and 1.x. The number is a phone_number column this phone adds to users
QBCoreThe number is the one QBCore gives every character: charinfo.phone in players
QBoxThe same charinfo.phone. Qbox’s own table called users is its accounts table and is never touched
fmLibFor anything else, or your own

Money, names, jobs and identifiers all come through one bridge, so a framework this list does not name needs one file rather than a fork.

11 of them, and RequireItem = false covers the rest:

ox_inventory · qb-inventory · qs-inventory · core_inventory · ps-inventory · tgiann-inventory · jpr-inventory · codem-inventory · origen_inventory · jaksam_inventory · the one ESX ships with

Per-item metadata — what makes a phone that phone in item mode — works on ox, qs, qb, core, jaksam and origen. chezza, ps and tgiann have no place to keep it, and ESX’s own has no such thing at all, so item mode falls back to one phone per character there.

pma-voice · mumble-voip · saltychat · tokovoip_script

Calls and radio put people in a channel and let your voice resource do the talking. With none of them running, calls connect and nobody hears anything.

WhatDetected
Billingesx_billing, okokBilling, or the phone’s own
Housingesx_property, ps-housing, qb-houses, loaf_housing
Garagesesx_garage, qb-garages, cd_garage, okokGarage, jg-advancedgarages
Societiesesx_society, qb-management, qb-banking
Licencesesx_license, qb-core, qbx_core
Weathercd_easytime, qb-weathersync, vSync, or the game itself
Screenshotsscreenshot-basic
UploadsFivemanage, or a Discord webhook

The one thing no two servers answer the same way, so the phone asks four ways and takes the first answer: the framework (ESX dead, QB isdead / inlaststand), then state bags, then exports you name in Config.Restrict.Death.Exports, then the game itself.

That already covers ESX, QBCore, QBox and anything writing the usual bags. If your ambulance script does none of it:

Config.Restrict.Death.Exports = {
{ 'wasabi_ambulance', 'isPlayerDead' },
}

It is only called if that resource is running, and a name that answers nothing is skipped rather than breaking the phone — so a wrong guess costs nothing.

oxmysqlEverything the phone remembers
A FiveM build from the last couple of yearsThe browser half uses the server’s built-in Node

No npm, no build step, no second program, and no SQL file to import — the tables build themselves the first time the resource starts.