Pulse Phone docs
Supported integrations
7. Other scripts it connects to automatically
Nothing to set up. The start-up line lists what was found. phone:diag shows every script the
phone considered and why it used or skipped each one. To force one, set Config.Providers.<area>
in config/config.lua to the resource name, or 'none' to switch that area off.
| Area | Supported scripts |
|---|---|
| Company accounts | Renewed-Banking, qb-banking, qb-management, okokBanking, qs-banking, fd_banking, snipe-banking, tgg-banking, tgiann-bank, wasabi_banking, esx_addonaccount |
| Bank history in Wallet | Renewed-Banking, qb-banking, ps-banking, okokBanking, tgiann-bank, esx_banking |
| Shared accounts in Wallet | Renewed-Banking, qb-banking |
| Bills in Wallet | esx_billing, okokBilling, QBCore's phone_invoices table |
| Garage app | jg-advancedgarages, cd_garage, okokGarage, vms_garagesv2, qs-advancedgarages, qbx_garages, qb-garages, esx_garage, esx_advancedgarage, codem-garage, rcore_garage, loaf_garage |
| Home app | qb-houses, qb-apartments, qbx_properties, qs-housing, loaf_housing, vms_housing, rtx_housing, ps-housing, bcs_housing, nolag_properties, esx_property |
| Dispatch (Smart 911, Services) | ps-dispatch, cd_dispatch, core_dispatch, qs-dispatch, rcore_dispatch, linden_outlawalert. Without one, alerts arrive as phone notifications. |
| Vehicle keys | qbx_vehiclekeys, qb-vehiclekeys, qs-vehiclekeys, Renewed-Vehiclekeys, wasabi_carlock, MrNewbVehicleKeys, vehicles_keys, ak47_vehiclekeys, ak47_qb_vehiclekeys, t1ger_keys, cd_garage and okokGarage keys |
| Fuel | ox_fuel, Renewed-Fuel, lc_fuel, qs-fuelstations, cdn-fuel, ps-fuel, BigDaddy-Fuel, okokGasStation, x-fuel, LegacyFuel |
| Door locks | ox_doorlock, qb-doorlock, cd_doorlock |
| Jobs | your framework's jobs; ps-multijob on QBCore |
| Interaction | ox_target or qb-target for the store clerk and payphones, else an E prompt |
| Weather and time | any weather sync script |
Scripts written for other phones (police, EMS, job and boss-menu scripts) keep working when they send mail, texts or notifications through events: the phone answers the common event names other phones use. A script that calls another phone's exports needs one change (see "No such export" in section 11).
- A script that starts after the phone, or restarts, is picked up within about two seconds.
- When a supported script is running but its exports differ from the ones the phone knows (an older or newer version), a yellow line names the script and what is missing, and the phone uses the next option.
- Each area in
Config.Providershas a comment beside it inconfig/config.lua:bank,voice,housing,garage,inventory,dispatch,keys,vehiclelock,fuel,doorlock,society(company accounts),statement(bank history),accounts(shared accounts) and more. For a script that isn't listed, write a provider:developers/custom_provider_template.lua. - Every script, and exactly how the phone talks to each one, is in Integrations.
- These integrations are covered by automated tests built from each script's published API. They have not all been run on live servers with every one of these scripts.
Not supported
Not supported, and why: nui_doorlock (no server-side way to read or change a door, and no longer maintained); Chezza's inventory (no published documentation; on ESX it still works through ESX's own item functions); ak47_qb_inventory's own export (not documented, so QBCore's item functions are used). loaf_housing publishes no exports page, so its adapter could not be checked again: it stays in, and lists nothing if its exports have changed.
Housing, by script:
| Housing script | List and waypoint | Lock | Keys |
|---|---|---|---|
| qb-houses | yes (needs oxmysql) | yes | give / take |
| qbx_properties | yes (needs oxmysql) | no | list only |
| qs-housing | yes | no | no |
| loaf_housing | yes | yes, with loaf_keysystem running | give / take / list |
| vms_housing | yes | no | give / take / list |
| rtx_housing | yes | yes | give / take / list |
| ps-housing | yes (needs oxmysql) | no (its door lock script handles the doors) | give / take / list |
| bcs_housing | yes | yes | take / list (give in its own menu) |
| nolag_properties | yes | yes | give / take / list |
| esx_property | yes, with lock state | in its own menu | list |
Company management (the Services app)
Every employee of a Config.Services company gets a duty switch. Boss grades also get the
employee list, and can offer jobs, promote, demote, fire and use the company account. Every
action is checked on the server, and a boss can only manage grades below their own.
Hiring is an offer the player accepts. Nobody gets a job they didn't agree to, and nobody can be hired from across the map:
- The boss opens Services > Your Company > Hire. Players within 8 m who are not in the company are listed; Offer Job sends the offer. A typed player ID must also be within 8 m.
- The player gets a notification that opens the offer, with Accept and Decline. The starting grade is the company's lowest.
- On Accept the server checks again that the boss still manages the company and that the two are still within 8 m, then sets the job. The boss is told either way.
A player has one open offer at a time. An offer lapses after 2 minutes, or when either player leaves. Offers and hires go to the activity log.
Garage: car photos, locks, positions
- Photos of every car, add-on cars included: in game, with the
phone.adminace, run/phonecarphotos(cars with no photo yet),/phonecarphotos all(every car again) or/phonecarphotos <model>. Every vehicle is photographed against the sky, cut out and saved through the phone's media store (needs screenshot-basic), about a second each. Backspace or Esc stops it. Without a photo, players see the official picture (Config.Garage.imageUrl), then a drawing. Run it again after adding cars. - Lock / Unlock from the app (
Config.Garage.remoteLock) uses qbx_vehiclekeys or Renewed-Vehiclekeys when running, and the game's own lock otherwise, which is what qb-vehiclekeys, wasabi_carlock, MrNewbVehicleKeys, cd_garage and similar read. For another lock script, register a provider inbridge/server/vehiclelock.lua(example inside). - Directions to a garage need its position: from your garage script, or
Config.Garage.garages. Impound lots:Config.Garage.impounds. Config.Providers.garageforces one garage script. For an in-house one, see Custom Garage.
Switching from another phone
- Remove the old phone first: take its folder out of
resourcesand delete itsensureline. - Scripts that use the common phone events (mail, texts, notifications, invoices) need nothing: the phone answers those event names itself.
- Scripts that call another phone's exports by name get
No such exportin the console. Switch those calls toexports.phone:.... The matching calls (SendMail,SendMessage,Notify,SendBill,DispatchAlert...) are in Exports, usually one line per call. - Bring your players' data across with
phoneimportin the server console. Runphoneimport --dry-runfirst to see what would be copied, thenphoneimport. Players keep their phone numbers, and contacts, calls, chats, photos and more come across where the old phone had them. The old tables are only read, and a second run never duplicates anything. Which old phones it reads, and exactly what comes across from each, is in Importing Data.
The old phone's tables that share a name with this phone's are renamed to old_<name> at first
start (section 2). Nothing is deleted. What does not carry over: direct writes into another
phone's own tables, mail and notification buttons, texts from a script to a player who is offline
(delivered live only), attachments on script texts, and opening apps by script.
Other scripts: HUD and dispatch scripts that read the common state bag names (phoneOpen,
phoneNumber, onCallWith, speakerphone, flashlight ...) keep working. phone_api in the
server console prints the add-on API; Custom Apps shows how to add your own app.