Pulse Phone docs
Frameworks
3. Step by step for your framework
The phone finds your framework by itself: es_extended, qb-core, qbx_core, ox_core,
ND_Core, vrp or TMC's core. You only need Config.Framework in config/config.lua if more than one is
running, or for a custom framework.
Your framework at a glance
| Framework | Found by | Items | Bank and cash | Good to know |
|---|---|---|---|---|
| ESX Legacy | es_extended |
Added by themselves to ESX's items table (default inventory). On ox_inventory you paste the printed block |
ESX accounts | Company accounts through your society script |
| QBCore | qb-core |
Added by themselves to QBCore's shared items (qb-, ps-, lj-inventory) | QBCore money | isboss grades run the company |
| Qbox | qbx_core (its qb-core stand-in counts as Qbox, not a second framework) |
Paste the printed ox_inventory block | Qbox money | Uses the Qbox adapter, never the QBCore one |
| ox_core | ox_core |
Paste the printed ox_inventory block | The character's ox_core account; cash is ox_inventory's money |
No duty flag: everyone counts as on duty |
| ND Core | ND_Core |
Paste the printed ox_inventory block | ND's bank and cash |
No duty flag; no company accounts |
| TMC | its core resource, recognised by TMC's own core object |
Every item must be in TMC's item list: the start-up check prints them | TMC money | Runs through the custom bridge, nothing to set up |
| vRP 2 | vrp |
See the vRP section | vRP wallet and bank | vRP 1 and forks are not supported |
| Standalone | nothing above running | None needed | The phone's own bank | For test servers or servers without a framework |
| Custom | Config.Framework = 'custom' |
Through your bridge | Through your bridge | See "Custom or in-house framework" |
Forcing the framework
Most servers never need this. Force the framework when the start-up line names the wrong one, or
when two framework cores are installed and started. Add one line to server.cfg:
setr phone_framework qb| Value | Framework |
|---|---|
esx |
ESX Legacy (es_extended) |
qb |
QBCore (qb-core) |
qbox |
Qbox (qbx_core) |
ox |
ox_core |
nd |
ND Core (ND_Core) |
vrp |
vRP 2 (vrp) |
tmc |
TMC (core) |
standalone |
No framework: the phone keeps its own identity and bank |
custom |
Your own bridge (see "Custom or in-house framework" below) |
auto |
Same as leaving the line out: Config.Framework decides |
- It wins over
Config.Framework. Restart the phone after you change it. - The resource names work too:
qbcore,qb-core,qbx_core,es_extended,ox_core. A word it does not know is refused: the start-up check says so and money features stay off. qbon a server that runsqbx_coreuses the Qbox adapter. Qbox also answers as QBCore.- If the framework you force is not started, phones stay on their "not ready" screen until it is. The phone never switches to another framework by itself.
Multicharacter works on every framework. Config.IdentityScope = 'character' (the default)
gives each character its own phone. 'player' gives one phone per account. Pick once: changing it
on a live server leaves every existing phone behind.
Company management (duty, staff, hiring, the company account in the Services app) uses the
companies in Config.Services in config/apps.lua. If your job names differ from the defaults
(police, ambulance, mechanic, taxi, fire ...), add yours to that company's job list.
To choose the boss grades yourself, add bossGrade = <n> to the company.
ESX Legacy
ensure oxmysql
ensure es_extended
# ... your ESX scripts, inventory, banking ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: with the default ESX inventory there is nothing to do. The phone adds its items to
ESX's
itemstable at start-up, and the console says which ones it added.config/items/esx.sqlis there if you would rather add them yourself. With another inventory, see section 4. - Money: the bank is the ESX
bankaccount, cash is themoneyaccount. - Character: the phone follows ESX's player
identifier, so esx_multicharacter works. - Boss: the grade named
bossmanages the company, unless you setbossGrade. - Company accounts: esx_addonaccount / esx_society, or a banking script from section 7.
QBCore
ensure oxmysql
ensure qb-core
# ... qb-inventory and your other qb scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: nothing to paste. The phone adds the items it needs to QBCore's shared items at
start-up, and the console says which ones it added. Copy the pictures from
config/items/images/toqb-inventory/html/images/; the start-up check names any that are missing. - Money:
bankandcash. - Character: the
citizenid, so qb-multicharacter works. - Boss: grades with
isboss = truein your jobs, unless you setbossGrade. - Company accounts: Renewed-Banking, qb-banking, or older qb-management.
- Multijob: with ps-multijob running, the player's other jobs show in Services and one tap makes a job active.
Qbox
ensure oxmysql
ensure qbx_core
ensure ox_inventory
# ... your other Qbox scripts, in Qbox's own order ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: Qbox uses ox_inventory, which can't take items from another script. Start the server
once: the start-up check prints the entries that are missing, ready to paste into
ox_inventory/data/items.lua(section 4). Pictures go toox_inventory/web/images/. - Money:
bankandcash, through qbx_core. - Character: the
citizenid. - Boss: grades with
isboss = true, unless you setbossGrade. - Multijob: built in. A player's other jobs show in Services.
- qbx_core also answers as
qb-core. That is normal: the phone treats the two as one framework.
ox_core
ensure oxmysql
ensure ox_core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: start the server once: the start-up check prints the entries that are missing,
ready to paste into
ox_inventory/data/items.lua(section 4). Pictures go toox_inventory/web/images/. - Money: the bank is the character's ox_core account. Cash is the
moneyitem in ox_inventory. - Character: the
charId. - Jobs: ox_core groups have no duty flag, so the phone keeps duty itself. Company management (staff, hiring, grades) and valet are not available on ox_core.
ND Core
ensure oxmysql
ensure ox_lib
ensure ND_Core
ensure ox_inventory
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Found by itself when
ND_Coreis started. To force it:setr phone_framework nd. - Items: ND uses ox_inventory. Start the server once: the start-up check prints the entries
that are missing, ready to paste into
ox_inventory/data/items.lua(section 4). - Money: the character's ND
bank, and NDcash(ox_inventory keeps themoneyitem in step). - Character: ND's character id. The phone number shown is ND's own when the character has one.
- Jobs: the character's ND job and rank. ND has no duty flag, so everyone counts as on duty. Company management, company accounts and valet are not available on ND Core.
- Garage: owned cars come from ND's
nd_vehiclestable.
vRP
Only vRP 2 is supported (not vRP 1 or community forks). The phone loads a small extension into vRP
from bridge/frameworks/vrp/. Nothing to copy.
ensure oxmysql
ensure vrp
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: there is no item file for vRP, and vRP 2 cannot make items usable for the phone.
Keep
Config.Item.required = false(the default), and setConfig.Store.box = falseso the store hands phones over directly. Players use the charging items with/phonepackand/phonecable; with a vRP inventory those need the player to carrypulse_magpackandpulse_cable, so add both items to your vRP item list, or setConfig.Charging.enabled = false. - Money: vRP's bank and wallet.
- Character: vRP's character id.
- Jobs: company management and valet are not available on vRP. The Garage app stays empty unless you connect a garage script.
TMC
TMC is built in. The phone recognises TMC's core by itself: no extra resource, and no change to
config/config.lua (auto, tmc and custom all work).
ensure oxmysql
ensure core
# ... your other scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phoneThe start-up check shows Framework: TMC.
- Items: add the Pulse items to TMC's item list the same way you add any item. The names are
phone,pulse_magpack,pulse_magpack_max,pulse_cable,pulse_router,pulse_burner,pulse_buds,pulse_ringlight,pulse_wallet(docs/items/tmc.luahas the entries), and for the store's boxespulse_phone_boxplus one per finish (pulse_phone_box_black...). The labels, weights and descriptions are inconfig/items/qb-core.lua, and the pictures inconfig/items/images/. An item that is not in the list is refused, and the player sees "inventory full": the console then names the item. If you don't want the boxes, setConfig.Store.box = falseand the store hands the phone over directly. - Money: the character's cash and bank.
- Character: TMC's citizen id.
- Jobs: the job on duty (or the first one), with its grade and duty state.
- Had the temporary
pulse_tmcconnector? Removeensure pulse_tmcand delete that folder. The console reminds you while it is still running.
Standalone (no framework)
ensure oxmysql
ensure pma-voice
ensure screenshot-basic
ensure phone- Items: none needed. Every player has a phone, a Reserve and a cable.
- Money: the phone keeps its own bank. A new player starts with 5000
(
startingBalanceinconfig/apps.lua). - Character: the player's Rockstar licence.
- Jobs, cars and homes: the phone keeps its own. Fill them with the test commands in section 9.
Custom or in-house framework
- Set
Config.Framework = 'custom'inconfig/config.lua. - Give the phone a bridge table shaped like
developers/custom_framework_bridge.lua: either asConfig.Providers.custominconfig/config.lua, or from your own resource withexports.phone:RegisterFrameworkBridge(MyBridge). - Only
GetCharacterIdis required. If you leave out a name, job, licence or vehicle/home list function, the phone acts as if your server has no such data. If you leave out a money or item function, that action is refused: the phone never pays from a bank of its own. The Bank app appears only when your bridge hasGetBankBalance. - If your core restarts while the phone keeps running, call
exports.phone:FrameworkRestarted()once the core is ready.
bridge/frameworks/custom.lua shows how the phone uses your table. To connect other in-house
scripts (a banking or garage script), see developers/custom_provider_template.lua and
Exports.