
Description
A free smartphone for ESX. It comes with Phone, Messages, Contacts, Banking, Bills, Buzz, Dark Chat and Settings apps. The UI is built with Nuxt 4 and works with mouse or keyboard. Fits any city style (school / community / RP).
Features
- [+] Easy setup: tune everything in config, or set it from the web builder
- [+] Real voice calls through pma-voice, mute your mic, 5 ringtones
- [+] SMS grouped by conversation, share your location and tap to set a GPS waypoint
- [+] Service numbers for police, EMS and mechanics, sent to the whole job with your spot
- [+] Dispatch app: call EMS, a medic responds and gets a waypoint set
- [+] Bill any number; police, EMS and admin bills are locked, only admins can cancel
- [+] Mobile banking with transfers by phone number, with your own min and max
- [+] Camera with photos stored on your own server, and an hourly limit per player
- [+] Server-wide Buzz feed with 5 post card skins that admins can lock
- [+] Dark Chat: anonymous rooms with nicknames and an optional room password
- [+] Require a phone item to use it, with your own item name, or switch it off
- [+] Write your own hooks to other scripts in addons/
What's inside
- Phone: keypad and call history, with a badge for missed calls. Voice calls run through pma-voice. You can mute your microphone and pick one of five ringtones.
- Messages (SMS): one conversation per contact, with unread badges. You can share your location. The person who gets it taps it to set a GPS waypoint there.
- Contacts: mark favourites. Contact names also show in call history and in chats.
- Service numbers: text the police, EMS or mechanics and every member of that job gets it with your location. Job scripts can add or remove numbers through the
x3d_phone:registerNumber/x3d_phone:removeNumberevents. - Dispatch: a player hits "call EMS" and every medic gets the call in their phone with distance and a map blip. Respond sets a waypoint and tells the caller help is coming. Any script can raise a call with one export.
- Bills: bill any phone number, personally or on behalf of a job (police, EMS, mechanic, add your own). The recipient pays or declines in the phone (locked job bills such as police, EMS and admin cannot be declined or cancelled; an admin cancels them from the admin menu) and a double tap never charges twice. Personal bills pay into the biller's bank account; business bills need your own society account wired in
addons/billing/server.lua. - Every emoji: a picker with groups and search, in SMS, Buzz and Dark Chat.
- Mobile banking: balance and history, plus transfers to an online player's phone number. Uses the ESX
bankaccount, or plug in your own banking system. - Camera: take a photo in game and send it by SMS or post, or use it for a contact, your Buzz avatar or your wallpaper. Photos are stored on your own server. No image host and no API key.
- Buzz: one feed for the whole server. Post, like and delete your own posts. New posts show up in the in-game chat as a card with 5 skins (default, Halloween, Christmas, Songkran, Night). Players pick one, or you lock one for the whole server.
- Phone item: by default a
phoneitem is required. No phone means no calls in or out, and the server enforces it. - Dark Chat: anonymous rooms with nicknames and an optional password. Nobody sees the sender's real phone number.
- Settings: wallpaper, ringtone, notification sound, a keyboard-only mode, and Alt to switch to game controls without closing the phone.
Copies to Discord
Add a webhook to server.cfg and every photo a player takes is copied to your admin Discord channel, with the player's name and identifier. The photo itself stays on your server, so in-game links never expire. A separate webhook can log SMS, posts and transfers.
Server-side safety
- The server checks every callback again. It never trusts values sent by the client.
- SMS, posts, likes and calls are rate-limited.
- Players can only delete their own contacts, posts and history.
- External image links are accepted only from the hosts in
Config.ImageHosts(or from any https site if you switch that on). - Uploads need a single-use token, are capped per hour, and must be real JPG/PNG files.
- Webhook URLs never reach players, and Discord posts never ping anyone.
Make it fit your server
Everything that differs between servers lives in addons/, one file for each job:
| File | Job |
|---|---|
addons/notify/client.lua |
Notifications: uses esx_notify or ox_lib if either is present, otherwise ESX's own. |
addons/voice/client.lua |
Voice system. The default is pma-voice. |
addons/banking/server.lua |
Banking. The default is the ESX bank account. |
addons/billing/server.lua |
Billing: charges the payer and pays the biller (a society account must be wired by you). |
addons/framework/server.lua / client.lua |
The framework bridge: ESX if present, else standalone. |
addons/upload/client.lua |
Photo storage. The default stores photos on your own server. |
addons/filter/server.lua |
Blocks banned words before a message is sent. |
addons/log/server.lua |
Logs SMS, posts and Dark Chat messages. Includes a Discord webhook example. |
Requirements
oxmysqles_extended(ESX Legacy). Without it the script runs standalone, and you wire banking and billing yourself inaddons/pma-voice(optional: without it, calls still connect but carry no audio)screenshot-basic(optional, needed for the camera; a copy is bundled inoptional/)
Version history
- 1.1.3 — Released 13/10/2026 00:18
- 1.1.1 — Released 12/10/2026 10:26
- 1.0.1 — Released 26/09/2026 19:42
- 1.0.0 — Released 25/09/2026 22:31
Related scripts

- Updated
X3D Map Events
Free event panel on the pause-menu map: name + countdown, click to set a waypoint. Other scripts push events like notifications; admins can create their own.

- Updated
X3D Inventory
Free ESX inventory with big readable text, hotkeys 1–9 saved per character, coupon-based capacity and a storage panel for any vault or trunk script.

- Updated
X3D Respawn
Free death screen: Call EMS button, wait for medics when they are online, respawn points, self-revive, a death summary and death kept across relogs.

- Updated
X3D Progress Bar
A peach-themed progress bar with ESC to cancel, a countdown, an automatic hotkey lock, and a bundled Thai font.
Posts that cover this script
- 25/09/2026
Free FiveM phone for ESX plus a death screen with Call EMS: the whole medic loop in two scripts
A free FiveM ESX phone script (X3D Phone: pma-voice calls, SMS with GPS sharing, dispatch, bills, banking, self-hosted camera, Buzz, Dark Chat) and the X3D Respawn death screen (Call EMS, wait-for-medics, death summary) that chain into one medic loop, with install steps and esx_ambulancejob compatibility.
Read more - 27/09/2026
FiveM voice stutter: is it really bandwidth? pma-voice/Mumble explained, and when a separate voice server is worth it (2026)
Choppy, robotic or delayed voice in FiveM is rarely bandwidth on a 64–128 slot server, but on 1,000–2,048 slots bandwidth and CPU are real. How pma-voice and the Mumble server built into FXServer move audio, real bandwidth math in Mbps, how to tell player vs server vs route problems, the pma-voice settings that cut load immediately, and when an external Mumble server pays off, with setup.
Read more - 27/09/2026
Why fxmanifest.lua needs fx_version 'cerulean' and lua54 'yes' (what breaks without them, plus a template)
The two lines every modern FiveM resource starts with, explained: fx_version 'cerulean' is the manifest version that fixes runtime and NUI behaviour, lua54 'yes' enables Lua 5.4 for that resource. Why ox_lib and ESX Legacy require it, the errors you get when it is missing, adamant/bodacious/__resource.lua history, and a working fxmanifest.lua for an ESX script.
Read more - 26/09/2026
What a FiveM banking script needs: every ATM, transfers by phone number, dupe protection, and a free ESX bank
What a FiveM banking script for ESX has to do: every ATM on the map without coordinates, transfers by phone number or ID, history, and the server-side checks that stop money dupes; the holes in old esx_atm/esx_banking, and X3D Banking, free and integrated with X3D Phone.
Read more






