- Documentation
- 06Game
Phone numberGame
The phone number on citizen records from the game: read from the in-game phone when the bridge recognizes it, otherwise the framework’s.
On this page03
The Phone field of a citizen record from the game shows the character’s number. If your server uses a phone the bridge recognizes, it’s that phone’s number (the one players give each other); otherwise, it’s the number the framework keeps for the character.
There’s nothing to turn on: the phone isn’t a switchable integration, and the bridge only reads. It never assigns a number and writes nothing to the phone.
Emergency calls and messages sent from these phones are a separate feature: see Game alerts.
Good to know
Section titled “Good to know”- The number is read-only in the MDT, with the “Synced from the game” lock: only the game changes it.
- It’s read for connected players, at most once a minute per player. A number change in game reaches the MDT at the player’s next update.
- If the phone returns nothing (no device, error), the framework’s number stays.
supermdt statusshows the “Phone: number read from …” line, with the phone’s support level (tested in game, verified in code or experimental).
Compatibility
Section titled “Compatibility”Tested in game tried in game on a real server. Verified in code written from the script’s source code or native API, covered by the bridge’s tests, not tried in game yet. Experimental from the publisher’s public documentation, never tried: check it on your server before relying on it.
Reading doesn’t depend on the framework: it goes through the phone, on the frameworks the phone itself supports. If several phones are started, the bridge takes the first one in this list.
| Phone | Status | Reading |
|---|---|---|
| lb-phone | Verified in code | The number of the equipped phone. |
| sd-phone | Verified in code | The character’s number, without assigning one. sd-phone also declares itself as lb-phone: the bridge only uses a resource if it is the real one (no other started resource claims to be it). With sd-phone, it therefore reads sd-phone, never the imitated lb-phone export (which would assign a number). |
| yseries (TeamsGG) | Experimental | By character ID, otherwise by player. |
| gksphone (v2) | Experimental | By player. |
| npwd | Experimental | By player. On Qbox with qbx_npwd, it’s the same number as the framework’s. |
| qs-smartphone (Quasar) | Experimental | The number of the device or SIM card in hand. A version without this export: framework number. |
| qs-smartphone-pro (Quasar) | Experimental | By ID; a stolen phone isn’t used. |
| okokPhone | Experimental | By player. |
| codem-phone (mPhone) | Experimental | By player, without assigning one. |
Without a recognized phone, the number comes from the framework:
| Framework | Number used |
|---|---|
| QBCore, Qbox | the character’s charinfo.phone |
| ESX | the character’s phone_number (or phoneNumber), only on ESX versions that keep one. ESX 1.15 no longer does: without a known phone, the record has no number (“none”) and supermdt status shows “Phone: no known phone resource; ESX keeps no number…”. |
Is your phone custom?
Section titled “Is your phone custom?”| Your phone… | Result |
|---|---|
| is in the table | Its number is shown. |
isn’t, but writes the number to the framework (charinfo.phone, phone_number) |
The framework’s number is shown: it’s the right one. |
| keeps its own number, without writing it to the framework | The framework’s number is shown, which may differ from the phone’s. |