[{"data":1,"prerenderedAt":905},["ShallowReactive",2],{"site":3,"docs-slug-site":15,"docs-product-en-x3d-replay":21,"docs-products-en":81,"docs-html-en-x3d-replay":858},{"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},{"site":16,"contact":18,"seo":19,"payment":20},{"name":5,"host":6,"default_locale":7,"locales":17},[7,9],{"discord_invite":11,"email":12,"line":12},{"google_site_verification":12,"bing_site_verification":12},{"bank_name":12,"account_name":12,"account_no":12,"promptpay_id":12},{"id":22,"slug":23,"name":24,"summary":25,"price_thb":26,"license_mode":27,"cover_key":28,"cover_url":29,"category_slugs":30,"tags":33,"latest_version":53,"latest_released_at":54,"published_at":55,"has_docs":56,"config":57,"rent_price_satang":58,"description_md":59,"docs_md":60,"seo_title":61,"seo_description":62,"media":63,"versions":78},"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",[31,32],"anticheat","admin",[34,35,36,37,38,39,40,41,42,43,44,45,46,47,31,48,49,50,51,52],"esx","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",true,"owners",12000,"# Watch any player back, every second — in game, no clips needed\n\nEvery player is recorded automatically from join to leave. Admins open the replay in game: stand-ins walk, shoot, drive and wear the same clothes as at the time, with the keys they pressed and the scripts they used. Settle reports from what really happened instead of waiting for player clips.\n\n---\n\n## Features\n\n- [+] Records every player, every session, automatically — nothing to start\n- [+] In-game playback with the same clothes, face and poses as at the time\n- [+] 4 cameras: chase \u002F player POV \u002F free cam \u002F map\n- [+] Event timeline for hits, kills and deaths — click to jump there\n- [+] Nearby players replay too, follow anyone, speed 0.25x–8x\n- [+] Pressed-key panel and fire-click timing\n- [+] Commands, hotkeys and events players used in other scripts — one fxmanifest line\n- [+] Macro flags from unnaturally even input timing, shown on the timeline\n- [+] Money, item and job changes logged from ESX automatically\n- [+] Anticheat, report and macro sessions are kept; the rest expire after N days\n- [+] Session browser: player → day → session, start at any time\n- [+] Join card where players accept recording, wording editable — or a notice, or off\n\n---\n\n## Special BETA pricing — help test and improve X3D\n\nX3D Replay is currently in **BETA**. We keep the price accessible so more customers can join testing across a wider range of servers. Report issues and share feedback through Discord to help us improve the system before the full release.\n\n## What you can use it for\n\n- **Settle reports** — shot after surrendering, random kills, hit-and-run: open that moment and watch\n- **Check cheats and macros** — compare pressed keys with what happened, spot clicks that are too even\n- **Debug scripts** — see which command and event a player sent before money or items changed\n- **Connect other scripts** — `exports.x3d_replay:Mark(src, 'report', {...})` puts an event on the timeline and keeps the session\n\n## Why X3D\n\n- **Real in-game playback**, not a text log — positions, poses, clothes and vehicles of everyone around\n- **Viewer is isolated** in its own routing bucket, invisible to the live city\n- **Files stay on your server** — no open ports, no third-party host, old files cleaned up for you\n- **Readable config** with Thai\u002FEnglish comments on every line, every part switchable\n- **Works with X3D Admin Panel** — adds a replay menu to the panel (optional)\n- **Frequent updates** — buy once, get every version · Discord support\n\n## Requirements\n\nESX Legacy · oxmysql\n","## Installation\n\n### 1. Database\n\nRun the bundled `install.sql` against the same database `oxmysql` uses.\n\n```\nmysql -u \u003Cuser> -p \u003Cdatabase> \u003C install.sql\n```\n\nOr paste the whole file into HeidiSQL \u002F phpMyAdmin \u002F DBeaver and run it · safe to run again, existing data is kept.\n\n### 2. Files\n\nPut the `x3d_replay` folder in `resources\u002F` — **do not rename it** (other scripts reference this name in the inject line).\n\n### 3. server.cfg\n\n`ensure` after oxmysql and es_extended, and **before** any script that uses the inject files.\n\n```cfg\nensure oxmysql\nensure es_extended\nensure x3d_replay\n\nset x3d_license_x3d-replay \"X3D-XXXXX-XXXXX-XXXXX-XXXXX\"\n\n# optional: grant viewing by ACE instead of ESX groups\nadd_ace group.admin x3d_replay.admin allow\n```\n\nYou can put the key in `config\u002Fconfig.license.lua` instead of the convar.\n\n### 4. Check it works\n\nJoin as an admin and type `\u002Freplay`. The browser opens with your own name and the session being recorded (green dot = online).\n\n### 5. Updating\n\nReplay files live in `x3d_replay\u002Fdata\u002F` — **keep the `data` folder when you update** or every old replay is lost.\n\n## Watching\n\n| Action | How |\n|---|---|\n| Open the browser | `\u002Freplay` → player → day → session → start time → watch |\n| Open directly | `\u002Freplay \u003Csession id \\| online player id \\| name> [mm:ss]` |\n| Exit | `Esc` or `\u002Freplay stop` |\n| Toggle mouse \u002F camera look | `Alt` |\n| Follow someone else | click a name in the players panel or press `1`–`9` |\n\nThe viewer is moved to their own routing bucket (`Config.Viewer.BucketBase` + server id), invisible to the live city, and returned to where they were on exit.\nEvery view is logged to `TB_X3D_REPLAY_ACCESS` (who watched which session, when).\n\n## Configuration — `config\u002Fconfig.general.lua`\n\n| Section | What it controls |\n|---|---|\n| `Config.Record` | Sample rate (`Hz`) · days to keep (`RetentionDays`) · events that keep a session forever (`KeepKinds`) |\n| `Config.Storage` | Storage folder (empty = `data\u002F` inside the script) |\n| `Config.Client` | On\u002Foff: shots · poses · clothes\u002Fface · pressed keys |\n| `Config.Actions` | ESX money\u002Fitems\u002Fjob · inject data · event argument summaries · ignored names · macro thresholds |\n| `Config.Detect` | Flag melee hits that land on the head · melee weapon list |\n| `Config.Viewer` | Command · groups allowed · radius and count of nearby players loaded · file send rate |\n| `Config.Consent` | `'card'` accept card · `'notice'` plain notice · `'off'` none (put it in your rules) · wording in `Text` (`{days}` = retention days) · bump `Version` = everyone accepts again |\n| `Config.Voice` | Still in testing — leave `Enabled = false` |\n\n## Script usage capture (inject)\n\nAdd as the **first line** of each block in the `fxmanifest.lua` of any script you want recorded. No code changes, no dependencies.\n\n```lua\nclient_scripts { '@x3d_replay\u002Finject\u002Fclient.lua', 'client\u002Fmain.lua' }\nserver_scripts { '@x3d_replay\u002Finject\u002Fserver.lua', 'server\u002Fmain.lua' }\n```\n\n- **client** — typed commands and hotkeys (shown as `[F9]`) · NUI buttons · events sent to the server · animations the script plays on the player (the stand-in plays them too)\n- **server** — every net event a player sends into that script\n- `x3d_replay` not running = no effect\n\nAfter adding the inject lines, restart `x3d_replay` first, wait a moment, then restart that script.\n\n## Animations \u002F emotes\n\nGTA cannot report which animation a ped plays, so the emote script has to tell us. The dpemotes wiring is in `addons\u002Fhooks\u002Fclient.lua` · from any other script:\n\n```lua\nexports.x3d_replay:Anim(dict, name, flag)\nexports.x3d_replay:AnimStop()\n```\n\nScripts with the client inject do this automatically.\n\n## Hooks — `addons\u002Fhooks\u002F`\n\n| File | Functions |\n|---|---|\n| `server.lua` | `Hooks.ShouldRecord(src)` return `false` = do not record this player · `Hooks.OnMark(src, kind, data)` every written event (forward to logs \u002F Discord) · `Hooks.CanView(src)` (optional) return `true`\u002F`false` instead of the group check |\n| `client.lua` | `Hooks.OnView(on)` hide\u002Fshow other scripts' HUD when a replay starts\u002Fends |\n\nOther scripts can listen: `AddEventHandler('x3d_replay:viewing', function(on) end)` or `LocalPlayer.state.x3dReplay`.\n\n## Exports (server)\n\n```lua\nexports.x3d_replay:Mark(src, 'report', { by = reporterSrc, text = '...' })   -- 'anticheat' \u002F 'report' \u002F 'bookmark' = keep forever\nexports.x3d_replay:IsRecording(src)          -- true \u002F false\nexports.x3d_replay:GetSession(src)           -- { id, t } or nil\nexports.x3d_replay:Open(viewerSrc, target, 'mm:ss')   -- watch (target = session id \u002F player id \u002F name)\nexports.x3d_replay:OpenBrowser(viewerSrc, target)     -- open the browser (target optional)\n```\n\n## X3D Admin Panel (optional)\n\nWith X3D Admin Panel installed you get a Replays menu: players table → open that player's browser, closing returns to the panel.\nPermissions live in the panel › roles: `mod.x3d_replay.players.view` \u002F `mod.x3d_replay.players.action.browse`.\n\n## Troubleshooting\n\n- **`LICENSE CHECK FAILED`** — `LICENSE_INVALID` key does not match the product · `NETWORK` license server unreachable · `LICENSE_IP_MISMATCH` IP changed, update it in your account page\n- **No permission** — the ESX group is not in `Config.Viewer.Groups` and there is no `x3d_replay.admin` ACE\n- **`Failed to load script @x3d_replay\u002Finject\u002Fclient.lua`** — `ensure x3d_replay` before the scripts that use the inject\n- **Stand-in does not play a pose** — that script has no client inject, or the emote script is not wired\n- **No money\u002Fitems on the timeline** — `Config.Actions.Framework` must be on, ESX required\n- **Old replays gone** — the `data\u002F` folder was deleted on update, or past `RetentionDays` (kept sessions are never deleted)\n","FiveM ESX Replay Script - Player Demo Recorder","FiveM ESX replay system: records every player automatically, watch back in game with pressed keys, script usage and macro flags as report evidence.",[64,67,70,72,74,76],{"kind":65,"url":66},"video_url","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=PpZ7Eb53Ajk",{"kind":68,"url":69},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fmedia\u002Fx3d-replay-fivem-browser.png",{"kind":68,"url":71},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fmedia\u002Fx3d-replay-fivem-carry-timeline.png",{"kind":68,"url":73},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fmedia\u002Fx3d-replay-fivem-switch-player.png",{"kind":68,"url":75},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fmedia\u002Fx3d-replay-fivem-pov.png",{"kind":68,"url":77},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fmedia\u002Fx3d-replay-fivem-map.png",[79],{"version":53,"released_at":54,"changelog_md":80},"### Changed\n- `core\u002Fserver\u002Fvoice.js` now ships obfuscated like the rest of `core\u002F`",{"items":82,"page":856,"size":857,"total":857},[83,86,109,138,167,196,229,254,281,311,336,362,390,417,445,473,497,517,540,567,597,622,646,670,691,719,744,765,789,814,835],{"id":22,"slug":23,"name":24,"summary":25,"price_thb":26,"license_mode":27,"cover_key":28,"cover_url":29,"category_slugs":84,"tags":85,"latest_version":53,"latest_released_at":54,"published_at":55,"has_docs":56,"config":57,"rent_price_satang":58},[31,32],[34,35,36,37,38,39,40,41,42,43,44,45,46,47,31,48,49,50,51,52],{"id":87,"slug":88,"name":89,"summary":90,"price_thb":26,"license_mode":27,"cover_key":91,"cover_url":92,"category_slugs":93,"tags":94,"latest_version":106,"latest_released_at":107,"published_at":108,"has_docs":56,"config":57,"rent_price_satang":58},"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",[31],[34,95,96,31,97,98,99,47,100,101,102,103,104,105],"standalone","แอนตี้โกง","ป้องกันแฮก","กันโกง","HWID ban","ภาพหลักฐาน","ล็อกบัญชี Steam Discord","แบนเครื่อง","คิวยศ Discord","กัน event สแปม","แอนตี้โกง ESX","1.0.0","2026-09-16T09:45:51.78533Z","2026-09-16T09:46:00.05928Z",{"id":110,"slug":111,"name":112,"summary":113,"price_thb":114,"license_mode":27,"cover_key":115,"cover_url":116,"category_slugs":117,"tags":121,"latest_version":134,"latest_released_at":135,"published_at":136,"has_docs":56,"config":57,"rent_price_satang":137},"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",[118,119,120],"casino","economy","entertainment",[34,95,122,123,118,124,125,126,127,128,129,130,131,132,133],"คาสิโน","สล็อต","slot","มินิเกม","minigame","RTP 97.5%","มาห์จอง","คาสเคด","ฟรีสปิน","ตู้สล็อต","ซื้อฟีเจอร์","ปรับ RTP","1.1.4","2026-10-12T17:13:01.863556Z","2026-09-14T15:28:02.281478Z",50000,{"id":139,"slug":140,"name":141,"summary":142,"price_thb":143,"license_mode":144,"cover_key":145,"cover_url":146,"category_slugs":147,"tags":150,"latest_version":162,"latest_released_at":163,"published_at":164,"has_docs":56,"config":165,"rent_price_satang":166},"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.",0,"none","public\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg",[148,149],"hud","gameplay",[151,152,153,154,155,156,157,158,159,160,161],"อีเวนต์","อีเวนต์บนแผนที่","แผนที่","จุดนำทาง","นับถอยหลัง","pause menu","map events","event","waypoint","ฟรี","free","1.0.3","2026-10-12T17:13:20.327337Z","2026-10-12T04:21:56.480796Z","public",null,{"id":168,"slug":169,"name":170,"summary":171,"price_thb":143,"license_mode":144,"cover_key":172,"cover_url":173,"category_slugs":174,"tags":176,"latest_version":193,"latest_released_at":194,"published_at":195,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149,175],"inventory",[177,178,179,180,181,182,183,184,185,186,34,160,161,187,188,189,190,191,192],"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":197,"slug":198,"name":199,"summary":200,"price_thb":143,"license_mode":144,"cover_key":201,"cover_url":202,"category_slugs":203,"tags":205,"latest_version":53,"latest_released_at":227,"published_at":228,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149,204],"gangs",[206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,34,95,160,161,221,222,223,224,225,226],"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":230,"slug":231,"name":232,"summary":233,"price_thb":143,"license_mode":144,"cover_key":234,"cover_url":235,"category_slugs":236,"tags":238,"latest_version":53,"latest_released_at":252,"published_at":253,"has_docs":56,"config":165,"rent_price_satang":166},"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",[175,237],"garage",[239,240,241,242,243,244,245,186,34,160,161,246,247,248,249,250,251],"trunk","ท้ายรถ","ท้ายรถ fivem","vehicle storage","trunk inventory","esx trunk","เก็บของในรถ","ตู้ท้ายรถ","รถงาน","กล่องเก็บของหน้ารถ","น้ำหนักท้ายรถ","ล็อกรถ","เปิดท้ายรถ","2026-10-12T17:14:46.845123Z","2026-10-05T04:28:52.749188Z",{"id":255,"slug":256,"name":257,"summary":258,"price_thb":143,"license_mode":144,"cover_key":259,"cover_url":260,"category_slugs":261,"tags":263,"latest_version":53,"latest_released_at":279,"published_at":280,"has_docs":56,"config":165,"rent_price_satang":166},"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",[175,262],"jobs",[264,265,266,267,268,269,270,271,186,34,160,161,272,273,274,275,276,277,278],"vault","stash","ตู้เซฟ","ตู้เก็บของ","ตู้เซฟ fivem","esx stash","job vault","ตู้หน่วยงาน","ตู้เซฟแก๊ง","ตู้ส่วนตัว","แชร์ตู้","อัปเกรดตู้","ตู้เซฟตำรวจ","ตู้เซฟอาชีพ","ลิมิตตู้","2026-10-12T17:15:03.928293Z","2026-10-05T04:28:43.828514Z",{"id":282,"slug":283,"name":284,"summary":285,"price_thb":143,"license_mode":144,"cover_key":286,"cover_url":287,"category_slugs":288,"tags":289,"latest_version":308,"latest_released_at":309,"published_at":310,"has_docs":56,"config":165,"rent_price_satang":166},"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",[32],[290,291,292,293,294,295,102,296,297,298,299,300,51,301,34,95,160,161,302,303,304,305,306,307],"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":312,"slug":313,"name":314,"summary":315,"price_thb":143,"license_mode":144,"cover_key":316,"cover_url":317,"category_slugs":318,"tags":319,"latest_version":134,"latest_released_at":334,"published_at":335,"has_docs":56,"config":165,"rent_price_satang":166},"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",[175,148],[175,320,321,322,323,324,325,326,327,328,34,160,161,329,330,331,332,333],"กระเป๋า","กระเป๋า fivem","ui กระเป๋า","esx inventory","inventory fivem","ช่องลัด","hotbar","ไอเทม","nui","คูปองขยายช่อง","คูปองน้ำหนัก","ความหายากไอเทม","ค้นกระเป๋า","จำกัดน้ำหนัก","2026-10-12T17:16:22.733967Z","2026-10-05T04:10:14.693356Z",{"id":337,"slug":338,"name":339,"summary":340,"price_thb":143,"license_mode":144,"cover_key":341,"cover_url":342,"category_slugs":343,"tags":344,"latest_version":134,"latest_released_at":360,"published_at":361,"has_docs":56,"config":165,"rent_price_satang":166},"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",[120],[345,346,347,348,349,350,351,352,353,34,160,161,354,355,356,357,358,359],"หมอดู","ดูดวง","เซียมซี","ไพ่ยิปซี","tarot","ราศี","ดวงรายวัน","fortune teller","npc","ดวงรายเดือน","ไพ่ทาโร่","เลขมงคล","สีมงคล","ไพ่กลับหัว","จุดหมอดู","2026-10-12T17:16:40.12128Z","2026-09-26T14:59:27.315955Z",{"id":363,"slug":364,"name":365,"summary":366,"price_thb":143,"license_mode":144,"cover_key":367,"cover_url":368,"category_slugs":369,"tags":370,"latest_version":387,"latest_released_at":388,"published_at":389,"has_docs":56,"config":165,"rent_price_satang":166},"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",[119],[371,372,373,374,375,376,377,378,379,380,34,160,161,381,382,383,384,385,386],"banking","ธนาคาร","ระบบธนาคาร","atm","ตู้ atm","โอนเงิน","โอนด้วยเบอร์โทร","esx banking","bank script","ประวัติรายการ","ถอนด่วน","วงเงินโอน","สาขาธนาคาร","ฝากเงิน","ถอนเงิน","เพิ่มตู้ ATM","1.1.8","2026-10-12T17:16:55.98941Z","2026-09-26T14:59:08.07128Z",{"id":391,"slug":392,"name":393,"summary":394,"price_thb":143,"license_mode":144,"cover_key":395,"cover_url":396,"category_slugs":397,"tags":398,"latest_version":134,"latest_released_at":415,"published_at":416,"has_docs":56,"config":165,"rent_price_satang":166},"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",[120],[399,400,401,402,403,404,405,406,407,408,34,160,161,409,410,411,412,413,414],"boombox","ลำโพง","ลำโพงเปิดเพลง","เปิดเพลง youtube","music script","fivem music","xsound","youtube","คิวเพลง","ติดบนรถ","ลำโพงติดรถ","เปิดเพลงในรถ","ฟังเพลงด้วยกัน","เพลงร่วมกัน","ลำโพงวางพื้น","จำกัดลำโพง","2026-10-12T17:17:14.482272Z","2026-09-26T14:56:09.091062Z",{"id":418,"slug":419,"name":420,"summary":421,"price_thb":143,"license_mode":144,"cover_key":422,"cover_url":423,"category_slugs":424,"tags":425,"latest_version":442,"latest_released_at":443,"published_at":444,"has_docs":56,"config":165,"rent_price_satang":166},"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",[148],[426,427,428,429,430,431,432,433,434,435,436,34,160,161,437,438,439,440,441],"respawn","หน้าจอตาย","death screen","เรียกหมอ","call ems","ambulance","esx_ambulancejob","ชุบตัวเอง","จุดเกิดใหม่","dispatch","สรุปการตาย","รอหมอ","กันหนีตาย","ปุ่มเรียกหมอ","เกิดใหม่เมือง","ชุดปฐมพยาบาล","1.1.3","2026-10-12T17:17:26.33517Z","2026-09-25T16:14:21.42282Z",{"id":446,"slug":447,"name":448,"summary":449,"price_thb":143,"license_mode":144,"cover_key":450,"cover_url":451,"category_slugs":452,"tags":453,"latest_version":442,"latest_released_at":471,"published_at":472,"has_docs":56,"config":165,"rent_price_satang":166},"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.","public\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg",[148],[454,455,456,457,458,459,460,435,461,462,463,464,465,34,160,161,466,467,468,429,469,470],"phone","โทรศัพท์","โทรศัพท์ fivem","esx phone","phone script","sms","pma-voice","แจ้งเหตุ","ธนาคารมือถือ","buzz","dark chat","กล้อง","เบอร์หน่วยงาน","ออกบิล","แชร์ตำแหน่ง","กล้องโทรศัพท์","ไอเทมโทรศัพท์","2026-10-12T17:18:13.372348Z","2026-09-25T15:32:10.424119Z",{"id":474,"slug":475,"name":476,"summary":477,"price_thb":143,"license_mode":144,"cover_key":478,"cover_url":479,"category_slugs":480,"tags":481,"latest_version":442,"latest_released_at":494,"published_at":495,"has_docs":496,"config":144,"rent_price_satang":166},"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",[204,149],[482,483,266,484,125,126,485,486,95,487,160,161,488,489,490,491,492,493],"safe cracking","เจาะตู้เซฟ","หมุนตู้เซฟ","มินิเกม fivem","export","crime","หมุนหน้าปัด","ตู้เซฟธนาคาร","ตู้เซฟร้าน","ตู้เซฟบ้าน","ไม่ต้องใช้ ESX","มินิเกม A\u002FD","2026-10-12T17:18:34.435941Z","2026-09-24T03:53:28.3285Z",false,{"id":498,"slug":499,"name":500,"summary":501,"price_thb":143,"license_mode":144,"cover_key":502,"cover_url":503,"category_slugs":504,"tags":505,"latest_version":514,"latest_released_at":515,"published_at":516,"has_docs":496,"config":144,"rent_price_satang":166},"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",[204,149],[506,507,508,125,126,485,486,95,487,160,161,509,510,511,512,513],"lockpick","งัดล็อก","สะเดาะกุญแจ","งัดประตูบ้าน","งัดรถ","หมุดล็อก","มินิเกม WASD","ปรับความยาก","1.1.1","2026-10-12T17:18:46.115275Z","2026-09-24T03:53:14.231073Z",{"id":518,"slug":519,"name":520,"summary":521,"price_thb":143,"license_mode":144,"cover_key":522,"cover_url":523,"category_slugs":524,"tags":526,"latest_version":537,"latest_released_at":538,"published_at":539,"has_docs":56,"config":165,"rent_price_satang":166},"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",[525,204],"housing",[527,528,529,530,531,266,506,125,204,532,525,487,34,160,161,533,483,534,535,536],"งัดบ้าน","ปล้นบ้าน","house robbery","robbery","ปล้น","แก๊ง","คีย์การ์ด","เงินแดง","จุดค้นของ","ปล้นบ้านคูลดาวน์","1.2.4","2026-10-12T17:19:03.056031Z","2026-09-24T03:48:06.633278Z",{"id":541,"slug":542,"name":543,"summary":544,"price_thb":143,"license_mode":144,"cover_key":545,"cover_url":546,"category_slugs":547,"tags":548,"latest_version":564,"latest_released_at":565,"published_at":566,"has_docs":56,"config":165,"rent_price_satang":166},"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",[204,119],[549,550,551,552,553,554,555,556,204,532,487,34,160,161,557,558,559,560,561,562,534,563],"ขายยา","งานขายยา","sell drug","drug selling","ของผิดกฎหมาย","เงินดำ","black money","ผู้รับซื้อ","จุด10","จุดสิบ","จุดขายยา","ขายของจุด10","ขายของลับ","ฟอกเงิน","ผู้รับซื้อรายใหญ่","1.2.6","2026-10-12T17:19:19.018788Z","2026-09-24T03:39:03.703963Z",{"id":568,"slug":569,"name":570,"summary":571,"price_thb":143,"license_mode":144,"cover_key":572,"cover_url":573,"category_slugs":574,"tags":575,"latest_version":193,"latest_released_at":595,"published_at":596,"has_docs":496,"config":165,"rent_price_satang":166},"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",[175,149],[576,577,578,579,580,581,582,583,584,585,586,587,588,34,160,161,589,590,591,592,593,594],"use item","ไอเทมใช้ได้","usable items","ยา","ผ้าพันแผล","aed","ชุบคนล้ม","ซ่อมรถ","กระสุน","กล่องสุ่ม","อาหาร","เสื้อเกราะ","หมวกกันน็อค","บัฟอาหาร","ชุดซ่อมรถ","เติมกระสุน","ยืมเสื้อเกราะ","ใช้ไอเทม","ไอเทมเติมเลือด","2026-10-12T17:19:33.653792Z","2026-09-24T02:05:34.038449Z",{"id":598,"slug":599,"name":600,"summary":601,"price_thb":143,"license_mode":144,"cover_key":602,"cover_url":603,"category_slugs":604,"tags":605,"latest_version":442,"latest_released_at":620,"published_at":621,"has_docs":496,"config":144,"rent_price_satang":166},"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",[148],[606,607,608,609,610,611,612,148,613,34,160,161,614,615,616,617,618,619],"progressbar","progress bar","แถบโหลด","แถบความคืบหน้า","esx_progressbar","esx progressbar","ui","ยกเลิก esc","หลอดโหลด","ฟอนต์ไทย","นับเวลาถอยหลัง","ล็อกปุ่มลัด","โปรเกรสบาร์","แทน esx_progressbar","2026-10-12T17:19:45.934106Z","2026-09-24T01:22:17.768991Z",{"id":623,"slug":624,"name":625,"summary":626,"price_thb":143,"license_mode":144,"cover_key":627,"cover_url":628,"category_slugs":629,"tags":630,"latest_version":193,"latest_released_at":644,"published_at":645,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149],[631,632,633,634,635,636,637,638,95,34,160,161,639,640,641,642,643],"slide","สไลด์","slide fivem","ท่าสไลด์","หลบ","dodge","ท่าทาง","คูลดาวน์","สไลด์แบบเกมยิง","Shift สไลด์","ท่าหลบเกมยิง","ปุ่มสไลด์","ปรับแรงสไลด์","2026-10-12T17:20:03.227099Z","2026-09-24T01:21:56.84494Z",{"id":647,"slug":648,"name":649,"summary":650,"price_thb":143,"license_mode":144,"cover_key":651,"cover_url":652,"category_slugs":653,"tags":654,"latest_version":134,"latest_released_at":668,"published_at":669,"has_docs":56,"config":165,"rent_price_satang":166},"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",[148],[655,656,657,658,659,660,612,148,615,661,34,160,161,662,663,664,665,666,667],"notify","notification","แจ้งเตือน","แจ้งเตือน fivem","esx_notify","esx notify","ไอคอนไอเทม","การ์ดแจ้งเตือน","กรอบความหายาก","แจ้งเตือน 9 ตำแหน่ง","สีในข้อความ","แทน esx_notify","แจ้งเตือนไอเทม","2026-10-12T17:20:21.047259Z","2026-09-24T01:21:40.547491Z",{"id":671,"slug":672,"name":673,"summary":674,"price_thb":143,"license_mode":144,"cover_key":675,"cover_url":676,"category_slugs":677,"tags":678,"latest_version":308,"latest_released_at":689,"published_at":690,"has_docs":56,"config":144,"rent_price_satang":166},"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",[148],[679,680,681,682,683,684,612,95,34,160,161,685,686,614,687,688],"loading screen","หน้าโหลด","หน้าโหลด fivem","loadingscreen","esx_loadingscreen","enter world","ปุ่มเข้าเมือง","หน้าโหลดเทอร์มินัล","พื้นหลังวิดีโอ","เพลงหน้าโหลด","2026-10-12T17:20:39.269405Z","2026-09-24T00:50:19.336351Z",{"id":692,"slug":693,"name":694,"summary":695,"price_thb":143,"license_mode":144,"cover_key":696,"cover_url":697,"category_slugs":698,"tags":700,"latest_version":716,"latest_released_at":717,"published_at":718,"has_docs":56,"config":144,"rent_price_satang":166},"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",[699],"optimization",[34,701,702,703,704,705,706,707,708,709,160,161,710,711,712,713,714,715],"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":720,"slug":721,"name":722,"summary":723,"price_thb":143,"license_mode":144,"cover_key":724,"cover_url":725,"category_slugs":726,"tags":727,"latest_version":741,"latest_released_at":742,"published_at":743,"has_docs":56,"config":165,"rent_price_satang":166},"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",[148],[34,95,728,729,730,731,732,733,734,160,161,735,736,737,738,739,740],"ตกแต่งตัวละคร","skin","character customization","skin creator","แต่งตัวละคร","ร้านเสื้อผ้า","ร้านตัดผม","ตู้เสื้อผ้า","ร้านเสริมสวย","ร้านหน้ากาก","ท่าโพส","แต่งหน้า","ไม่ต้องใช้ skinchanger","1.5.4","2026-10-12T17:21:14.159219Z","2026-09-22T04:02:41.988907Z",{"id":745,"slug":746,"name":747,"summary":748,"price_thb":143,"license_mode":144,"cover_key":749,"cover_url":750,"category_slugs":751,"tags":752,"latest_version":134,"latest_released_at":763,"published_at":764,"has_docs":56,"config":165,"rent_price_satang":166},"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",[148],[34,95,753,754,755,756,151,757,160,161,758,759,760,761,762],"เมนูหลัก","main menu","menu","ประกาศ","คู่มือเมือง","เมนูเมือง","กฎเมือง","เมนู F4","ตั้งค่าผู้เล่น","แบนเนอร์อีเวนต์","2026-10-12T17:21:29.681926Z","2026-09-21T04:20:29.437521Z",{"id":766,"slug":767,"name":768,"summary":769,"price_thb":143,"license_mode":144,"cover_key":770,"cover_url":771,"category_slugs":772,"tags":773,"latest_version":786,"latest_released_at":787,"published_at":788,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149],[34,95,774,775,776,777,778,160,161,779,780,781,782,783,784,785],"เช็คอินรายวัน","daily login","daily reward","สตรีค","รางวัลรายวัน","ล็อคอินรายวัน","รางวัลค้างรับ","รับย้อนหลัง","โบนัสเวลาเล่น","รางวัลเข้าเกม","เช็คชื่อรายวัน","ไม่ต้องใช้ฐานข้อมูล","1.4.3","2026-10-12T17:21:47.885233Z","2026-09-20T10:37:48.155794Z",{"id":790,"slug":791,"name":792,"summary":793,"price_thb":143,"license_mode":144,"cover_key":794,"cover_url":795,"category_slugs":796,"tags":797,"latest_version":811,"latest_released_at":812,"published_at":813,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149],[34,161,798,799,95,800,801,160,802,803,804,805,806,807,808,809,810,785],"mailbox","redeem code","กล่องจดหมาย","ของแนบ","รีดีมโค้ด","ส่งของออฟไลน์","โค้ดรับของ","กรอกโค้ดรับของ","จดหมายออฟไลน์","ส่งของให้คนออฟไลน์","โค้ดแจกของ","แจกของกิจกรรม","ของชดเชย","1.7.2","2026-10-12T17:22:30.892527Z","2026-09-19T19:05:39.140076Z",{"id":815,"slug":816,"name":817,"summary":818,"price_thb":143,"license_mode":144,"cover_key":819,"cover_url":820,"category_slugs":821,"tags":822,"latest_version":442,"latest_released_at":833,"published_at":834,"has_docs":56,"config":165,"rent_price_satang":166},"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",[149],[34,95,823,824,825,160,161,826,827,828,829,830,831,832],"อุ้มศพ","carry","อุ้มผู้เล่น","แย่งศพ","แบกผู้เล่น","ขี่หลัง","อุ้มพาดบ่า","ลากศพ","เมืองแก๊ง","อุ้มเพื่อน","2026-10-12T17:22:50.777785Z","2026-09-16T13:52:19.956202Z",{"id":836,"slug":837,"name":838,"summary":839,"price_thb":143,"license_mode":144,"cover_key":840,"cover_url":841,"category_slugs":842,"tags":843,"latest_version":53,"latest_released_at":854,"published_at":855,"has_docs":56,"config":165,"rent_price_satang":166},"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",[699],[34,95,844,699,845,846,847,160,161,848,849,850,851,852,853],"ล้างแมพ","ลดแลค","เพิ่ม FPS","ปิด NPC","ปิดรถ AI","ล้างคราบเลือด","ลบลอยยาง","ปิดกล้อง idle","ลบ NPC","แมพโล่ง","2026-10-12T17:23:03.418375Z","2026-09-16T09:49:13.991696Z",1,31,{"html":859,"headings":860},"\u003Ch2 id=\"installation\">Installation\u003C\u002Fh2>\n\u003Ch3 id=\"1-database\">1. Database\u003C\u002Fh3>\n\u003Cp>Run the bundled \u003Ccode>install.sql\u003C\u002Fcode> against the same database \u003Ccode>oxmysql\u003C\u002Fcode> uses.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>mysql -u &lt;user&gt; -p &lt;database&gt; &lt; install.sql\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Or paste the whole file into HeidiSQL \u002F phpMyAdmin \u002F DBeaver and run it · safe to run again, existing data is kept.\u003C\u002Fp>\n\u003Ch3 id=\"2-files\">2. Files\u003C\u002Fh3>\n\u003Cp>Put the \u003Ccode>x3d_replay\u003C\u002Fcode> folder in \u003Ccode>resources\u002F\u003C\u002Fcode> — \u003Cstrong>do not rename it\u003C\u002Fstrong> (other scripts reference this name in the inject line).\u003C\u002Fp>\n\u003Ch3 id=\"3-server-cfg\">3. server.cfg\u003C\u002Fh3>\n\u003Cp>\u003Ccode>ensure\u003C\u002Fcode> after oxmysql and es_extended, and \u003Cstrong>before\u003C\u002Fstrong> any script that uses the inject files.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-cfg\">ensure oxmysql\nensure es_extended\nensure x3d_replay\n\nset x3d_license_x3d-replay &quot;X3D-XXXXX-XXXXX-XXXXX-XXXXX&quot;\n\n# optional: grant viewing by ACE instead of ESX groups\nadd_ace group.admin x3d_replay.admin allow\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can put the key in \u003Ccode>config\u002Fconfig.license.lua\u003C\u002Fcode> instead of the convar.\u003C\u002Fp>\n\u003Ch3 id=\"4-check-it-works\">4. Check it works\u003C\u002Fh3>\n\u003Cp>Join as an admin and type \u003Ccode>\u002Freplay\u003C\u002Fcode>. The browser opens with your own name and the session being recorded (green dot = online).\u003C\u002Fp>\n\u003Ch3 id=\"5-updating\">5. Updating\u003C\u002Fh3>\n\u003Cp>Replay files live in \u003Ccode>x3d_replay\u002Fdata\u002F\u003C\u002Fcode> — \u003Cstrong>keep the \u003Ccode>data\u003C\u002Fcode> folder when you update\u003C\u002Fstrong> or every old replay is lost.\u003C\u002Fp>\n\u003Ch2 id=\"watching\">Watching\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Action\u003C\u002Fth>\n\u003Cth>How\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>Open the browser\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u002Freplay\u003C\u002Fcode> → player → day → session → start time → watch\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Open directly\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>\u002Freplay &lt;session id | online player id | name&gt; [mm:ss]\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Exit\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>Esc\u003C\u002Fcode> or \u003Ccode>\u002Freplay stop\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Toggle mouse \u002F camera look\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>Alt\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Follow someone else\u003C\u002Ftd>\n\u003Ctd>click a name in the players panel or press \u003Ccode>1\u003C\u002Fcode>–\u003Ccode>9\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>The viewer is moved to their own routing bucket (\u003Ccode>Config.Viewer.BucketBase\u003C\u002Fcode> + server id), invisible to the live city, and returned to where they were on exit.\nEvery view is logged to \u003Ccode>TB_X3D_REPLAY_ACCESS\u003C\u002Fcode> (who watched which session, when).\u003C\u002Fp>\n\u003Ch2 id=\"configuration-config-config-general-lua\">Configuration — \u003Ccode>config\u002Fconfig.general.lua\u003C\u002Fcode>\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Section\u003C\u002Fth>\n\u003Cth>What it controls\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Record\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Sample rate (\u003Ccode>Hz\u003C\u002Fcode>) · days to keep (\u003Ccode>RetentionDays\u003C\u002Fcode>) · events that keep a session forever (\u003Ccode>KeepKinds\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Storage\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Storage folder (empty = \u003Ccode>data\u002F\u003C\u002Fcode> inside the script)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Client\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>On\u002Foff: shots · poses · clothes\u002Fface · pressed keys\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Actions\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ESX money\u002Fitems\u002Fjob · inject data · event argument summaries · ignored names · macro thresholds\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Detect\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Flag melee hits that land on the head · melee weapon list\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Viewer\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Command · groups allowed · radius and count of nearby players loaded · file send rate\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Consent\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>'card'\u003C\u002Fcode> accept card · \u003Ccode>'notice'\u003C\u002Fcode> plain notice · \u003Ccode>'off'\u003C\u002Fcode> none (put it in your rules) · wording in \u003Ccode>Text\u003C\u002Fcode> (\u003Ccode>{days}\u003C\u002Fcode> = retention days) · bump \u003Ccode>Version\u003C\u002Fcode> = everyone accepts again\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Voice\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>Still in testing — leave \u003Ccode>Enabled = false\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"script-usage-capture-inject\">Script usage capture (inject)\u003C\u002Fh2>\n\u003Cp>Add as the \u003Cstrong>first line\u003C\u002Fstrong> of each block in the \u003Ccode>fxmanifest.lua\u003C\u002Fcode> of any script you want recorded. No code changes, no dependencies.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-lua\">client_scripts { '@x3d_replay\u002Finject\u002Fclient.lua', 'client\u002Fmain.lua' }\nserver_scripts { '@x3d_replay\u002Finject\u002Fserver.lua', 'server\u002Fmain.lua' }\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Cstrong>client\u003C\u002Fstrong> — typed commands and hotkeys (shown as \u003Ccode>[F9]\u003C\u002Fcode>) · NUI buttons · events sent to the server · animations the script plays on the player (the stand-in plays them too)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>server\u003C\u002Fstrong> — every net event a player sends into that script\u003C\u002Fli>\n\u003Cli>\u003Ccode>x3d_replay\u003C\u002Fcode> not running = no effect\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>After adding the inject lines, restart \u003Ccode>x3d_replay\u003C\u002Fcode> first, wait a moment, then restart that script.\u003C\u002Fp>\n\u003Ch2 id=\"animations-emotes\">Animations \u002F emotes\u003C\u002Fh2>\n\u003Cp>GTA cannot report which animation a ped plays, so the emote script has to tell us. The dpemotes wiring is in \u003Ccode>addons\u002Fhooks\u002Fclient.lua\u003C\u002Fcode> · from any other script:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-lua\">exports.x3d_replay:Anim(dict, name, flag)\nexports.x3d_replay:AnimStop()\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Scripts with the client inject do this automatically.\u003C\u002Fp>\n\u003Ch2 id=\"hooks-addons-hooks\">Hooks — \u003Ccode>addons\u002Fhooks\u002F\u003C\u002Fcode>\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>File\u003C\u002Fth>\n\u003Cth>Functions\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>server.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>Hooks.ShouldRecord(src)\u003C\u002Fcode> return \u003Ccode>false\u003C\u002Fcode> = do not record this player · \u003Ccode>Hooks.OnMark(src, kind, data)\u003C\u002Fcode> every written event (forward to logs \u002F Discord) · \u003Ccode>Hooks.CanView(src)\u003C\u002Fcode> (optional) return \u003Ccode>true\u003C\u002Fcode>\u002F\u003Ccode>false\u003C\u002Fcode> instead of the group check\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>client.lua\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>Hooks.OnView(on)\u003C\u002Fcode> hide\u002Fshow other scripts' HUD when a replay starts\u002Fends\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>Other scripts can listen: \u003Ccode>AddEventHandler('x3d_replay:viewing', function(on) end)\u003C\u002Fcode> or \u003Ccode>LocalPlayer.state.x3dReplay\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"exports-server\">Exports (server)\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">exports.x3d_replay:Mark(src, 'report', { by = reporterSrc, text = '...' })   -- 'anticheat' \u002F 'report' \u002F 'bookmark' = keep forever\nexports.x3d_replay:IsRecording(src)          -- true \u002F false\nexports.x3d_replay:GetSession(src)           -- { id, t } or nil\nexports.x3d_replay:Open(viewerSrc, target, 'mm:ss')   -- watch (target = session id \u002F player id \u002F name)\nexports.x3d_replay:OpenBrowser(viewerSrc, target)     -- open the browser (target optional)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"x3d-admin-panel-optional\">X3D Admin Panel (optional)\u003C\u002Fh2>\n\u003Cp>With X3D Admin Panel installed you get a Replays menu: players table → open that player's browser, closing returns to the panel.\nPermissions live in the panel › roles: \u003Ccode>mod.x3d_replay.players.view\u003C\u002Fcode> \u002F \u003Ccode>mod.x3d_replay.players.action.browse\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"troubleshooting\">Troubleshooting\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>\u003Ccode>LICENSE CHECK FAILED\u003C\u002Fcode>\u003C\u002Fstrong> — \u003Ccode>LICENSE_INVALID\u003C\u002Fcode> key does not match the product · \u003Ccode>NETWORK\u003C\u002Fcode> license server unreachable · \u003Ccode>LICENSE_IP_MISMATCH\u003C\u002Fcode> IP changed, update it in your account page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No permission\u003C\u002Fstrong> — the ESX group is not in \u003Ccode>Config.Viewer.Groups\u003C\u002Fcode> and there is no \u003Ccode>x3d_replay.admin\u003C\u002Fcode> ACE\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>Failed to load script @x3d_replay\u002Finject\u002Fclient.lua\u003C\u002Fcode>\u003C\u002Fstrong> — \u003Ccode>ensure x3d_replay\u003C\u002Fcode> before the scripts that use the inject\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Stand-in does not play a pose\u003C\u002Fstrong> — that script has no client inject, or the emote script is not wired\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No money\u002Fitems on the timeline\u003C\u002Fstrong> — \u003Ccode>Config.Actions.Framework\u003C\u002Fcode> must be on, ESX required\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Old replays gone\u003C\u002Fstrong> — the \u003Ccode>data\u002F\u003C\u002Fcode> folder was deleted on update, or past \u003Ccode>RetentionDays\u003C\u002Fcode> (kept sessions are never deleted)\u003C\u002Fli>\n\u003C\u002Ful>\n",[861,865,869,872,875,878,881,884,887,890,893,896,899,902],{"id":862,"text":863,"level":864},"installation","Installation",2,{"id":866,"text":867,"level":868},"1-database","1. Database",3,{"id":870,"text":871,"level":868},"2-files","2. Files",{"id":873,"text":874,"level":868},"3-server-cfg","3. server.cfg",{"id":876,"text":877,"level":868},"4-check-it-works","4. Check it works",{"id":879,"text":880,"level":868},"5-updating","5. Updating",{"id":882,"text":883,"level":864},"watching","Watching",{"id":885,"text":886,"level":864},"configuration-config-config-general-lua","Configuration — config\u002Fconfig.general.lua",{"id":888,"text":889,"level":864},"script-usage-capture-inject","Script usage capture (inject)",{"id":891,"text":892,"level":864},"animations-emotes","Animations \u002F emotes",{"id":894,"text":895,"level":864},"hooks-addons-hooks","Hooks — addons\u002Fhooks\u002F",{"id":897,"text":898,"level":864},"exports-server","Exports (server)",{"id":900,"text":901,"level":864},"x3d-admin-panel-optional","X3D Admin Panel (optional)",{"id":903,"text":904,"level":864},"troubleshooting","Troubleshooting",1792316313771]