[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"site":3,"product-en-x3d-phone":15,"product-description-html-en-x3d-phone":89,"product-gallery-en-x3d-phone":111,"products-en":141,"product-mentions-en-x3d-phone":914},{"site":4,"contact":10,"seo":13,"payment":14},{"name":5,"host":6,"default_locale":7,"locales":8},"X3D Developer","fivem.x3d-developer.com","th",[7,9],"en",{"discord_invite":11,"email":12,"line":12},"https:\u002F\u002Fdiscord.gg\u002FNA5kPVynFv","",{"google_site_verification":12,"bing_site_verification":12},{"bank_name":12,"account_name":12,"account_no":12,"promptpay_id":12},{"id":16,"slug":17,"name":18,"summary":19,"price_thb":20,"license_mode":21,"cover_key":22,"cover_url":23,"category_slugs":24,"tags":26,"latest_version":49,"latest_released_at":50,"published_at":51,"has_docs":52,"config":53,"rent_price_satang":54,"description_md":55,"docs_md":56,"seo_title":57,"seo_description":58,"media":59,"versions":75},"879a5a5d-5b22-4fb5-9274-6ac3ee631904","x3d-phone","X3D Phone","Free ESX smartphone: pma-voice calls, SMS with location sharing, mobile banking, a camera with self-hosted photos, Buzz and anonymous Dark Chat.",0,"none","public\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg",[25],"hud",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"phone","โทรศัพท์","โทรศัพท์ fivem","esx phone","phone script","sms","pma-voice","dispatch","แจ้งเหตุ","ธนาคารมือถือ","buzz","dark chat","กล้อง","esx","ฟรี","free","เบอร์หน่วยงาน","ออกบิล","แชร์ตำแหน่ง","เรียกหมอ","กล้องโทรศัพท์","ไอเทมโทรศัพท์","1.1.3","2026-10-12T17:18:13.372348Z","2026-09-25T15:32:10.424119Z",true,"public",null,"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 \u002F community \u002F RP).\n\n---\n\n## Features\n\n- [+] Easy setup: tune everything in config, or set it from the web builder\n- [+] Real voice calls through pma-voice, mute your mic, 5 ringtones\n- [+] SMS grouped by conversation, share your location and tap to set a GPS waypoint\n- [+] Service numbers for police, EMS and mechanics, sent to the whole job with your spot\n- [+] Dispatch app: call EMS, a medic responds and gets a waypoint set\n- [+] Bill any number; police, EMS and admin bills are locked, only admins can cancel\n- [+] Mobile banking with transfers by phone number, with your own min and max\n- [+] Camera with photos stored on your own server, and an hourly limit per player\n- [+] Server-wide Buzz feed with 5 post card skins that admins can lock\n- [+] Dark Chat: anonymous rooms with nicknames and an optional room password\n- [+] Require a phone item to use it, with your own item name, or switch it off\n- [+] Write your own hooks to other scripts in addons\u002F\n\n---\n\n## What's inside\n\n- **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.\n- **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.\n- **Contacts**: mark favourites. Contact names also show in call history and in chats.\n- **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` \u002F `x3d_phone:removeNumber` events.\n- **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.\n- **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\u002Fbilling\u002Fserver.lua`.\n- **Every emoji**: a picker with groups and search, in SMS, Buzz and Dark Chat.\n- **Mobile banking**: balance and history, plus transfers to an online player's phone number. Uses the ESX `bank` account, or plug in your own banking system.\n- **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.\n- **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.\n- **Phone item**: by default a `phone` item is required. No phone means no calls in or out, and the server enforces it.\n- **Dark Chat**: anonymous rooms with nicknames and an optional password. Nobody sees the sender's real phone number.\n- **Settings**: wallpaper, ringtone, notification sound, a keyboard-only mode, and **Alt** to switch to game controls without closing the phone.\n\n---\n\n## Copies to Discord\n\nAdd 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.\n\n---\n\n## Server-side safety\n\n- The server checks every callback again. It never trusts values sent by the client.\n- SMS, posts, likes and calls are rate-limited.\n- Players can only delete their own contacts, posts and history.\n- External image links are accepted only from the hosts in `Config.ImageHosts` (or from any https site if you switch that on).\n- Uploads need a single-use token, are capped per hour, and must be real JPG\u002FPNG files.\n- Webhook URLs never reach players, and Discord posts never ping anyone.\n\n---\n\n## Make it fit your server\n\nEverything that differs between servers lives in `addons\u002F`, one file for each job:\n\n| File | Job |\n|---|---|\n| `addons\u002Fnotify\u002Fclient.lua` | Notifications: uses esx_notify or ox_lib if either is present, otherwise ESX's own. |\n| `addons\u002Fvoice\u002Fclient.lua` | Voice system. The default is pma-voice. |\n| `addons\u002Fbanking\u002Fserver.lua` | Banking. The default is the ESX `bank` account. |\n| `addons\u002Fbilling\u002Fserver.lua` | Billing: charges the payer and pays the biller (a society account must be wired by you). |\n| `addons\u002Fframework\u002Fserver.lua` \u002F `client.lua` | The framework bridge: ESX if present, else standalone. |\n| `addons\u002Fupload\u002Fclient.lua` | Photo storage. The default stores photos on your own server. |\n| `addons\u002Ffilter\u002Fserver.lua` | Blocks banned words before a message is sent. |\n| `addons\u002Flog\u002Fserver.lua` | Logs SMS, posts and Dark Chat messages. Includes a Discord webhook example. |\n\n---\n\n## Requirements\n\n- `oxmysql`\n- `es_extended` (ESX Legacy). Without it the script runs standalone, and you wire banking and billing yourself in `addons\u002F`\n- `pma-voice` (optional: without it, calls still connect but carry no audio)\n- `screenshot-basic` (optional, needed for the camera; a copy is bundled in `optional\u002F`)\n","## Installation\n\n1. Extract the zip and put the `x3d_phone` folder in `resources\u002F`. **Do not rename the folder**: every export and event uses this name.\n2. Run `install.sql` on your server database. It is safe to run again and keeps existing data.\n3. If your server has no `phone` item, run `optional\u002Fphone_item.sql`. With ox_inventory, add the item to `ox_inventory\u002Fdata\u002Fitems.lua` instead; the file has an example.\n4. If your server has no `screenshot-basic`, move `optional\u002Fscreenshot-basic\u002F` into `resources\u002F`. You can skip this; only the camera needs it.\n5. Add these lines to `server.cfg`, in this order:\n\n```\nensure oxmysql\nensure es_extended\nensure pma-voice\nensure screenshot-basic\nensure x3d_phone\n```\n\nPlayers open the phone with **F1**, the `\u002Fopenphone` command, or by using the `phone` item. While the phone is open, **Alt** switches to game controls; press it again to get the cursor back.\n\n## Requirements\n\n| Resource | Required | Used for |\n|---|---|---|\n| `es_extended` | no | ESX Legacy. Without it the script runs standalone and you wire banking and billing yourself in `addons\u002F` (see `Config.Framework`) |\n| `oxmysql` | yes | database |\n| `pma-voice` | no | call audio; without it calls connect but carry no audio |\n| `screenshot-basic` | no | the camera; a copy is bundled in `optional\u002F` |\n| `chat` (FiveM) | no | post cards in chat |\n\nNo image host, no API key, and no other software to install.\n\n---\n\n## All settings: `config\u002Fconfig.lua`\n\n### General\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Locale` | `'th'` | Language of the phone and its messages: `'th'` or `'en'` |\n| `Config.Framework` | `'auto'` | `'auto'` (ESX if present, else standalone) `\\| 'esx' \\| 'standalone'` |\n| `Config.Debug` | `false` | `true` prints logs to the server console |\n| `Config.OpenKey` | `'F1'` | Key that opens the phone. Players can rebind it in Settings > Key Bindings > FiveM. This value only applies to a player's first join. |\n| `Config.DefaultContacts` | `{}` | Contacts added to every new number, e.g. `{ phone = '911', name = 'Police' }` |\n\n### Phone item\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.UseItem` | `true` | The item must be in the inventory to open the phone, call, answer and get SMS alerts |\n| `Config.PhoneItem` | `'phone'` | Item name. You can use one your server already has, e.g. `'iphone'` |\n\nWith `UseItem` on:\n- No item: the phone does not open, and every server callback refuses. Triggering events by hand does not get past this.\n- A player without the item cannot be called. The caller sees \"unavailable\" and the call is logged as missed.\n- SMS are still stored, but no alert shows until the player has the item.\n- If the item leaves the inventory while the phone is open (dropped or taken), the phone closes and any call ends.\n\n### Calls\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.UseVoice` | `true` | Use pma-voice for call audio |\n| `Config.CallChannelStart` | `1000` | First pma-voice channel used for calls. Change it only if it collides with another script. |\n| `Config.CallTimeout` | `30` | Seconds before an unanswered call ends |\n| `Config.Ringtones` | 5 sounds | Ringtones; each maps to a GTA V sound |\n| `Config.NotificationSounds` | 3 sounds | Message alert sounds |\n| `Config.RingtonePreviewMs` | `3000` | Length of `\u002Ftestringtone` and `\u002Ftestdialtone` |\n\n> `Config.Ringtones`, `Config.NotificationSounds` and `Config.Wallpapers` are what the server checks a player's choice against. You can remove an option in the config. Adding a new option also needs a change to the phone's web UI.\n\n### Messages\n\nEmoji work in every text box (SMS, Buzz, Dark Chat), with a picker holding all 3,600+ emoji in 9 groups plus search. Lengths are counted in real characters, so Thai text and emoji are not over-counted.\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.MaxMessageLength` | `500` | Maximum length of an SMS or a Dark Chat message |\n\n### Buzz and post card skins\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Buzz.ToChat` | `true` | New posts appear in everyone's in-game chat |\n| `Config.Buzz.Themes` | all 5 | Skins on offer: `default`, `halloween`, `christmas`, `songkran`, `night` |\n| `Config.Buzz.DefaultTheme` | `'default'` | Skin for players who have not picked one |\n| `Config.Buzz.PlayerTheme` | `true` | `true`: players pick their skin in Settings. `false`: everyone uses `DefaultTheme`. |\n\n**Example:** lock the whole server to Halloween for the event:\n\n```lua\nConfig.Buzz = {\n    ToChat = true,\n    Themes = { 'halloween' },\n    DefaultTheme = 'halloween',\n    PlayerTheme = false,\n}\n```\n\nPost cards use FiveM's standard `chat` resource. x3d_phone adds its own styles through `chat_theme` and leaves your chat theme alone. Post text is always escaped, so players cannot inject HTML into chat.\n\n### Service numbers (police \u002F EMS \u002F mechanic) and job scripts\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Dispatch.Numbers` | police, ambulance, mechanic | Service numbers: `number = { label = 'Shown name', jobs = { 'job' }, coords = true }` |\n| `Config.Dispatch.OnDutyOnly` | `false` | `true` delivers only to players on duty (ESX Legacy `job.onDuty`) |\n\n- Service numbers appear as special contacts for everyone and cannot be edited or deleted.\n- Texting `police` delivers `[Police] ...` to every online player with a job in `jobs` who has a phone. It arrives from the sender's own number with their location, so a tap sets a GPS waypoint and a reply goes straight back to the sender.\n- The location comes from the character's position on the server, so it cannot be faked. One message per service every 20 seconds.\n- If nobody from the service is online, the sender is told.\n\n**Hooking up job scripts:** the `police`, `ambulance` and `mechanic` numbers already ship in the config, and your job scripts can add or remove numbers with these events.\n\n| Event | What it does |\n|---|---|\n| `TriggerEvent('x3d_phone:registerNumber', number, label, isDispatch, hasCoords)` (server) | Adds a service number from a job script (an existing number is left alone) |\n| `TriggerEvent('x3d_phone:removeNumber', number)` (server) | Removes a registered number (numbers in the config stay) |\n| `TriggerServerEvent('x3d_phone:send', number, message, anonymous)` | Scripts that alert the police automatically (robberies etc.) send a message to a service number. With `anonymous = true` the message comes from the service number instead of the player's. |\n\n> Job scripts that call the old `esx_phone:*` event names do not work with x3d_phone; point them at the events above.\n\n#### Dispatch app\n\nResponders (players with a job in `jobs`) get a **Dispatch** app. Each call shows a title, message, distance, age and the caller's number, plus a flashing map blip, a notification and a sound.\n- **Respond** sets a GPS waypoint, tells the caller \"X accepted and is on the way\", and shows the other responders that someone has it.\n- **Close call** removes it from every phone and map. Calls nobody closes expire after `AlertSeconds`.\n- Calls come from texts to a service number, or from other scripts requesting a service.\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Dispatch.AlertSeconds` | `600` | How long a call stays in the app |\n| `Config.Dispatch.CallNeedsPhone` | `false` | Whether the caller needs the phone item (a \"call EMS\" button while downed should not) |\n| `Numbers.\u003Cnumber>.request` | | Call title when someone requests the service, e.g. `'Person injured, EMS needed'` |\n| `Numbers.\u003Cnumber>.blip` | | `{ sprite, color }` of the responder's map blip |\n\n**Requesting a service from other scripts (e.g. a \"call EMS\" button on the death screen):**\n\n```lua\n-- client\nexports['x3d_phone']:RequestService('ambulance', 'Unconscious in the street')\n-- or\nTriggerServerEvent('x3d_phone:requestService', 'ambulance', 'Unconscious in the street')\n\n-- server (set your own title \u002F coords)\nexports['x3d_phone']:SendAlert('police', { source = src, title = 'Bank robbery', message = 'Pacific Standard' })\nexports['x3d_phone']:SendAlert('police', { coords = vector3(x, y, z), title = 'Alarm triggered' })\n```\n\n`RequestService` reads the location from the caller's character on the server, so it cannot be faked, and a player can call the same service once every 60 seconds.\n\n### Bills app\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Billing.Enabled` | `true` | Shows the Bills app |\n| `Config.Billing.AllowPersonal` | `true` | Allows personal bills. The money goes to the biller's bank account, even when they are offline. |\n| `Config.Billing.AllowDecline` | `true` | The recipient can decline. With `false` they can only pay (the biller can still cancel). |\n| `Config.Billing.MinAmount` \u002F `MaxAmount` | `1` \u002F `1000000` | Smallest \u002F largest bill |\n| `Config.Billing.MaxOpenPerTarget` | `10` | Most unpaid bills one biller can have open to one number (anti-spam) |\n| `Config.Billing.PayFrom` | `'bank'` | Which account the payer pays from: `'bank'` or `'money'` |\n| `Config.Billing.UsersTable` | `'users'` | ESX players table, used to credit a biller who is offline |\n| `Config.Billing.Jobs` | police, ambulance, mechanic, taxi | Jobs that can bill on behalf of the business: `jobname = { label = 'Shown name', minGrade = 0, locked = true }` · `locked = true` = the biller cannot cancel and the recipient cannot decline; it is paid or an admin cancels it in x3d_adminpanel (default: police, ambulance) |\n| `Config.Billing.Admin` | `{ enabled = true, label = 'แอดมิน', groups = { 'admin', 'superadmin' }, locked = true }` | Admins can bill as \"Admin\" (e.g. fines); the money goes to `Billing.PayAdmin` at the end of `addons\u002Fbilling\u002Fserver.lua`, credited to nobody by default |\n\nLocked bills can only be cancelled in x3d_adminpanel → Phone → Unpaid bills (search by number or description, hold to cancel, with a cancel log).\n\nBusiness bills: by default there is no society account (`Billing.PaySociety` returns `false`), so the payer is not charged and the bill stays unpaid. Wire your server's society account (for example `esx_addonaccount`) in `addons\u002Fbilling\u002Fserver.lua` before you use business bills.\n\n- The recipient gets an alert at once if online. If offline, the bill waits in the app.\n- A bill can be paid once; tapping repeatedly never charges twice.\n- One bill every 5 seconds per player, and descriptions go through `FilterMessage` like other messages.\n\n**Billing from other scripts (server):**\n\n```lua\nlocal ok, idOrError = exports['x3d_phone']:CreateBill(source, '48213', 500, 'Parking fine', 'police')\n-- issuer: 'personal', a job name in Config.Billing.Jobs (the biller must actually have that job) or 'admin' (the biller must be in Config.Billing.Admin.groups)\n```\n\n### Images: camera, uploads and external links\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Uploads.Enabled` | `true` | Enables the camera and wallpaper uploads from the PC |\n| `Config.Uploads.BaseUrl` | `''` | Can stay empty; see below |\n| `Config.Uploads.MaxBytes` | 3 MB | Maximum size per image (hard ceiling 8 MB) |\n| `Config.Uploads.PerPlayerPerHour` | `30` | Uploads allowed per player per hour |\n| `Config.Uploads.Keep` | `1000` | How many recent images to keep. After that the oldest is overwritten, and its link stops working. |\n| `Config.Uploads.Quality` | `0.85` | JPG quality of camera photos (0–1) |\n| `Config.ImageHosts` | imgur, ibb | External hosts players may paste image links from (chat, posts, wallpaper). `{}` turns external links off. |\n| `Config.AnyImageHost` | `false` | `true` accepts https links from any site |\n\n**Where images are stored:** in `x3d_phone\u002Fdata\u002Fuploads\u002F` on your server. They are served through FXServer's own game port (30120), with no outside service. Worst-case disk use is `Keep × MaxBytes`, about 3 GB by default, but a camera photo is normally under 400 KB.\n\n**`BaseUrl`:** when empty, image links are stored as `\u002Fi\u002F\u003Ctoken>.jpg`. Each player's client adds the address of the server it is connected to, so this works with no setup. Set `BaseUrl` only when:\n- you have an https domain pointing at the server (for example through a reverse proxy), and you want photos to show inside post cards in chat.\n- Example: `BaseUrl = 'https:\u002F\u002Fimg.myserver.com\u002Fx3d_phone'`\n\n**Why `cdn.discordapp.com` is not a default host:** Discord file links expire after about 24 hours when opened outside Discord, so the image would be gone the next day.\n\n> ⚠️ **`AnyImageHost = true`:** the image host sees the IP address of every player who views the image, and you do not control what the image shows. Prefer listing the hosts you trust in `ImageHosts`.\n\n### Mobile banking\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Banking.Enabled` | `true` | Shows the Banking app |\n| `Config.Banking.MinTransfer` | `1` | Smallest transfer |\n| `Config.Banking.MaxTransfer` | `1000000` | Largest transfer |\n\nTransfers go to the phone number of an online player. They use the ESX `bank` account and are logged in the `x3d_phone_bank_history` table. A transfer cannot start while another one is still running, and a player can transfer once every 3 seconds.\n\n---\n\n## Copies to Discord\n\nAdd these to `server.cfg`. The webhook URLs stay on the server; players never see them.\n\n```\nset x3d_phone_upload_webhook \"https:\u002F\u002Fdiscord.com\u002Fapi\u002Fwebhooks\u002F...\"\nset x3d_phone_log_webhook    \"https:\u002F\u002Fdiscord.com\u002Fapi\u002Fwebhooks\u002F...\"\n```\n\n| Convar | What it sends |\n|---|---|\n| `x3d_phone_upload_webhook` | A copy of every photo a player takes or uploads, with name, server id, identifier and type (messages \u002F twitter \u002F wallpaper) |\n| `x3d_phone_log_webhook` | Logs of SMS, posts, Dark Chat and transfers (optional) |\n\n- Mentions are off in every post, so a player named `@everyone` pings nobody.\n- Posts are queued, one every 1.5 seconds, to stay under Discord's rate limit. When more than 20 are waiting, new ones are skipped.\n- The photo itself stays on your server, so in-game links never expire.\n- Only URLs that look like real Discord webhooks are accepted.\n\n---\n\n## Fitting your server: `addons\u002F`\n\nEdit these files freely. Each one works out of the box.\n\n| File | Functions | Default |\n|---|---|---|\n| `addons\u002Fnotify\u002Fclient.lua` | `Notify(message, kind)` | esx_notify → ox_lib → `ESX.ShowNotification` |\n| `addons\u002Fvoice\u002Fclient.lua` | `Voice.Enabled()`, `Voice.SetCallChannel(ch)`, `Voice.SetMuted(bool)` | pma-voice (mumble-voip example included) |\n| `addons\u002Fupload\u002Fclient.lua` | `Upload.Screenshot(kind, cb)`, `Upload.Target(kind, cb)` | screenshot-basic → stored on your server |\n| `addons\u002Fframework\u002Fserver.lua` \u002F `client.lua` | The framework bridge (`Framework.*`), identical across every X3D product | ESX if present, else standalone |\n| `addons\u002Fbilling\u002Fserver.lua` | `Billing.Charge`, `Billing.Refund`, `Billing.PaySociety`, `Billing.PayPerson`, `Billing.PayAdmin` | Charges \u002F refunds and pays the biller's bank through `Framework.*`; `PaySociety` returns `false`, wire it yourself |\n| `addons\u002Fbanking\u002Fserver.lua` | `Banking.GetBalances`, `Banking.Transfer`, `Banking.History` | ESX `bank` account |\n| `addons\u002Ffilter\u002Fserver.lua` | `FilterMessage(src, kind, message)` | blocks words in `Config.BannedWords` |\n| `addons\u002Flog\u002Fserver.lua` | `PhoneLog(src, kind, data)`, `UploadCopy(p, file)` | Discord webhooks from convars |\n| `addons\u002Flocale\u002Fshared.lua` | `T(th, en)` | follows `Config.Locale` |\n\n**Example:** to use your own banking system, change `Banking.Transfer` to call it and return `true`, or `false, 'error message'`. The server has already checked the amount, the recipient and the rate limit.\n\n**Example:** banned words:\n\n```lua\nConfig.BannedWords = { 'badword1', 'badword2' }\n```\n\n---\n\n## Exports (client)\n\n```lua\nexports['x3d_phone']:OpenPhone()\nexports['x3d_phone']:ClosePhone()\nexports['x3d_phone']:IsPhoneOpen()     --> boolean\nexports['x3d_phone']:GetPhoneNumber()  --> string | nil\nexports['x3d_phone']:IsInCall()        --> boolean\nexports['x3d_phone']:GetCallData()     --> { phoneNumber, displayName, isOutgoing } | nil\n```\n\n## Commands\n\n| Command | What it does |\n|---|---|\n| `\u002Fopenphone` | Open or close the phone |\n| `\u002Ftestringtone` | Play your selected ringtone |\n| `\u002Ftestnotification` | Play your selected alert sound |\n| `\u002Ftestdialtone` | Play the outgoing-call tone |\n\n## Troubleshooting\n\n| Symptom | Cause \u002F fix |\n|---|---|\n| F1 says \"You don't have a phone\" | `Config.UseItem = true` and the item is not in the inventory. Give the `phone` item, or set `UseItem = false`. |\n| No camera button | `screenshot-basic` is not ensured, or `Config.Uploads.Enabled = false` |\n| A photo fails with `upload_failed` | Check the console. If it says `cannot write data\u002Fuploads\u002F`, create the `data\u002Fuploads\u002F` folder in the resource. |\n| Calls connect but carry no audio | pma-voice is not installed, or is ensured after x3d_phone |\n| Posts do not appear in chat | `Config.Buzz.ToChat = false`, or the server does not run FiveM's `chat` resource |\n| A pasted image link will not send | The host is not in `Config.ImageHosts`, or the link does not start with https |\n","Free FiveM ESX Phone Script: Calls, SMS, Buzz","Free FiveM ESX phone: pma-voice calls, SMS with GPS sharing, contacts, Buzz and anonymous Dark Chat. Thai and English, optional phone item.",[60,63,65,67,69,71,73],{"kind":61,"url":62},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F8704c36bb000ed04.png",{"kind":61,"url":64},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F8da2ccf3c9cb7166.png",{"kind":61,"url":66},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F463104ac8d020f1b.png",{"kind":61,"url":68},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F49fd564a93b137ce.png",{"kind":61,"url":70},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F60eb9d61acfcc2ed.png",{"kind":61,"url":72},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002F7bfa7b032cc0179b.png",{"kind":61,"url":74},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fmedia\u002Faea505b6f18ed953.png",[76,78,82,85],{"version":49,"released_at":50,"changelog_md":77},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":79,"released_at":80,"changelog_md":81},"1.1.1","2026-10-12T03:26:38.605628Z","### Changed\n\n- UI font is now Kanit (one family for Thai and English), bundled inside the script; the Thai font now really loads in game (FiveM's browser dropped the old font declaration and fell back to a system font)",{"version":83,"released_at":84,"changelog_md":12},"1.0.1","2026-09-26T12:42:43.462227Z",{"version":86,"released_at":87,"changelog_md":88},"1.0.0","2026-09-25T15:31:53.651524Z","First public release.\r\n\r\n### Added\r\n\r\n- Phone app: keypad, recent calls, missed-call badge, voice calls through pma-voice (mute, ringtone, dial tone).\r\n- Messages: SMS conversations, unread badges, location sharing that sets a GPS waypoint on tap.\r\n- Contacts with favourites and photos.\r\n- Mobile banking: balance, history and transfers to an online player's phone number (ESX `bank` account by default, swappable in `addons\u002Fbanking\u002Fserver.lua`).\r\n- Camera: take a photo in game with screenshot-basic for messages, posts, contacts, Buzz avatar and wallpaper. Photos are stored on your own server (`data\u002Fuploads\u002F`), no image host or API key needed.\r\n- Post card skins in the in-game chat: default, halloween, christmas, songkran, night. Players pick one in Settings, or the server locks one with `Config.Buzz`. Uses FiveM's standard chat through `chat_theme`.\r\n- Phone item required by default (`Config.UseItem = true`, `Config.PhoneItem = 'phone'`): gates opening, calling, answering and SMS alerts on the server; the phone closes when the item leaves the inventory. `optional\u002Fphone_item.sql` adds the item.\r\n- Service numbers (`Config.Dispatch`): texting `police` \u002F `ambulance` \u002F `mechanic` reaches every online member of that job with the sender's server-side location; answers the old `esx_phone` API (`registerNumber`, `removeNumber`, `cancelMessage`, `esx_phone:send`) so esx_policejob \u002F esx_ambulancejob \u002F esx_mechanicjob work unchanged.\r\n- Dispatch app for responders: calls with distance, map blip and sound; Respond sets a waypoint and tells the caller help is coming. Client export `RequestService` \u002F event `x3d_phone:requestService` (e.g. a death-screen \"call EMS\" button) and server export `SendAlert`.\r\n- Bills app: bill any phone number personally or on behalf of a job (`Config.Billing.Jobs`, paid into `society_\u003Cjob>`); the recipient pays or declines in the phone; paying twice is impossible and a failed payout refunds the payer. Server export `CreateBill`.\r\n- Full emoji picker (3,600+ emoji, 9 groups, search) in SMS, Buzz and Dark Chat; text limits count real characters so Thai and emoji are not over-counted.\r\n- Optional Discord copies: every photo is posted to `x3d_phone_upload_webhook`, and SMS \u002F post \u002F Dark Chat \u002F transfer logs to `x3d_phone_log_webhook`. Webhooks stay server-side, mentions are disabled, and posts are queued.\r\n- External image links in messages, posts and wallpaper from `Config.ImageHosts`, or from any https site with `Config.AnyImageHost`.\r\n- `optional\u002Fscreenshot-basic\u002F` bundled (MIT, CitizenFX) for servers that do not have it.\r\n- Alt switches between the phone cursor and game controls while the phone stays open.\r\n- Buzz: server-wide feed, likes, delete own posts, new posts posted to in-game chat (`Config.Buzz.ToChat`).\r\n- Dark Chat: anonymous channels with handles and optional password.\r\n- Settings: wallpapers (preset, photo, upload from PC or image link), ringtones, notification sounds, keyboard-only mode.\r\n- Optional phone item (`Config.UseItem`), Thai \u002F English (`Config.Locale`).\r\n- Editable adapters in `addons\u002F`: notify, voice, banking, upload, message filter, log.",{"html":90,"headings":91},"\u003Cp>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 \u002F community \u002F RP).\u003C\u002Fp>\n\u003Chr>\n\u003Ch3 id=\"features\">Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>[+] Easy setup: tune everything in config, or set it from the web builder\u003C\u002Fli>\n\u003Cli>[+] Real voice calls through pma-voice, mute your mic, 5 ringtones\u003C\u002Fli>\n\u003Cli>[+] SMS grouped by conversation, share your location and tap to set a GPS waypoint\u003C\u002Fli>\n\u003Cli>[+] Service numbers for police, EMS and mechanics, sent to the whole job with your spot\u003C\u002Fli>\n\u003Cli>[+] Dispatch app: call EMS, a medic responds and gets a waypoint set\u003C\u002Fli>\n\u003Cli>[+] Bill any number; police, EMS and admin bills are locked, only admins can cancel\u003C\u002Fli>\n\u003Cli>[+] Mobile banking with transfers by phone number, with your own min and max\u003C\u002Fli>\n\u003Cli>[+] Camera with photos stored on your own server, and an hourly limit per player\u003C\u002Fli>\n\u003Cli>[+] Server-wide Buzz feed with 5 post card skins that admins can lock\u003C\u002Fli>\n\u003Cli>[+] Dark Chat: anonymous rooms with nicknames and an optional room password\u003C\u002Fli>\n\u003Cli>[+] Require a phone item to use it, with your own item name, or switch it off\u003C\u002Fli>\n\u003Cli>[+] Write your own hooks to other scripts in addons\u002F\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch3 id=\"what-s-inside\">What's inside\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Phone\u003C\u002Fstrong>: keypad and call history, with a badge for missed calls. Voice calls run through \u003Cstrong>pma-voice\u003C\u002Fstrong>. You can mute your microphone and pick one of five ringtones.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Messages (SMS)\u003C\u002Fstrong>: one conversation per contact, with unread badges. You can \u003Cstrong>share your location\u003C\u002Fstrong>. The person who gets it taps it to set a GPS waypoint there.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Contacts\u003C\u002Fstrong>: mark favourites. Contact names also show in call history and in chats.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service numbers\u003C\u002Fstrong>: 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 \u003Ccode>x3d_phone:registerNumber\u003C\u002Fcode> \u002F \u003Ccode>x3d_phone:removeNumber\u003C\u002Fcode> events.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dispatch\u003C\u002Fstrong>: a player hits &quot;call EMS&quot; 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.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bills\u003C\u002Fstrong>: 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 \u003Ccode>addons\u002Fbilling\u002Fserver.lua\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Every emoji\u003C\u002Fstrong>: a picker with groups and search, in SMS, Buzz and Dark Chat.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Mobile banking\u003C\u002Fstrong>: balance and history, plus transfers to an online player's phone number. Uses the ESX \u003Ccode>bank\u003C\u002Fcode> account, or plug in your own banking system.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Camera\u003C\u002Fstrong>: take a photo in game and send it by SMS or post, or use it for a contact, your Buzz avatar or your wallpaper. \u003Cstrong>Photos are stored on your own server.\u003C\u002Fstrong> No image host and no API key.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Buzz\u003C\u002Fstrong>: 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 \u003Cstrong>5 skins\u003C\u002Fstrong> (default, Halloween, Christmas, Songkran, Night). Players pick one, or you lock one for the whole server.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Phone item\u003C\u002Fstrong>: by default a \u003Ccode>phone\u003C\u002Fcode> item is required. No phone means no calls in or out, and the server enforces it.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dark Chat\u003C\u002Fstrong>: anonymous rooms with nicknames and an optional password. Nobody sees the sender's real phone number.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Settings\u003C\u002Fstrong>: wallpaper, ringtone, notification sound, a keyboard-only mode, and \u003Cstrong>Alt\u003C\u002Fstrong> to switch to game controls without closing the phone.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch3 id=\"copies-to-discord\">Copies to Discord\u003C\u002Fh3>\n\u003Cp>Add a webhook to \u003Ccode>server.cfg\u003C\u002Fcode> 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.\u003C\u002Fp>\n\u003Chr>\n\u003Ch3 id=\"server-side-safety\">Server-side safety\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>The server checks every callback again. It never trusts values sent by the client.\u003C\u002Fli>\n\u003Cli>SMS, posts, likes and calls are rate-limited.\u003C\u002Fli>\n\u003Cli>Players can only delete their own contacts, posts and history.\u003C\u002Fli>\n\u003Cli>External image links are accepted only from the hosts in \u003Ccode>Config.ImageHosts\u003C\u002Fcode> (or from any https site if you switch that on).\u003C\u002Fli>\n\u003Cli>Uploads need a single-use token, are capped per hour, and must be real JPG\u002FPNG files.\u003C\u002Fli>\n\u003Cli>Webhook URLs never reach players, and Discord posts never ping anyone.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch3 id=\"make-it-fit-your-server\">Make it fit your server\u003C\u002Fh3>\n\u003Cp>Everything that differs between servers lives in \u003Ccode>addons\u002F\u003C\u002Fcode>, one file for each job:\u003C\u002Fp>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>File\u003C\u002Fth>\n\u003Cth>Job\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fnotify\u002Fclient.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Notifications: uses esx_notify or ox_lib if either is present, otherwise ESX's own.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fvoice\u002Fclient.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Voice system. The default is pma-voice.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fbanking\u002Fserver.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Banking. The default is the ESX \u003Ccode>bank\u003C\u002Fcode> account.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fbilling\u002Fserver.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Billing: charges the payer and pays the biller (a society account must be wired by you).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fframework\u002Fserver.lua\u003C\u002Fcode> \u002F \u003Ccode>client.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>The framework bridge: ESX if present, else standalone.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Fupload\u002Fclient.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Photo storage. The default stores photos on your own server.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Ffilter\u002Fserver.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Blocks banned words before a message is sent.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>addons\u002Flog\u002Fserver.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Logs SMS, posts and Dark Chat messages. Includes a Discord webhook example.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Chr>\n\u003Ch3 id=\"requirements\">Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ccode>oxmysql\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>es_extended\u003C\u002Fcode> (ESX Legacy). Without it the script runs standalone, and you wire banking and billing yourself in \u003Ccode>addons\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>pma-voice\u003C\u002Fcode> (optional: without it, calls still connect but carry no audio)\u003C\u002Fli>\n\u003Cli>\u003Ccode>screenshot-basic\u003C\u002Fcode> (optional, needed for the camera; a copy is bundled in \u003Ccode>optional\u002F\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n",[92,96,99,102,105,108],{"id":93,"text":94,"level":95},"features","Features",2,{"id":97,"text":98,"level":95},"what-s-inside","What's inside",{"id":100,"text":101,"level":95},"copies-to-discord","Copies to Discord",{"id":103,"text":104,"level":95},"server-side-safety","Server-side safety",{"id":106,"text":107,"level":95},"make-it-fit-your-server","Make it fit your server",{"id":109,"text":110,"level":95},"requirements","Requirements",[112,117,121,125,129,133,137],{"src":113,"full":114,"srcset":115,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002Fbd5f78b286.1280.webp 1280w","(max-width: 760px) calc(50vw - 30px), 380px",{"src":118,"full":119,"srcset":120,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F834e2c1fd2.1280.webp 1280w",{"src":122,"full":123,"srcset":124,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F1b6954ab44.1280.webp 1280w",{"src":126,"full":127,"srcset":128,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F9a2b05c88a.1280.webp 1280w",{"src":130,"full":131,"srcset":132,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F6480c2bdfc.1280.webp 1280w",{"src":134,"full":135,"srcset":136,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F32a19bc113.1280.webp 1280w",{"src":138,"full":139,"srcset":140,"sizes":116},"\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.960.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.1280.webp","\u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.480.webp 480w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.640.webp 640w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.960.webp 960w, \u002Fimg\u002Fmedia\u002Fx3d-phone\u002F618d3ff5fa.1280.webp 1280w",{"items":142,"page":912,"size":913,"total":913},[143,179,201,230,252,281,314,339,366,396,421,447,475,502,527,530,554,573,596,623,653,678,702,726,747,775,800,821,845,870,891],{"id":144,"slug":145,"name":146,"summary":147,"price_thb":148,"license_mode":149,"cover_key":150,"cover_url":151,"category_slugs":152,"tags":155,"latest_version":174,"latest_released_at":175,"published_at":176,"has_docs":52,"config":177,"rent_price_satang":178},"6bdadea7-4316-4a4a-a38e-87c5e841077d","x3d-replay","X3D Replay","BETA pricing. Records every player, every session. Watch it back in game: 4 cameras, kill\u002Fdeath timeline, pressed keys, script usage, macro flags.",59900,"shop_license","public\u002Fproducts\u002Fx3d-replay\u002Fcover.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fcover.jpg",[153,154],"anticheat","admin",[40,156,157,158,159,160,161,162,163,164,165,166,167,168,153,169,170,171,172,173],"ESX Legacy","replay","fivem replay script","replay system","รีเพลย์","ดูย้อนหลัง","ย้อนดูผู้เล่น","บันทึกผู้เล่น","เคสรีพอร์ต","จับโกง","จับมาโคร","macro detection","กันโปร","แอดมิน","admin tool","demo recorder","spectate","BETA","1.0.2","2026-10-14T06:14:23.677549Z","2026-10-14T06:14:23.700289Z","owners",12000,{"id":180,"slug":181,"name":182,"summary":183,"price_thb":148,"license_mode":149,"cover_key":184,"cover_url":185,"category_slugs":186,"tags":187,"latest_version":86,"latest_released_at":199,"published_at":200,"has_docs":52,"config":177,"rent_price_satang":178},"ff948fa9-6fc5-410e-b952-ee88b15f0c9d","x3d-anticheat","X3D Anti-Cheat","BETA pricing, join the testing. Evidence-first anti-cheat: Discord embeds with screenshots, HWID bans, Steam\u002FDiscord account lock, two-line event guard.","public\u002Fproducts\u002Fx3d-anticheat\u002Fcover\u002Fd90612eed4448164.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-anticheat\u002Fcover\u002Fd90612eed4448164.jpg",[153],[40,188,189,153,190,191,192,168,193,194,195,196,197,198],"standalone","แอนตี้โกง","ป้องกันแฮก","กันโกง","HWID ban","ภาพหลักฐาน","ล็อกบัญชี Steam Discord","แบนเครื่อง","คิวยศ Discord","กัน event สแปม","แอนตี้โกง ESX","2026-09-16T09:45:51.78533Z","2026-09-16T09:46:00.05928Z",{"id":202,"slug":203,"name":204,"summary":205,"price_thb":206,"license_mode":149,"cover_key":207,"cover_url":208,"category_slugs":209,"tags":213,"latest_version":226,"latest_released_at":227,"published_at":228,"has_docs":52,"config":177,"rent_price_satang":229},"47a33337-7dcf-4a78-b056-4b3e324a648d","x3d-slots","X3D Slots 1024 Ways","1,024-way cascading slot, Mahjong style, 97.5% RTP. Server-authoritative spins, anti-exploit, with free spins, multipliers and big-win scenes.",250000,"public\u002Fproducts\u002Fx3d-slots\u002Fcover\u002Fd09c2066a6ea2968.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-slots\u002Fcover\u002Fd09c2066a6ea2968.jpg",[210,211,212],"casino","economy","entertainment",[40,188,214,215,210,216,217,218,219,220,221,222,223,224,225],"คาสิโน","สล็อต","slot","มินิเกม","minigame","RTP 97.5%","มาห์จอง","คาสเคด","ฟรีสปิน","ตู้สล็อต","ซื้อฟีเจอร์","ปรับ RTP","1.1.4","2026-10-12T17:13:01.863556Z","2026-09-14T15:28:02.281478Z",50000,{"id":231,"slug":232,"name":233,"summary":234,"price_thb":20,"license_mode":21,"cover_key":235,"cover_url":236,"category_slugs":237,"tags":239,"latest_version":249,"latest_released_at":250,"published_at":251,"has_docs":52,"config":53,"rent_price_satang":54},"1fb91794-3e8b-4955-bc54-dc6b1491912e","x3d-mapevents","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.","public\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg",[25,238],"gameplay",[240,241,242,243,244,245,246,247,248,41,42],"อีเวนต์","อีเวนต์บนแผนที่","แผนที่","จุดนำทาง","นับถอยหลัง","pause menu","map events","event","waypoint","1.0.3","2026-10-12T17:13:20.327337Z","2026-10-12T04:21:56.480796Z",{"id":253,"slug":254,"name":255,"summary":256,"price_thb":20,"license_mode":21,"cover_key":257,"cover_url":258,"category_slugs":259,"tags":261,"latest_version":278,"latest_released_at":279,"published_at":280,"has_docs":52,"config":53,"rent_price_satang":54},"58697b89-cbe5-4b1f-8a29-c5289727202e","x3d-weaponskins","X3D Weapon Skins","Free collectible ESX weapon skins: each skin is an add-on weapon tied to its base gun. Unlock with an item, same damage, tradable, held-weapon effects.","public\u002Fproducts\u002Fx3d-weaponskins\u002Fcover\u002F25e3c37b23545ec8.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-weaponskins\u002Fcover\u002F25e3c37b23545ec8.jpg",[238,260],"inventory",[262,263,264,265,266,267,268,269,270,271,40,41,42,272,273,274,275,276,277],"weapon skins","สกินอาวุธ","สกินอาวุธ fivem","สกินปืน","gun skin","weapon skin fivem","คลังสกิน","เทรดสกิน","skin collection","x3d_inventory","ปลดล็อกสกิน","สกินสะสม","เอฟเฟกต์อาวุธ","ความหายากสกิน","สกิน add-on","แปลงสกินเป็นไอเทม","1.1.2","2026-10-12T17:13:35.599698Z","2026-10-10T11:46:16.716284Z",{"id":282,"slug":283,"name":284,"summary":285,"price_thb":20,"license_mode":21,"cover_key":286,"cover_url":287,"category_slugs":288,"tags":290,"latest_version":174,"latest_released_at":312,"published_at":313,"has_docs":52,"config":53,"rent_price_satang":54},"d82d8eb1-ed6a-43e3-86ef-24e45ae2b39d","x3d-damage","X3D Damage","Set every weapon's damage yourself, with bleed, slow, stun, knockdown and lifesteal effects. Weapon skins supported. ESX or standalone.","public\u002Fproducts\u002Fx3d-damage\u002Fcover\u002F8ce8864c16843fe6.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-damage\u002Fcover\u002F8ce8864c16843fe6.jpg",[238,289],"gangs",[291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,40,188,41,42,306,307,308,309,310,311],"weapon damage","ดาเมจอาวุธ","ดาเมจปืน","fivem weapon damage","damage script","headshot","headshot kill","เลือดออก","bleed","สตัน","stun","lifesteal","ดูดเลือด","เมืองปืน","pvp","ทะลุเกราะ","ดาเมจเสริม","ปิดท่าต่อยหนัก","ปรับดาเมจ","ทำให้ช้า","กันกระโดดหลบ","2026-10-12T17:14:19.289254Z","2026-10-10T11:45:52.279629Z",{"id":315,"slug":316,"name":317,"summary":318,"price_thb":20,"license_mode":21,"cover_key":319,"cover_url":320,"category_slugs":321,"tags":323,"latest_version":174,"latest_released_at":337,"published_at":338,"has_docs":52,"config":53,"rent_price_satang":54},"93def22a-9501-4b66-bdf0-158cc6a0093c","x3d-vehiclestorage","X3D Vehicle Storage","Free ESX trunk storage on the x3d_inventory screen: capacity by vehicle class and model, owner-only access, job cars and an admin view.","public\u002Fproducts\u002Fx3d-vehiclestorage\u002Fcover\u002F2c2d97cb47678e1b.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-vehiclestorage\u002Fcover\u002F2c2d97cb47678e1b.jpg",[260,322],"garage",[324,325,326,327,328,329,330,271,40,41,42,331,332,333,334,335,336],"trunk","ท้ายรถ","ท้ายรถ fivem","vehicle storage","trunk inventory","esx trunk","เก็บของในรถ","ตู้ท้ายรถ","รถงาน","กล่องเก็บของหน้ารถ","น้ำหนักท้ายรถ","ล็อกรถ","เปิดท้ายรถ","2026-10-12T17:14:46.845123Z","2026-10-05T04:28:52.749188Z",{"id":340,"slug":341,"name":342,"summary":343,"price_thb":20,"license_mode":21,"cover_key":344,"cover_url":345,"category_slugs":346,"tags":348,"latest_version":174,"latest_released_at":364,"published_at":365,"has_docs":52,"config":53,"rent_price_satang":54},"b642bb91-9f6d-4c3c-8830-e594c2a92fcb","x3d-vault","X3D Vault","Free ESX vaults on the x3d_inventory screen: player vaults with levels and sharing, job vaults per society, Thai and English.","public\u002Fproducts\u002Fx3d-vault\u002Fcover\u002F72ea3a88a64e0034.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-vault\u002Fcover\u002F72ea3a88a64e0034.jpg",[260,347],"jobs",[349,350,351,352,353,354,355,356,271,40,41,42,357,358,359,360,361,362,363],"vault","stash","ตู้เซฟ","ตู้เก็บของ","ตู้เซฟ fivem","esx stash","job vault","ตู้หน่วยงาน","ตู้เซฟแก๊ง","ตู้ส่วนตัว","แชร์ตู้","อัปเกรดตู้","ตู้เซฟตำรวจ","ตู้เซฟอาชีพ","ลิมิตตู้","2026-10-12T17:15:03.928293Z","2026-10-05T04:28:43.828514Z",{"id":367,"slug":368,"name":369,"summary":370,"price_thb":20,"license_mode":21,"cover_key":371,"cover_url":372,"category_slugs":373,"tags":374,"latest_version":393,"latest_released_at":394,"published_at":395,"has_docs":52,"config":53,"rent_price_satang":54},"70fa1474-294a-49ad-91cb-1de0ab4dc8d8","x3d-adminpanel","X3D Admin Panel","A free all-in-one FiveM admin panel: players, bans and warnings, alt detection, bags, items, vehicles, weather, player logs and menus for X3D scripts.","public\u002Fproducts\u002Fx3d-adminpanel\u002Fcover\u002F5cb8420f481eee28.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-adminpanel\u002Fcover\u002F5cb8420f481eee28.jpg",[154],[375,376,377,378,379,380,195,381,382,383,384,385,172,386,40,188,41,42,387,388,389,390,391,392],"admin panel","admin menu","แผงแอดมิน","เมนูแอดมิน","เมนูแอดมิน fivem","fivem admin menu","token ban","จับบัญชีสำรอง","alt detection","txadmin","noclip","log","แอดมินไทย","ยึดไอเทม","ประวัติแบน","โน้ตแอดมิน","นำเข้า txAdmin","บทบาทแอดมิน","1.0.5","2026-10-12T17:15:53.66615Z","2026-10-05T04:11:47.352812Z",{"id":397,"slug":398,"name":399,"summary":400,"price_thb":20,"license_mode":21,"cover_key":401,"cover_url":402,"category_slugs":403,"tags":404,"latest_version":226,"latest_released_at":419,"published_at":420,"has_docs":52,"config":53,"rent_price_satang":54},"d76ff7ae-ded6-4f39-b63f-734181952698","x3d-inventory","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.","public\u002Fproducts\u002Fx3d-inventory\u002Fcover\u002Ffc3857e556cf31f3.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-inventory\u002Fcover\u002Ffc3857e556cf31f3.jpg",[260,25],[260,405,406,407,408,409,410,411,412,413,40,41,42,414,415,416,417,418],"กระเป๋า","กระเป๋า fivem","ui กระเป๋า","esx inventory","inventory fivem","ช่องลัด","hotbar","ไอเทม","nui","คูปองขยายช่อง","คูปองน้ำหนัก","ความหายากไอเทม","ค้นกระเป๋า","จำกัดน้ำหนัก","2026-10-12T17:16:22.733967Z","2026-10-05T04:10:14.693356Z",{"id":422,"slug":423,"name":424,"summary":425,"price_thb":20,"license_mode":21,"cover_key":426,"cover_url":427,"category_slugs":428,"tags":429,"latest_version":226,"latest_released_at":445,"published_at":446,"has_docs":52,"config":53,"rent_price_satang":54},"f782bbab-0321-4d3f-832f-797a2aa198f5","x3d-fortune","X3D Fortune","Free ESX fortune teller: daily horoscope, zodiac from your birthday, 28 siamsi sticks, 22-card tarot on 9 topics and a 10-card monthly spread.","public\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg",[212],[430,431,432,433,434,435,436,437,438,40,41,42,439,440,441,442,443,444],"หมอดู","ดูดวง","เซียมซี","ไพ่ยิปซี","tarot","ราศี","ดวงรายวัน","fortune teller","npc","ดวงรายเดือน","ไพ่ทาโร่","เลขมงคล","สีมงคล","ไพ่กลับหัว","จุดหมอดู","2026-10-12T17:16:40.12128Z","2026-09-26T14:59:27.315955Z",{"id":448,"slug":449,"name":450,"summary":451,"price_thb":20,"license_mode":21,"cover_key":452,"cover_url":453,"category_slugs":454,"tags":455,"latest_version":472,"latest_released_at":473,"published_at":474,"has_docs":52,"config":53,"rent_price_satang":54},"9cb293aa-8b2c-447d-b810-3a7e385f6e81","x3d-banking","X3D Banking","Free ESX bank and ATM: deposit, withdraw, transfer by player ID, transaction history, every ATM on the map, every action checked on the server.","public\u002Fproducts\u002Fx3d-banking\u002Fcover\u002Fe7e66ab29819a980.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-banking\u002Fcover\u002Fe7e66ab29819a980.jpg",[211],[456,457,458,459,460,461,462,463,464,465,40,41,42,466,467,468,469,470,471],"banking","ธนาคาร","ระบบธนาคาร","atm","ตู้ atm","โอนเงิน","โอนด้วยเบอร์โทร","esx banking","bank script","ประวัติรายการ","ถอนด่วน","วงเงินโอน","สาขาธนาคาร","ฝากเงิน","ถอนเงิน","เพิ่มตู้ ATM","1.1.8","2026-10-12T17:16:55.98941Z","2026-09-26T14:59:08.07128Z",{"id":476,"slug":477,"name":478,"summary":479,"price_thb":20,"license_mode":21,"cover_key":480,"cover_url":481,"category_slugs":482,"tags":483,"latest_version":226,"latest_released_at":500,"published_at":501,"has_docs":52,"config":53,"rent_price_satang":54},"c72d91e0-6bcd-4fae-bde9-0e140e02b0cb","x3d-music","X3D Music","Free ESX boombox: place it on the ground or mount it on a car, play YouTube with a shared queue and distance falloff; speakers survive restarts.","public\u002Fproducts\u002Fx3d-music\u002Fcover\u002Fce445e0d251f7540.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-music\u002Fcover\u002Fce445e0d251f7540.jpg",[212],[484,485,486,487,488,489,490,491,492,493,40,41,42,494,495,496,497,498,499],"boombox","ลำโพง","ลำโพงเปิดเพลง","เปิดเพลง youtube","music script","fivem music","xsound","youtube","คิวเพลง","ติดบนรถ","ลำโพงติดรถ","เปิดเพลงในรถ","ฟังเพลงด้วยกัน","เพลงร่วมกัน","ลำโพงวางพื้น","จำกัดลำโพง","2026-10-12T17:17:14.482272Z","2026-09-26T14:56:09.091062Z",{"id":503,"slug":504,"name":505,"summary":506,"price_thb":20,"license_mode":21,"cover_key":507,"cover_url":508,"category_slugs":509,"tags":510,"latest_version":49,"latest_released_at":525,"published_at":526,"has_docs":52,"config":53,"rent_price_satang":54},"6125d85f-eaff-45cb-90cd-9db4d66e7954","x3d-respawn","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.","public\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg",[25],[511,512,513,46,514,515,516,517,518,34,519,40,41,42,520,521,522,523,524],"respawn","หน้าจอตาย","death screen","call ems","ambulance","esx_ambulancejob","ชุบตัวเอง","จุดเกิดใหม่","สรุปการตาย","รอหมอ","กันหนีตาย","ปุ่มเรียกหมอ","เกิดใหม่เมือง","ชุดปฐมพยาบาล","2026-10-12T17:17:26.33517Z","2026-09-25T16:14:21.42282Z",{"id":16,"slug":17,"name":18,"summary":19,"price_thb":20,"license_mode":21,"cover_key":22,"cover_url":23,"category_slugs":528,"tags":529,"latest_version":49,"latest_released_at":50,"published_at":51,"has_docs":52,"config":53,"rent_price_satang":54},[25],[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],{"id":531,"slug":532,"name":533,"summary":534,"price_thb":20,"license_mode":21,"cover_key":535,"cover_url":536,"category_slugs":537,"tags":538,"latest_version":49,"latest_released_at":551,"published_at":552,"has_docs":553,"config":21,"rent_price_satang":54},"6705aca9-39b7-48ad-a39b-0dc4a906dd70","x3d-safe","X3D Safe Cracking","A dial-cracking minigame: turn with A and D, press E on the notch. One export, no dependencies.","public\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg",[289,238],[539,540,351,541,217,218,542,543,188,544,41,42,545,546,547,548,549,550],"safe cracking","เจาะตู้เซฟ","หมุนตู้เซฟ","มินิเกม fivem","export","crime","หมุนหน้าปัด","ตู้เซฟธนาคาร","ตู้เซฟร้าน","ตู้เซฟบ้าน","ไม่ต้องใช้ ESX","มินิเกม A\u002FD","2026-10-12T17:18:34.435941Z","2026-09-24T03:53:28.3285Z",false,{"id":555,"slug":556,"name":557,"summary":558,"price_thb":20,"license_mode":21,"cover_key":559,"cover_url":560,"category_slugs":561,"tags":562,"latest_version":79,"latest_released_at":571,"published_at":572,"has_docs":553,"config":21,"rent_price_satang":54},"d5bcab3a-9189-4813-9b17-6b34f3a16584","x3d-lockpick","X3D Lockpick","A lockpick minigame felt out with WASD, called with one export and usable from any script.","public\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg",[289,238],[563,564,565,217,218,542,543,188,544,41,42,566,567,568,569,570],"lockpick","งัดล็อก","สะเดาะกุญแจ","งัดประตูบ้าน","งัดรถ","หมุดล็อก","มินิเกม WASD","ปรับความยาก","2026-10-12T17:18:46.115275Z","2026-09-24T03:53:14.231073Z",{"id":574,"slug":575,"name":576,"summary":577,"price_thb":20,"license_mode":21,"cover_key":578,"cover_url":579,"category_slugs":580,"tags":582,"latest_version":593,"latest_released_at":594,"published_at":595,"has_docs":52,"config":53,"rent_price_satang":54},"65d3b2da-6dba-4cd0-9907-06b8e6e54994","x3d-houserobbery","X3D House Robbery","Pick the door, search the floor, crack the safe, with a cooldown per house and both minigames in the same zip.","public\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg",[581,289],"housing",[583,584,585,586,587,351,563,217,289,588,581,544,40,41,42,589,540,590,591,592],"งัดบ้าน","ปล้นบ้าน","house robbery","robbery","ปล้น","แก๊ง","คีย์การ์ด","เงินแดง","จุดค้นของ","ปล้นบ้านคูลดาวน์","1.2.4","2026-10-12T17:19:03.056031Z","2026-09-24T03:48:06.633278Z",{"id":597,"slug":598,"name":599,"summary":600,"price_thb":20,"license_mode":21,"cover_key":601,"cover_url":602,"category_slugs":603,"tags":604,"latest_version":620,"latest_released_at":621,"published_at":622,"has_docs":52,"config":53,"rent_price_satang":54},"5532c49c-d819-4dda-b8a0-71514a14df31","x3d-selldrug","X3D Sell Drug","Shady buyers appear around the map on a timer and pay in black money. Runs on ESX or standalone.","public\u002Fproducts\u002Fx3d-selldrug\u002Fcover\u002F38844a64037d78d6.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-selldrug\u002Fcover\u002F38844a64037d78d6.jpg",[289,211],[605,606,607,608,609,610,611,612,289,588,544,40,41,42,613,614,615,616,617,618,590,619],"ขายยา","งานขายยา","sell drug","drug selling","ของผิดกฎหมาย","เงินดำ","black money","ผู้รับซื้อ","จุด10","จุดสิบ","จุดขายยา","ขายของจุด10","ขายของลับ","ฟอกเงิน","ผู้รับซื้อรายใหญ่","1.2.6","2026-10-12T17:19:19.018788Z","2026-09-24T03:39:03.703963Z",{"id":624,"slug":625,"name":626,"summary":627,"price_thb":20,"license_mode":21,"cover_key":628,"cover_url":629,"category_slugs":630,"tags":631,"latest_version":278,"latest_released_at":651,"published_at":652,"has_docs":553,"config":53,"rent_price_satang":54},"8e4dcdf4-7c70-4185-a3c9-15bb5328c457","x3d-useitem","X3D Use Item","Painkillers, bandages, AED, armor, helmet, repair kits, ammo, loot boxes and buff food in one system that needs only ESX.","public\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg",[260,238],[632,633,634,635,636,637,638,639,640,641,642,643,644,40,41,42,645,646,647,648,649,650],"use item","ไอเทมใช้ได้","usable items","ยา","ผ้าพันแผล","aed","ชุบคนล้ม","ซ่อมรถ","กระสุน","กล่องสุ่ม","อาหาร","เสื้อเกราะ","หมวกกันน็อค","บัฟอาหาร","ชุดซ่อมรถ","เติมกระสุน","ยืมเสื้อเกราะ","ใช้ไอเทม","ไอเทมเติมเลือด","2026-10-12T17:19:33.653792Z","2026-09-24T02:05:34.038449Z",{"id":654,"slug":655,"name":656,"summary":657,"price_thb":20,"license_mode":21,"cover_key":658,"cover_url":659,"category_slugs":660,"tags":661,"latest_version":49,"latest_released_at":676,"published_at":677,"has_docs":553,"config":21,"rent_price_satang":54},"8c823bc1-1de6-41b6-bf82-146d5a55eeb5","x3d-progressbar","X3D Progress Bar","A peach-themed progress bar with ESC to cancel, a countdown, an automatic hotkey lock, and a bundled Thai font.","public\u002Fproducts\u002Fx3d-progressbar\u002Fcover\u002Ff6830df60f656452.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-progressbar\u002Fcover\u002Ff6830df60f656452.jpg",[25],[662,663,664,665,666,667,668,25,669,40,41,42,670,671,672,673,674,675],"progressbar","progress bar","แถบโหลด","แถบความคืบหน้า","esx_progressbar","esx progressbar","ui","ยกเลิก esc","หลอดโหลด","ฟอนต์ไทย","นับเวลาถอยหลัง","ล็อกปุ่มลัด","โปรเกรสบาร์","แทน esx_progressbar","2026-10-12T17:19:45.934106Z","2026-09-24T01:22:17.768991Z",{"id":679,"slug":680,"name":681,"summary":682,"price_thb":20,"license_mode":21,"cover_key":683,"cover_url":684,"category_slugs":685,"tags":686,"latest_version":278,"latest_released_at":700,"published_at":701,"has_docs":52,"config":53,"rent_price_satang":54},"63ce5efe-2f18-499e-a52b-8155a6cebb84","x3d-slide","X3D Slide","A shooter-style forward slide on Shift plus one key, with a cooldown to stop spam. Fully configurable, nothing else needed.","public\u002Fproducts\u002Fx3d-slide\u002Fcover\u002F8c8383608791f58a.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-slide\u002Fcover\u002F8c8383608791f58a.jpg",[238],[687,688,689,690,691,692,693,694,188,40,41,42,695,696,697,698,699],"slide","สไลด์","slide fivem","ท่าสไลด์","หลบ","dodge","ท่าทาง","คูลดาวน์","สไลด์แบบเกมยิง","Shift สไลด์","ท่าหลบเกมยิง","ปุ่มสไลด์","ปรับแรงสไลด์","2026-10-12T17:20:03.227099Z","2026-09-24T01:21:56.84494Z",{"id":703,"slug":704,"name":705,"summary":706,"price_thb":20,"license_mode":21,"cover_key":707,"cover_url":708,"category_slugs":709,"tags":710,"latest_version":226,"latest_released_at":724,"published_at":725,"has_docs":52,"config":53,"rent_price_satang":54},"9b62b8ed-5911-47a8-b695-3320a6183758","x3d-notify","X3D Notify","Notification cards in nine positions, with item icons and rarity frames, and full Thai support.","public\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg",[25],[711,712,713,714,715,716,668,25,671,717,40,41,42,718,719,720,721,722,723],"notify","notification","แจ้งเตือน","แจ้งเตือน fivem","esx_notify","esx notify","ไอคอนไอเทม","การ์ดแจ้งเตือน","กรอบความหายาก","แจ้งเตือน 9 ตำแหน่ง","สีในข้อความ","แทน esx_notify","แจ้งเตือนไอเทม","2026-10-12T17:20:21.047259Z","2026-09-24T01:21:40.547491Z",{"id":727,"slug":728,"name":729,"summary":730,"price_thb":20,"license_mode":21,"cover_key":731,"cover_url":732,"category_slugs":733,"tags":734,"latest_version":393,"latest_released_at":745,"published_at":746,"has_docs":52,"config":21,"rent_price_satang":54},"e6dc80f3-4f29-4d01-bffa-eba6829c6497","x3d-loadingscreen","X3D Loading Screen","A terminal-style loading screen with an ENTER WORLD button the player presses before spawning. One HTML file, no build step.","public\u002Fproducts\u002Fx3d-loadingscreen\u002Fcover\u002F32f1538b8e18f4db.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-loadingscreen\u002Fcover\u002F32f1538b8e18f4db.jpg",[25],[735,736,737,738,739,740,668,188,40,41,42,741,742,670,743,744],"loading screen","หน้าโหลด","หน้าโหลด fivem","loadingscreen","esx_loadingscreen","enter world","ปุ่มเข้าเมือง","หน้าโหลดเทอร์มินัล","พื้นหลังวิดีโอ","เพลงหน้าโหลด","2026-10-12T17:20:39.269405Z","2026-09-24T00:50:19.336351Z",{"id":748,"slug":749,"name":750,"summary":751,"price_thb":20,"license_mode":21,"cover_key":752,"cover_url":753,"category_slugs":754,"tags":756,"latest_version":772,"latest_released_at":773,"published_at":774,"has_docs":52,"config":21,"rent_price_satang":54},"37f7d9db-f90d-4eed-861b-922da1072932","es-extended","ESX Legacy Core — X3D Build","A faster es_extended that stops player saves going corrupt, autosaves every 10 minutes and freezes the economy before a restart. Drop-in, same resource name.","public\u002Fproducts\u002Fes-extended\u002Fcover\u002Fa0b783dc4bf383e9.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fes-extended\u002Fcover\u002Fa0b783dc4bf383e9.jpg",[755],"optimization",[40,757,758,759,760,761,762,763,764,765,41,42,766,767,768,769,770,771],"es_extended","esx legacy","esx core","esx_core","framework","core","esx ฟรี","ดาวน์โหลด esx","esx legacy 1.13","กันข้อมูลหาย","กันดูป","audit log","เซฟผู้เล่น","esx fork","กันตกทะลุแมพ","1.13.6","2026-10-12T17:20:52.726747Z","2026-09-23T13:28:50.819982Z",{"id":776,"slug":777,"name":778,"summary":779,"price_thb":20,"license_mode":21,"cover_key":780,"cover_url":781,"category_slugs":782,"tags":783,"latest_version":797,"latest_released_at":798,"published_at":799,"has_docs":52,"config":53,"rent_price_satang":54},"7c86bf83-0df0-4e59-ab59-461ac4a2bff8","x3d-skin","X3D Character Skin","A 77-slot character editor with an orbiting camera, poses and lighting. No skinchanger, no database, any framework.","public\u002Fproducts\u002Fx3d-skin\u002Fcover\u002Fdb520ac6e2e3d502.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fcover\u002Fdb520ac6e2e3d502.jpg",[25],[40,188,784,785,786,787,788,789,790,41,42,791,792,793,794,795,796],"ตกแต่งตัวละคร","skin","character customization","skin creator","แต่งตัวละคร","ร้านเสื้อผ้า","ร้านตัดผม","ตู้เสื้อผ้า","ร้านเสริมสวย","ร้านหน้ากาก","ท่าโพส","แต่งหน้า","ไม่ต้องใช้ skinchanger","1.5.4","2026-10-12T17:21:14.159219Z","2026-09-22T04:02:41.988907Z",{"id":801,"slug":802,"name":803,"summary":804,"price_thb":20,"license_mode":21,"cover_key":805,"cover_url":806,"category_slugs":807,"tags":808,"latest_version":226,"latest_released_at":819,"published_at":820,"has_docs":52,"config":53,"rent_price_satang":54},"7337afbc-ca0d-4071-9de4-2cc04bd1b4e6","x3d-menu","X3D Main Menu","A server main menu: system cards, announcements, timed events, an in-game guidebook and per-player settings. No database, any framework.","public\u002Fproducts\u002Fx3d-menu\u002Fcover\u002F8a1dbb30861b0387.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-menu\u002Fcover\u002F8a1dbb30861b0387.jpg",[25],[40,188,809,810,811,812,240,813,41,42,814,815,816,817,818],"เมนูหลัก","main menu","menu","ประกาศ","คู่มือเมือง","เมนูเมือง","กฎเมือง","เมนู F4","ตั้งค่าผู้เล่น","แบนเนอร์อีเวนต์","2026-10-12T17:21:29.681926Z","2026-09-21T04:20:29.437521Z",{"id":822,"slug":823,"name":824,"summary":825,"price_thb":20,"license_mode":21,"cover_key":826,"cover_url":827,"category_slugs":828,"tags":829,"latest_version":842,"latest_released_at":843,"published_at":844,"has_docs":52,"config":53,"rent_price_satang":54},"7a9dd386-11c0-4f21-8c2e-cfa7dc24d15d","x3d-dailylogin","X3D Daily Login","Free daily check-in with streaks and a fully editable reward table, no database required, a full bag never costs the reward, works with any framework.","public\u002Fproducts\u002Fx3d-dailylogin\u002Fcover\u002Fffcad7901926aa67.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-dailylogin\u002Fcover\u002Fffcad7901926aa67.jpg",[238],[40,188,830,831,832,833,834,41,42,835,836,837,838,839,840,841],"เช็คอินรายวัน","daily login","daily reward","สตรีค","รางวัลรายวัน","ล็อคอินรายวัน","รางวัลค้างรับ","รับย้อนหลัง","โบนัสเวลาเล่น","รางวัลเข้าเกม","เช็คชื่อรายวัน","ไม่ต้องใช้ฐานข้อมูล","1.4.3","2026-10-12T17:21:47.885233Z","2026-09-20T10:37:48.155794Z",{"id":846,"slug":847,"name":848,"summary":849,"price_thb":20,"license_mode":21,"cover_key":850,"cover_url":851,"category_slugs":852,"tags":853,"latest_version":867,"latest_released_at":868,"published_at":869,"has_docs":52,"config":53,"rent_price_satang":54},"83c7d7cb-bde4-45e3-a552-d7e377e4dc5d","x3d-mailbox","X3D Mailbox","Free offline mailbox with item and money attachments plus \u002Fredeem codes, no database required — Mail and Safe tabs, any framework through adapter files.","public\u002Fproducts\u002Fx3d-mailbox\u002Fcover\u002F743a9e72c1ae8d6d.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-mailbox\u002Fcover\u002F743a9e72c1ae8d6d.jpg",[238],[40,42,854,855,188,856,857,41,858,859,860,861,862,863,864,865,866,841],"mailbox","redeem code","กล่องจดหมาย","ของแนบ","รีดีมโค้ด","ส่งของออฟไลน์","โค้ดรับของ","กรอกโค้ดรับของ","จดหมายออฟไลน์","ส่งของให้คนออฟไลน์","โค้ดแจกของ","แจกของกิจกรรม","ของชดเชย","1.7.2","2026-10-12T17:22:30.892527Z","2026-09-19T19:05:39.140076Z",{"id":871,"slug":872,"name":873,"summary":874,"price_thb":20,"license_mode":21,"cover_key":875,"cover_url":876,"category_slugs":877,"tags":878,"latest_version":49,"latest_released_at":889,"published_at":890,"has_docs":52,"config":53,"rent_price_satang":54},"fd28d581-12ee-43b8-9dfb-aa18defe53be","x3d-carry","X3D Carry","Free player carry script: carry and steal bodies, fireman carry and piggyback, consent before carrying the living, fully server authoritative, no dependencies.","public\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg",[238],[40,188,879,880,881,41,42,882,883,884,885,886,887,888],"อุ้มศพ","carry","อุ้มผู้เล่น","แย่งศพ","แบกผู้เล่น","ขี่หลัง","อุ้มพาดบ่า","ลากศพ","เมืองแก๊ง","อุ้มเพื่อน","2026-10-12T17:22:50.777785Z","2026-09-16T13:52:19.956202Z",{"id":892,"slug":893,"name":894,"summary":895,"price_thb":20,"license_mode":21,"cover_key":896,"cover_url":897,"category_slugs":898,"tags":899,"latest_version":174,"latest_released_at":910,"published_at":911,"has_docs":52,"config":53,"rent_price_satang":54},"12cb8b4e-b8db-4ad1-a8a2-bd0679aabec5","x3d-environment","X3D Environment","Free one-file map cleaner: no NPCs, no AI traffic, no scenarios, no idle cam, and blood, tire marks and wounds wiped away.","public\u002Fproducts\u002Fx3d-environment\u002Fcover\u002F7aa9b73e2efb1416.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-environment\u002Fcover\u002F7aa9b73e2efb1416.jpg",[755],[40,188,900,755,901,902,903,41,42,904,905,906,907,908,909],"ล้างแมพ","ลดแลค","เพิ่ม FPS","ปิด NPC","ปิดรถ AI","ล้างคราบเลือด","ลบลอยยาง","ปิดกล้อง idle","ลบ NPC","แมพโล่ง","2026-10-12T17:23:03.418375Z","2026-09-16T09:49:13.991696Z",1,31,[915,921,925,929],{"slug":916,"title":917,"description":918,"date":919,"updated":920,"focused":52},"fivem-phone-death-screen","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.","2026-09-25","2026-09-27",{"slug":922,"title":923,"description":924,"date":920,"focused":52},"fivem-voice-stutter-pma-voice","FiveM voice stutter: is it really bandwidth? pma-voice\u002FMumble 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.",{"slug":926,"title":927,"description":928,"date":920,"focused":52},"fxmanifest-lua54-cerulean","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\u002Fbodacious\u002F__resource.lua history, and a working fxmanifest.lua for an ESX script.",{"slug":930,"title":931,"description":932,"date":933,"focused":52},"fivem-banking-script","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\u002Fesx_banking, and X3D Banking, free and integrated with X3D Phone.","2026-09-26",1792316313058]