[{"data":1,"prerenderedAt":89},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-th-x3d-useitem":21,"config-public-x3d-useitem":84},{"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":56,"latest_released_at":57,"published_at":58,"has_docs":59,"config":60,"rent_price_satang":61,"description_md":62,"docs_md":12,"seo_title":63,"seo_description":64,"media":65,"versions":77},"8e4dcdf4-7c70-4185-a3c9-15bb5328c457","x3d-useitem","X3D Use Item (ไอเทมใช้ได้)","ยา ผ้าพันแผล AED เกราะ หมวกกันน็อค ซ่อมรถ กระสุน กล่องสุ่ม อาหารพร้อมบัฟ — ไอเทมใช้ได้ครบชุด ต้องการแค่ ESX",0,"none","public\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg",[31,32],"inventory","gameplay",[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55],"use item","ไอเทมใช้ได้","usable items","ยา","ผ้าพันแผล","aed","ชุบคนล้ม","ซ่อมรถ","กระสุน","กล่องสุ่ม","อาหาร","เสื้อเกราะ","หมวกกันน็อค","esx","ฟรี","free","บัฟอาหาร","ชุดซ่อมรถ","เติมกระสุน","ยืมเสื้อเกราะ","ใช้ไอเทม","ไอเทมเติมเลือด","1.1.2","2026-10-12T17:19:33.653792Z","2026-09-24T02:05:34.038449Z",false,"public",null,"ไอเทมใช้ได้ครบชุดในสคริปต์เดียว — ยา ผ้าพันแผล AED ชุดซ่อมรถ กระสุน กล่องสุ่ม และอาหารที่ให้บัฟ\n\n**ใช้ได้ทั้ง ESX และ standalone** ไม่ต้องลง ox_lib ไม่ต้องใช้ inventory ยี่ห้อไหนเป็นพิเศษ\n\n---\n\n## ฟีเจอร์\n\n- [+] ตั้งค่าง่าย ปรับได้หมดใน config หรือตั้งผ่านเว็บได้เลย\n- [+] ยา ผ้าพันแผล เติมเลือดเป็นเปอร์เซ็นต์ ตั้งเปอร์เซ็นต์และเวลาต่อไอเทม\n- [+] AED ชุบคนล้มที่อยู่ใกล้ ตั้งรัศมีและเวลาปั๊มหัวใจได้\n- [+] ต่อระบบหน้าจอตายของเมืองเองได้ ตั้ง event ชุบได้\n- [+] ชุดซ่อมรถ ตั้งรัศมีและเวลาซ่อมได้\n- [+] เติมกระสุนให้อาวุธที่ถือ จำกัดตามชนิด ตั้งเพดานกระสุนได้\n- [+] กล่องไอเทม เปิดทีละหลายกล่อง ตั้งสูงสุดต่อครั้งได้\n- [+] อาหารเติมเลือด + บัฟตามเวลา ต่อกับระบบบัฟอะไรก็ได้\n- [+] เสื้อเกราะแบบใช้แล้วหาย และแบบให้ยืมจำกัดพื้นที่\n- [+] หมวกกันน็อคใส่เป็นเสื้อผ้าจริง กันคริติคอล\n- [+] ล็อกกันกดรัว เช็กฝั่งเซิร์ฟเวอร์ ไม่มีของก็ไม่มีผล\n- [+] เช็กช่องกระเป๋าก่อนเปิดกล่องได้ เปิดปิดใน config\n\n---\n\n## มีอะไรบ้าง\n\n| กลุ่ม | ทำอะไร |\n|---|---|\n| **ยา \u002F ผ้าพันแผล** | เติมเลือดเป็นเปอร์เซ็นต์ มีอนิเมชันและกระเป๋ายาติดตัว |\n| **AED** | ปั๊มหัวใจชุบคนที่ล้มอยู่ใกล้ ๆ เช็กระยะฝั่งเซิร์ฟเวอร์ |\n| **ชุดซ่อมรถ** | ซ่อมตัวถัง เครื่อง ยาง คงระดับความสกปรกและน้ำมันไว้ |\n| **กระสุน** | เติมกระสุนให้อาวุธที่ถืออยู่ จำกัดตามชนิด |\n| **กล่องสุ่ม** | เปิดทีละหลายกล่องได้ เช็กช่องกระเป๋าก่อน (ถ้าเปิดใช้) |\n| **อาหาร** | เติมเลือด + บัฟตามเวลา ต่อกับระบบบัฟอะไรก็ได้ |\n| **เสื้อเกราะ** | ใส่แล้วขึ้นค่าเกราะ มีแบบใช้แล้วหายและแบบให้ยืมจำกัดพื้นที่ |\n| **หมวกกันน็อค** | ใส่เป็นเสื้อผ้าจริง กันคริติคอล โดนยิงหัวแล้วแตก สถานะค้างข้ามการออกจากเกม |\n\n---\n\n## ปลอดภัยตั้งแต่ต้น\n\nทุกการใช้ไอเทมตรวจฝั่งเซิร์ฟเวอร์:\n\n- **ล็อกกันกดรัว** — หนึ่งคนทำได้ทีละอย่าง กดซ้ำระหว่างทำไม่นับ\n- **เช็กของจริงก่อนหักจริง** — ไม่มีของก็ไม่มีผล ไม่ตัดของก่อนแล้วค่อยเช็ก\n- **เช็กระยะตอนจบ ไม่ใช่แค่ตอนเริ่ม** — เริ่มปั๊มหัวใจแล้ววิ่งหนีไปไกล ไม่สำเร็จ\n- **client บอกว่าเสร็จไม่พอ** — เซิร์ฟเวอร์เช็กเวลาและเงื่อนไขซ้ำเองทุกครั้ง\n\n---\n\n## ต่อกับของที่มีอยู่แล้ว\n\nตรวจให้เองหมด ไม่มีก็ยังทำงาน:\n\n- **แถบความคืบหน้า** — ox_lib ถ้ามี, esx_progressbar ถ้ามี, ไม่งั้นวาดแถบเองด้วย native\n- **แจ้งเตือน** — esx_notify ถ้ามี, ox_lib ถ้ามี, ไม่งั้นใช้ข้อความของเกม\n- **ระบบบัฟ** — ยิง `x3d_useitem:effect` ทุกครั้ง ระบบไหนก็ฟังได้\n- **ชุบคนล้ม** — ตั้ง `Config.ReviveEvent` ชี้ไปที่ระบบหน้าจอตายของคุณ ใช้ `esx_ambulancejob:revive` ก็ได้\n- **น้ำมันรถ** — ชุดซ่อมรถคงระดับน้ำมันและความสกปรกเดิมไว้ ไม่ต้องต่อสคริปต์น้ำมันเพิ่ม\n\n---\n\n## แต่งเอง\n\nไอเทมทุกชิ้นอยู่ใน `shared\u002Fconfig.lua` เพิ่มลดได้ตามใจ ข้อความทั้งหมดอยู่ใน `locales.lua` ไทย\u002Fอังกฤษ สลับที่ `Config.Locale`\n","ไอเทมใช้ได้ FiveM ฟรี — ยา AED ซ่อมรถ กระสุน","ระบบไอเทมใช้ได้สำหรับ ESX ยาและผ้าพันแผล AED ชุบคนล้ม ชุดซ่อมรถ เติมกระสุน กล่องสุ่ม และอาหารที่ให้บัฟ ต้องการแค่ es_extended ไม่ต้องลง ox_lib",[66,69,71,73,75],{"kind":67,"url":68},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fmedia\u002F4d71fd9041881612.png",{"kind":67,"url":70},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fmedia\u002F3fd2d4739ef057a4.png",{"kind":67,"url":72},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fmedia\u002F4c3e39cbdd2744cb.png",{"kind":67,"url":74},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fmedia\u002Fb07e1f1a9fa14e09.png",{"kind":67,"url":76},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fmedia\u002F3f0d768fc8af6157.png",[78,80],{"version":56,"released_at":57,"changelog_md":79},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":81,"released_at":82,"changelog_md":83},"1.0.0","2026-09-24T02:05:26.834437Z","First public release.\r\n\r\n### Added\r\n\r\n- Meds and bandages, an AED that revives a downed player, body armor, a helmet, repair kits, ammo top-ups, loot boxes and food with timed buffs\r\n- The helmet is worn as real clothing through the skinchanger API, blocks critical hits, breaks when shot, and is restored on relog from player metadata\r\n- `isHelmetOn` and `helmetBroken` exports let a damage script drive the break\r\n- `Config.ReviveEvent` points the AED at any death-screen system, and falls back to a full heal when left unset\r\n- `x3d_useitem:effect` fires for every food buff so any buff system can listen\r\n- `addons\u002Fprogress` picks ox_lib, then a progress bar resource, then draws its own with natives, which makes ox_lib optional\r\n- Notifications fall through esx_notify, ox_lib and the game's own feed\r\n- `locales.lua` with Thai and English, selected by `Config.Locale`\r\n- `Config.CheckBagSpace` takes the name of an inventory that exposes CheckItemFit, and is off by default\r\n\r\n### Notes\r\n\r\n- Server-side: an in-flight lock per player, the item verified before it is consumed, and distance re-checked when the action completes rather than only when it starts",{"slug":23,"version":56,"latest_version":56,"files":85,"options":61},[86],{"path":87,"content":88},"shared\u002Fconfig.lua","Config = {}\n\n-- ===== ทั่วไป \u002F General =====\n\n-- เฟรมเวิร์ก: 'auto' หาเองจาก es_extended · 'esx' บังคับ ESX · 'standalone' ไม่ใช้เฟรมเวิร์ก\n-- Framework: 'auto' detects es_extended · 'esx' forces ESX · 'standalone' uses no framework\nConfig.Framework = 'auto'\n\n-- ภาษาของข้อความทั้งหมด ('th' หรือ 'en') · ข้อความอยู่ใน locales.lua\n-- Language of every message ('th' or 'en') · texts live in locales.lua\nConfig.Locale = 'th'\n\n-- ===== ชุบผู้เล่นที่ล้ม \u002F Reviving downed players =====\n\n-- ไอเทมชุบ (aed) จะสั่งสคริปต์หน้าจอตายให้ปลุกคนขึ้นมา\n-- false (ค่าเริ่มต้น) = ไม่ผูกกับระบบไหนเลย เติมเลือดให้เต็มและลุกขึ้นเองในตัว\n-- ใช้ระบบหน้าจอตายของคุณเองก็ใส่ชื่ออีเวนต์ เช่น\n--   Config.ReviveEvent = 'esx_ambulancejob:revive'\n-- The revive item (aed) asks your death-screen script to wake the player up\n-- false (default) = hook into nothing: heals to full and stands the player up by itself\n-- To use your own death-screen script, put its event name, e.g.\n--   Config.ReviveEvent = 'esx_ambulancejob:revive'\nConfig.ReviveEvent = false\n\n-- ===== ระบบรีสตาร์ท \u002F Restart lock =====\n\n-- ระบบล็อกเศรษฐกิจก่อนรีสตาร์ท (เช่น esx_restart) — ใส่ชื่อ GlobalState key ที่ระบบนั้น\n-- ตั้ง .lock = true ตอนใกล้รีสตาร์ท เช่น Config.RestartLockState = 'restartlock'\n-- ไม่ได้ใช้ระบบไหนก็ปล่อย false ไว้ (ไม่ล็อก)\n-- Pre-restart economy lock (e.g. esx_restart) — put the GlobalState key that system uses\n-- It sets .lock = true near a restart, e.g. Config.RestartLockState = 'restartlock'\n-- Not using one? leave false (no lock)\nConfig.RestartLockState = false\n\n-- ===== กล่องไอเทม \u002F Loot boxes =====\n\n-- เช็กช่องกระเป๋าก่อนเปิดกล่อง — ใส่ชื่อ resource inventory ที่มี export CheckItemFit(src, item, count)\n-- เช่น Config.CheckBagSpace = 'ox_inventory' · ไม่ใส่ (false) ระบบจะเปิดให้เลย (ของล้นกระเป๋าเป็นเรื่องของ inventory เอง)\n-- Check bag space before opening a box — put the inventory resource that has export CheckItemFit(src, item, count)\n-- e.g. Config.CheckBagSpace = 'ox_inventory' · false = open straight away (overflow is the inventory's job)\nConfig.CheckBagSpace = false\n\n-- ===== ยา \u002F ผ้าพันแผล \u002F Medicine and bandages =====\n\n-- ท่าทางตอนใช้ยา \u002F animation while healing\nConfig.HealAnim = {\n    dict = 'anim@heists@narcotics@funding@gang_idle',\n    clip = 'gang_chatting_idle01',\n}\n\n-- พรอพที่ถือตอนใช้ยา \u002F prop held while healing\nConfig.HealProp = {\n    model  = 'xm_prop_smug_crate_s_medical',\n    bone   = 60309,\n    offset = vector3(0.06, -0.06, 0.05),\n    rot    = vector3(-110.0, 0.0, 0.0),\n}\n\n-- ไอเทมเติมเลือด: pct = สัดส่วนที่เติม (0.20 = 20%) · duration = เวลา (ms) · prop = ถือพรอพไหม\n-- Healing items: pct = share healed (0.20 = 20%) · duration = time (ms) · prop = hold the prop or not\n-- เช่น \u002F e.g. ['medkit'] = { pct = 0.50, duration = 5000, prop = true }\nConfig.Heal = {\n    ['painkiller'] = { pct = 0.20, duration = 3500, prop = true },\n    ['bandage']    = { pct = 0.10, duration = 3500, prop = false },\n}\n\n-- ===== ชุบคนล้ม (AED) \u002F Revive (AED) =====\n\n-- ท่าปั๊มหัวใจ · pumpInterval = ช่วงเวลาระหว่างการกด (ms)\n-- CPR animation · pumpInterval = time between compressions (ms)\nConfig.ReviveAnim = {\n    dict         = 'mini@cpr@char_a@cpr_str',\n    clip         = 'cpr_pumpchest',\n    pumpInterval = 500,\n}\n\n-- รัศมี (เมตร) ที่หาคนล้มรอบตัว \u002F radius (meters) to look for a downed player\nConfig.ReviveRadius = 3.0\n\n-- ไอเทมชุบ: duration = เวลาปั๊มหัวใจ (ms)\n-- Revive items: duration = CPR time (ms)\n-- เช่น \u002F e.g. ['aed_mini'] = { duration = 7000 }\nConfig.Revive = {\n    ['aed']       = { duration = 9000 },\n    ['aed_super'] = { duration = 5000 },\n}\n\n-- ===== ชุดซ่อมรถ \u002F Repair kit =====\n\n-- ท่าซ่อมรถ \u002F repair animation\nConfig.FixAnim = {\n    dict = 'mini@repair',\n    clip = 'fixing_a_ped',\n}\n\n-- ไอเทมซ่อมรถ: duration = เวลา (ms) · radius = รัศมีหารถ (เมตร)\n-- Repair items: duration = time (ms) · radius = reach to find the car (meters)\n-- เช่น \u002F e.g. ['fixkit_pro'] = { duration = 8000, radius = 5.0 }\nConfig.Fix = {\n    ['fixkit'] = { duration = 15000, radius = 5.0 },\n}\n\n-- ===== กระสุน \u002F Ammo =====\n\n-- ท่าเติมกระสุน \u002F reload animation\nConfig.AmmoAnim = {\n    dict = 'anim@weapons@pistol@revolver_str',\n    clip = 'reload_aim',\n    ms   = 1000,\n}\n\n-- กระสุนสูงสุดต่ออาวุธ (เติมเกินนี้ไม่ได้) \u002F max ammo per weapon (cannot top up past this)\nConfig.MaxAmmo = 250\n\n-- ไอเทมกระสุน: amount = จำนวนที่เติม · weapons = จำกัดเฉพาะอาวุธเหล่านี้ (ไม่ใส่ = ทุกอาวุธ)\n-- Ammo items: amount = rounds added · weapons = limit to these weapons (omit = any weapon)\n-- เช่น \u002F e.g. ['ammo_box'] = { amount = 60 }\nConfig.Ammo = {\n    ['speed_loader'] = { amount = 6,  weapons = { WEAPON_REVOLVER = true, WEAPON_REVOLVER_MK2 = true } },\n    ['ammo_box']     = { amount = 60 },\n}\n\n-- ===== กล่องสุ่ม \u002F Boxes =====\n\n-- เปิดกล่องได้สูงสุดกี่ใบต่อครั้ง \u002F max boxes opened in one use\nConfig.BoxMaxPerUse = 10\n\n-- กล่อง: ชื่อกล่อง = รายการ { ไอเทมที่ได้, จำนวน } ต่อกล่องหนึ่งใบ\n-- Boxes: box item = list of { item received, count } per box\n-- เช่น \u002F e.g. ['box_cement'] = { { 'cement', 100 } }\nConfig.Boxes = {\n    ['box_cement']       = { { 'cement',       100 } },\n    ['box_ingot_gold']   = { { 'ingot_gold',   100 } },\n    ['box_ingot_steel']  = { { 'ingot_steel',  100 } },\n    ['box_ingot_copper'] = { { 'ingot_copper', 100 } },\n    ['box_wood_plank']   = { { 'wood_plank',   100 } },\n    ['box_gem_diamond']  = { { 'gem_diamond',  100 } },\n    ['box_gem_ruby']     = { { 'gem_ruby',     100 } },\n    ['fight_pack']       = { { 'painkiller', 20 }, { 'vest', 20 }, { 'aed', 3 } },\n}\n\n-- ท่าเปิดกล่อง \u002F box-opening animation\nConfig.BoxAnim = {\n    dict = 'anim@heists@ornate_bank@grab_cash',\n    clip = 'grab',\n    ms   = 1200,\n}\n\n-- ===== อาหารและบัฟ \u002F Food and buffs =====\n\n-- ท่ากิน\u002Fดื่ม: ms = เวลา \u002F eat and drink animations: ms = time\nConfig.ConsumeAnims = {\n    eat   = { dict = 'mp_player_inteat@burger', clip = 'mp_player_int_eat_burger_fp', ms = 3000 },\n    drink = { dict = 'mp_player_intdrink',      clip = 'loop_bottle',                 ms = 2500 },\n}\n\n-- อาหาร: anim = ท่า · heal = สัดส่วนเลือดที่เติม · effects = บัฟ { ชนิด, ค่า, วินาที }\n-- Food: anim = animation · heal = share of health restored · effects = buffs { kind, value, seconds }\n-- เช่น \u002F e.g. ['bread'] = { anim = 'eat', heal = 0.05, effects = { { 'regen', 1, 60 } } }\nConfig.Food = {\n    ['food_lunchbox'] = { anim = 'eat',   heal = 0.10, effects = { { 'regen', 3, 300 } } },\n    ['drink_water']   = { anim = 'drink', heal = 0.00, effects = { { 'regen', 2, 180 } } },\n    ['milk']          = { anim = 'drink', heal = 0.05, effects = { { 'defense', 0.05, 300 } } },\n    ['meal_basic']    = { anim = 'eat',   heal = 0.20, effects = { { 'regen', 5, 600 } } },\n    ['meal_hearty']   = { anim = 'eat',   heal = 0.35, effects = { { 'regen', 5, 900 }, { 'damage', 0.05, 900 } } },\n    ['meal_feast']    = { anim = 'eat',   heal = 0.50, effects = { { 'regen', 8, 1200 }, { 'damage', 0.08, 1200 }, { 'defense', 0.08, 1200 } } },\n}\n\n-- ===== เกราะกับหมวกกันน็อค \u002F Armor and helmet =====\nConfig.Armor = {\n    -- เสื้อเกราะ ใช้แล้วหาย \u002F consumable vest, gone after use\n    vest = { item = 'vest', armor = 100 },\n\n    -- เสื้อเกราะให้ยืม ใช้ซ้ำได้ แต่จำกัดพื้นที่\n    -- zoneExport = ชื่อ resource ที่มี export คืน true\u002Ffalse ว่าอยู่ในพื้นที่ไหม\n    -- false = ใช้ได้ทุกที่ · ไม่มีไอเทมนี้ก็ปล่อยไว้ ระบบจะไม่ลงทะเบียนให้\n    -- Rental vest, reusable but limited to an area\n    -- zoneExport = resource whose export returns true\u002Ffalse for \"inside the area\"\n    -- false = usable anywhere · if you do not have this item just leave it, it will not be registered\n    rental = { item = 'vest_training', armor = 100, zoneExport = false, zoneFn = 'checkInZoneTraining' },\n\n    -- หมวกกันน็อค ใส่เป็นเสื้อผ้าจริง กันคริติคอล แตกได้เมื่อโดนยิงหัว\n    -- ตัวเลขคือ drawable\u002Ftexture ของช่อง helmet ในร่าง freemode\n    -- Helmet worn as real clothing, blocks critical hits, breaks when shot in the head\n    -- The numbers are the drawable\u002Ftexture of the helmet slot on the freemode ped\n    helmet = {\n        item   = 'helmet',\n        male   = { helmet_1 = 90, helmet_2 = 0 },\n        female = { helmet_1 = 89, helmet_2 = 0 },\n    },\n}\n",1792316308237]