[{"data":1,"prerenderedAt":914},["ShallowReactive",2],{"site":3,"docs-slug-site":15,"docs-product-th-x3d-skin":21,"docs-products-th":91,"docs-html-th-x3d-skin":871},{"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":32,"latest_version":50,"latest_released_at":51,"published_at":52,"has_docs":53,"config":54,"rent_price_satang":55,"description_md":56,"docs_md":57,"seo_title":58,"seo_description":59,"media":60,"versions":72},"7c86bf83-0df0-4e59-ab59-461ac4a2bff8","x3d-skin","X3D ตกแต่งตัวละคร","หน้าตกแต่งตัวละคร 77 ช่อง กล้องหมุนซูม ท่าโพส ไฟส่องหน้า ไม่ต้องลง skinchanger ไม่ต้องลงฐานข้อมูล ต่อกับเฟรมเวิร์กไหนก็ได้",0,"none","public\u002Fproducts\u002Fx3d-skin\u002Fcover\u002Fdb520ac6e2e3d502.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fcover\u002Fdb520ac6e2e3d502.jpg",[31],"hud",[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"esx","standalone","ตกแต่งตัวละคร","skin","character customization","skin creator","แต่งตัวละคร","ร้านเสื้อผ้า","ร้านตัดผม","ฟรี","free","ตู้เสื้อผ้า","ร้านเสริมสวย","ร้านหน้ากาก","ท่าโพส","แต่งหน้า","ไม่ต้องใช้ skinchanger","1.5.4","2026-10-12T17:21:14.159219Z","2026-09-22T04:02:41.988907Z",true,"public",null,"# หน้าตกแต่งตัวละคร — ฟรี ไม่ต้องลง skinchanger ไม่ต้องลงฐานข้อมูล\n\nหน้าแต่งตัวละครแบบเต็ม 77 ช่อง: หน้า ผม เครา เมกอัพ เสื้อผ้า ของประดับ พร้อมกล้องหมุน\u002Fซูม\u002Fเลื่อนมุม ท่าโพส ไฟส่องหน้า และปุ่มซ่อนผู้เล่นคนอื่น `x3d_skin` ทำครบในตัวเอง ผ่านแผง Nuxt 4 UI พร้อมใช้\n\n---\n\n## ฟีเจอร์\n\n- [+] ตั้งค่าง่าย ปรับได้หมดใน config หรือตั้งผ่านเว็บได้เลย\n- [+] แต่งตัวละคร 77 ช่อง หน้า ผม เครา เมกอัพ เสื้อผ้า ของประดับ\n- [+] ไม่ต้องลง skinchanger มี export ชื่อเดียวกันให้สคริปต์เดิมเรียกได้\n- [+] กล้องหมุน ซูม เลื่อนมุม ท่าโพส 4 แบบ ไฟส่องหน้า\n- [+] ปุ่มซ่อนผู้เล่นคนอื่นรัศมี 50 เมตร เวลาลานสร้างตัวละครแน่น\n- [+] ร้านเสื้อผ้า เสริมสวย หน้ากาก มีในตัว พร้อมจุดและ blip\n- [+] ตั้งราคาร้านแต่ละประเภทเอง ใส่ 0 = เข้าใช้ฟรี\n- [+] ตู้เสื้อผ้า เซฟชุดตั้งชื่อ จำกัดจำนวนชุดต่อคนได้\n- [+] สลับหน้าสำเร็จรูป 46 แบบ เป็นระบบพ่อ\u002Fแม่ ดัดจมูก แก้ม คางได้\n- [+] ใช้ร่วมกับ skinchanger \u002F esx_skin เดิมได้ ผ่าน Config.Backend\n- [+] ไม่ต้องลงฐานข้อมูล เก็บเป็นไฟล์ JSON หรือสลับเป็น MySQL ได้\n- [+] เขียนเชื่อมกับสคริปต์อื่นได้ที่ addons\u002F\n\n---\n\n## ไม่ต้องลง skinchanger — ตัวใส่ค่าลงร่างอยู่ในสคริปต์นี้เอง\n\n`skin.lua` ใช้ native ของเกมล้วน ๆ และมี export ชื่อเดียวกับที่สคริปต์อื่นคุ้นเคย (`GetSkin` \u002F `LoadSkin` \u002F `LoadClothes` \u002F `Change`) ร้านเสื้อผ้าหรือระบบยูนิฟอร์มที่เคยเรียก skinchanger ย้ายมาชี้ที่ `x3d_skin` ได้ทันที รายการช่องทั้งหมดอยู่ใน `components.lua` พร้อมค่าเริ่มต้น เพดาน และระยะกล้องต่อช่อง — เพดานจริงถามจากเกมตอนรัน ไม่ฮาร์ดโค้ด ชุด addon ที่เซิร์ฟลงเพิ่มจึงเลือกได้ครบ\n\n## กล้องเลื่อนตามช่องที่เลือกเอง แต่ไม่แย่งมือผู้เล่น\n\nเลือกทรงผม กล้องซูมเข้าหน้า เลือกรองเท้า กล้องลงไปที่เท้า พอผู้เล่นหมุนหรือซูมเอง กล้องจะหยุดขยับเองภายในหมวดนั้นจนกว่าจะเปลี่ยนหมวด · LMB ลากหมุนตัว RMB ลากเลื่อนมุม Scroll ซูม · ท่าโพส 4 แบบ ไฟส่องหน้า 3 ดวง และซ่อนผู้เล่นคนอื่นรัศมี 50 เมตรเวลาที่ลานสร้างตัวละครแน่น\n\n## ร้านตัดผม\u002Fร้านเสื้อผ้าเรียกใช้ได้ โดยจำกัดช่องที่แก้ได้\n\nเปิดพาเนลแบบล็อกเฉพาะช่องที่ร้านขาย ใส่ราคาแล้วปุ่มยืนยันกลายเป็น \"ซื้อ\" พร้อมราคา มี callback ตอนกดยืนยัน\u002Fยกเลิกให้ตัดเงินเอง (สคริปต์นี้ไม่แตะเงินของใคร) และมี hook `x3d_skin:onSave` ฝั่งเซิร์ฟเวอร์แจ้งทุกครั้งที่ผู้เล่นเซฟหน้าใหม่\n\n## ไม่ต้องลงฐานข้อมูล\n\nหน้าตาที่ผู้เล่นเซฟเก็บเป็นไฟล์ JSON ในตัว resource เอง คีย์เป็น identifier ถาวรไม่ใช่ server id เขียนลงดิสก์ตามรอบ ตอนผู้เล่นออก และตอนปิด resource อยากได้ MySQL? สลับ 4 ฟังก์ชันในไฟล์เดียวไปใช้บล็อก oxmysql ที่คอมเมนต์ไว้ท้ายไฟล์ พร้อม `install.sql`\n\nค่าที่พาเนลส่งมาไม่เชื่อสักตัว — ชื่อช่องต้องรู้จัก ค่าต้อง floor และ clamp เข้าช่วง เซฟได้ 1 ครั้ง\u002Fวินาที\u002Fคน และ `\u002Fskin \u003Cid>` ต้องมี ace เสมอ\n\n## ต้องมี\n\nไม่มี · ไม่ต้องใช้ skinchanger ไม่ต้องใช้ฐานข้อมูล ไม่ต้องใช้เฟรมเวิร์ก ไม่มีไลเซนส์ · วางแล้ว `ensure` ได้เลย\n\n**ฟรี** · แก้โค้ดได้ตามใจ · ขอแค่อย่านำไปขายต่อและอย่าอัปโหลดใหม่ในชื่อตัวเอง\n","## การติดตั้ง\n\n1. แตกไฟล์แล้ว **เปลี่ยนชื่อโฟลเดอร์เป็น `x3d_skin`** (สคริปต์อื่นเรียก export ด้วยชื่อนี้)\n2. วางใน `resources\u002F`\n3. เพิ่ม `ensure x3d_skin` ใน `server.cfg`\n\nจบ — ไม่ต้องลงฐานข้อมูล ไม่ต้องลงอะไรเพิ่ม ไม่ต้องแตะ resource เดิมของเซิร์ฟ ใช้ได้ทั้ง ESX, QBCore และเซิร์ฟเปล่า\n\nผู้เล่นเปิดด้วย `\u002Fskin` · แอดมินเปิดให้คนอื่นด้วย `\u002Fskin \u003Cid>`\n\nให้สิทธิ์แอดมิน:\n\n```\nadd_ace group.admin x3d_skin.admin allow\n```\n\n⚠ เซิร์ฟที่มี `esx_skin` อยู่แล้ว มันจด `\u002Fskin` ไว้เหมือนกัน — ตัวที่ `ensure` ทีหลังเป็นคนตอบ วาง `ensure x3d_skin` ไว้หลัง `ensure esx_skin` หรือเปลี่ยน `Config.Command`\n\n## ช่องที่แก้ได้\n\n77 ช่องในโหมดปกติ แบ่งเป็น 6 หมวดในแถบล่าง:\n\n| หมวด | มีอะไร |\n|---|---|\n| พื้นฐาน | เพศ · ใบหน้า · ผิว |\n| ผมและดวงตา | ทรงผม สีผม ไฮไลท์ · สีตา · ทรงคิ้ว สีคิ้ว ความเข้ม |\n| เสื้อผ้า | เสื้อชั้นใน เสื้อ ลวดลาย แขนเสื้อ เกราะ กางเกง รองเท้า (พร้อมช่องสีของแต่ละชิ้น) |\n| เครื่องประดับ | หน้ากาก สร้อยคอ หมวก แว่นตา นาฬิกา กำไล ต่างหู |\n| แต่งหน้า | เมกอัพ ลิปสติก ปัดแก้ม เครา |\n| รายละเอียด | อายุ ตำหนิ สีผิวไม่สม่ำเสมอ รอยแดดเผา ไฝ ขนหน้าอก ตำหนิร่างกาย |\n\nเพดานของแต่ละช่องถามจากเกมตอนรัน (`GetNumberOfPedDrawableVariations` และเพื่อน ๆ) ไม่ได้ฮาร์ดโค้ดไว้ — ลงชุด addon เพิ่มเมื่อไหร่ ผู้เล่นเลือกได้ครบทันทีโดยไม่ต้องแก้ config\n\nเปลี่ยน `Config.AdvancedFace = true` เพื่อสลับจาก \"เลือกหน้าสำเร็จรูป 46 แบบ\" ไปเป็นระบบพ่อ\u002Fแม่ + น้ำหนักหน้า + ดัดจมูก แก้ม คาง ทีละจุดแบบ GTA Online\n\n⚠ สลับค่านี้หลังเปิดเซิร์ฟแล้ว หน้าที่ผู้เล่นเซฟไว้จะเพี้ยน เพราะเป็นคนละชุดค่ากัน\n\n## การควบคุมในพาเนล\n\n| ปุ่ม | ทำอะไร |\n|---|---|\n| LMB + ลาก | หมุนตัวละคร |\n| RMB + ลาก | เลื่อนมุมกล้อง (มีขอบเขต ส่องไปที่อื่นไม่ได้) |\n| Scroll | ซูมเข้า\u002Fออก |\n| Q \u002F E | หมุนตัวละครทีละองศา |\n| คลิกช่อง + Scroll | ปรับค่าช่องนั้น |\n| Shift + Scroll | ปรับทีละ ±10 |\n| ลูกศร | ปรับละเอียด |\n\nปุ่มซ้ายล่าง: โฟกัสหัว · โฟกัสตัว · รีเซ็ตกล้อง · ไฟส่องหน้า · ท่าโพส (4 แบบ) · ซ่อนผู้เล่นคนอื่นในรัศมี 50 เมตร\n\nกล้องเลื่อนไปยังจุดที่กำลังแก้เอง แต่พอผู้เล่นหมุน\u002Fซูมเองแล้ว กล้องจะหยุดขยับเองภายในหมวดนั้น จนกว่าจะเลือกช่องในหมวดอื่น\n\n## เปิดจากร้าน (ร้านตัดผม ร้านเสื้อผ้า)\n\n```lua\nexports['x3d_skin']:OpenEditor({\n    title    = 'ร้านตัดผม',\n    price    = 500,\n    restrict = { 'hair_1', 'hair_2', 'hair_color_1', 'hair_color_2',\n                 'beard_1', 'beard_2', 'beard_3', 'beard_4' },\n    onSubmit = function() TriggerServerEvent('myshop:charge', 500) end,\n    onCancel = function() print('ยกเลิก') end,\n})\n```\n\n`restrict` จำกัดช่องที่แก้ได้ · `price` ทำให้ปุ่มยืนยันกลายเป็น \"ซื้อ\" พร้อมราคา\n\n⚠ ทางนี้ (`OpenEditor` เอง) **ไม่หักเงินให้** — ตัดเงินใน `onSubmit` ของร้านคุณเอง · ร้านที่อยู่ใน `Config.Shops` คนละทาง ตรงนั้นเซิร์ฟเวอร์หักเงินและบันทึกให้ในก้าวเดียว\n\n\n## เข้ากับ skinchanger \u002F esx_skin ที่มีอยู่แล้ว\n\nไม่ต้องตั้งอะไร สคริปต์ดูเองตอนเปิดเซิร์ฟ:\n\n- **มี `skinchanger` อยู่แล้ว** → ใช้ของเดิมใส่เสื้อผ้าลงร่าง และให้ `esx_skin` เก็บชุดทางเดิมของมัน x3d_skin เป็นแค่ UI + ร้าน + ตู้เสื้อผ้า\n- **ไม่มี** → x3d_skin ใส่เองและเก็บเองในไฟล์ JSON\n\nทั้งสองทางไม่ต้อง stop อะไร ไม่ต้องย้ายข้อมูล ตัวละครเก่าอยู่ครบ\n\nบังคับทางใดทางหนึ่งได้ที่ `Config.Backend` (`'skinchanger'` \u002F `'self'`) ถ้าจำเป็น\n\n## มากับซิปด้วย: `optional\u002Fskinchanger` + `optional\u002Fesx_skin`\n\nเซิร์ฟ ESX ส่วนใหญ่มีสองตัวนี้อยู่แล้ว — **มีอยู่แล้วก็ข้ามโฟลเดอร์ `optional\u002F` ไปเลย** `x3d_skin` ทำงานกับของเดิมได้อยู่แล้ว\n\nยังไม่มี? ย้ายออกมาไว้ใน `resources\u002F` แล้ว `ensure` ก่อน `x3d_skin`:\n\n```\nensure skinchanger\nensure esx_skin\nensure x3d_skin\n```\n\n- `skinchanger` = ของ ESX Legacy เดิม ตัดการ `@include` ไฟล์ locale ของ es_extended ออกให้ลงได้โดยไม่ error\n- `esx_skin` = เหลือเฉพาะส่วน API (เก็บคอลัมน์ `skin` + รับ event ชื่อเดิม) ไม่มี UI ซ้อนกับพาเนล และตั้งชื่อตารางผู้เล่นได้ใน config\n\nสองตัวนี้เป็นของ ESX Legacy สัญญาอนุญาต GPL v3 รายละเอียดอยู่ใน `optional\u002FREADME.md`\n\n`esx_skin` ที่แถมมายังมี `esx_skin:save`, callback `esx_skin:getPlayerSkin` และ event เปิดเมนูแบบเก่า — event พวกนี้จะเปิดพาเนลของ x3d_skin ให้ สคริปต์เดิมที่ยังเรียกอยู่จึงใช้ต่อได้\n\n## ร้าน (`Config.Shops`)\n\nร้านเสื้อผ้า 14 จุด ร้านเสริมสวย 7 จุด ร้านหน้ากาก 1 จุด อยู่ในสคริปต์นี้เลย ไม่ต้องลงร้านแยก\n\n- หมุดบนแผนที่โผล่เมื่อเข้าใกล้ 120 เมตร (`blipDistance = 0` = โชว์ตลอด)\n- วงกลมบนพื้น + ป้าย `[E] ร้านเสื้อผ้า ($500)` ภาษาไทยอ่านออก\n- แต่ละประเภทกำหนดราคาและช่องที่แก้ได้เองใน `Config.ShopTypes` พร้อมแท็บย่อย (เสื้อผ้า \u002F เครื่องประดับ ฯลฯ)\n- `Config.Shops.enabled = false` = ปิดร้านทั้งหมด เหลือแค่ `\u002Fskin`\n- ตั้ง `price = 0` = เข้าใช้ฟรี ไม่แตะระบบเงินเลย\n\n**เงินถูกหักและชุดถูกบันทึกในก้าวเดียวกันฝั่งเซิร์ฟเวอร์** ตอนกดยืนยัน เซิร์ฟเวอร์เช็กใหม่หมดว่ายังยืนอยู่ที่ร้านจริง เงินยังพอจริง แล้วค่อยหักและบันทึก หักไม่ผ่าน = ไม่บันทึกอะไรเลย · เขียนไม่ลง = คืนเงินทันที\n\n⚠ ร้านเสื้อผ้าแบบเดิม (สคริปต์ร้านเสื้อผ้าแยก + esx_skin) คิดเงินคนละทางกับที่บันทึกชุด ผู้เล่นที่บล็อกข้อความคิดเงินจะได้ชุดฟรี — ตัวนี้ปิดช่องนั้นแล้ว\n\nต่อระบบเงินของเซิร์ฟตัวเองที่ `addons\u002Fframework\u002Fserver.lua` (ESX มาให้แล้ว QBCore คอมเมนต์รออยู่) ถ้ายังไม่ต่อ ร้านที่มีราคาจะไม่เปิดและบอกให้แจ้งแอดมิน — ไม่แจกฟรี\n\n## ตู้เสื้อผ้า (`Config.Wardrobe`)\n\nเซฟชุดที่ใส่อยู่พร้อมตั้งชื่อ กดใส่ทีเดียวทั้งชุด เปลี่ยนชื่อ ทับชุดเดิม และลบได้ เก็บได้คนละ `maxPerType` ชุด (ค่าเริ่มต้น 20) ชื่อซ้ำกันไม่ได้\n\nชุดที่ใส่จากตู้จะทับเฉพาะเสื้อผ้า **หน้าตาไม่ขยับ** — เก็บหน้าเดิมไว้เสมอ\n\nรายการชุดเป็นของเซิร์ฟเวอร์ ส่งลงมาให้พาเนลทุกครั้งที่มีอะไรเปลี่ยน พาเนลไม่ได้เป็นคนตัดสินว่ามีชุดอะไรบ้าง\n\n## exports ฝั่งเซิร์ฟเวอร์\n\n```lua\nexports['x3d_skin']:GetSkin(src)          --> table หน้าที่เซฟไว้ หรือ nil\nexports['x3d_skin']:SetSkin(src, skin)    --> boolean (ตรวจแบบเดียวกับที่ผู้เล่นเซฟเอง)\nexports['x3d_skin']:OpenEditor(src)       --> boolean\n```\n\n`GetSkin` รับได้ทั้ง server id และ identifier · `SetSkin` ไม่ติด rate limit ระบบยูนิฟอร์มเปลี่ยนชุดให้หลายคนพร้อมกันได้\n\n## exports ฝั่ง client\n\n```lua\nexports['x3d_skin']:GetSkin()\nexports['x3d_skin']:GetMaxValues()\nexports['x3d_skin']:LoadSkin(skin)\nexports['x3d_skin']:LoadClothes(playerSkin, clothesSkin)   -- ทับเฉพาะเสื้อผ้า หน้าไม่ขยับ\nexports['x3d_skin']:Change('torso_1', 5)\nexports['x3d_skin']:OpenEditor(opts)\nexports['x3d_skin']:CloseEditor()\nexports['x3d_skin']:IsOpen()\n```\n\n## hook\n\n```lua\n-- server-internal ไม่ใช่ net event — client ยิงเองไม่ได้\nAddEventHandler('x3d_skin:onSave', function(src, identifier, skin)\n    print(('%s เซฟหน้าใหม่'):format(identifier))\nend)\n```\n\nฝั่ง client มี `x3d_skin:opened` กับ `x3d_skin:closed` ให้สคริปต์อื่นซ่อน HUD ของตัวเองตอนพาเนลเปิด\n\n## ที่เก็บข้อมูล\n\nหน้าตาของผู้เล่นเก็บฝั่งเซิร์ฟเวอร์เป็นไฟล์ JSON เดียว (`Config.Storage.File` ค่าเริ่มต้น `data\u002Fskins.json`) โหลดครั้งเดียวตอน resource เริ่ม เขียนกลับทุก `Config.Storage.FlushSeconds` วินาที ตอนผู้เล่นออก และตอนปิด resource แบบปกติ คีย์ที่ใช้คือ identifier ถาวร (license\u002Fdiscord\u002Fsteam) ไม่ใช่ server id\n\nไฟล์เสียจะถูกเก็บไว้เป็น `data\u002Fskins.broken.json` แล้วเริ่มใหม่จากว่าง พร้อมเตือนใน console ไม่ทับทิ้งเงียบ ๆ\n\nใช้ MySQL แทน:\n\n1. รัน `install.sql` ผ่าน oxmysql\n2. เปิด `addons\u002Fstorage\u002Fserver.lua` เลื่อนไปท้ายไฟล์ คัดลอกบล็อก oxmysql ทับสี่ฟังก์ชัน `Storage.Get\u002FSet\u002FAll\u002FFlush` ด้านบน\n\n## ความปลอดภัย (มีเทสคุมทุกข้อ)\n\n- **ค่าที่พาเนลส่งมาไม่เชื่อสักตัว** — ชื่อช่องต้องอยู่ใน `components.lua` ค่าต้องเป็นตัวเลข ถูก floor และ clamp เข้าช่วง คีย์แปลกปลอมถูกทิ้ง\n- **คีย์เก็บเป็น identifier เสมอ** ไม่ใช่ server id ที่ถูกใช้ซ้ำกับคนอื่นได้\n- **เซฟได้ 1 ครั้ง\u002Fวินาที\u002Fคน** cooldown ถูกล้างทันทีที่ผู้เล่นออก\n- **`\u002Fskin \u003Cid>` ต้องมี ace เสมอ** แม้เปิด `Config.PlayersCanEdit` ให้ทุกคนแก้ตัวเองได้\n- **เลขที่เกินช่วงถูก clamp ตอนใส่ลงร่างเท่านั้น ไม่เขียนกลับลงชุดที่เซฟ** — ชุด addon ที่โหลดไม่ทันจะไม่ล้างเสื้อผ้าผู้เล่นเป็น 0 ถาวร\n- **พาเนลปิดเองตอนตายและตอน resource หยุด** คืนเมาส์และคืนการควบคุมทุกครั้ง\n\n```bash\npip install lupa\npython tools\u002Flua-test\u002Fx3d_skin_check.py\n```\n\n## config (`config.lua`)\n\n| คีย์ | ทำอะไร |\n|---|---|\n| `Config.Locale` | ภาษาข้อความฝั่ง Lua (`th`\u002F`en`) — พาเนลมีปุ่มสลับภาษาของตัวเอง |\n| `Config.Command` \u002F `Config.Key` | คำสั่งเปิด (`\u002Fskin`) และปุ่มลัด (ว่าง = ไม่ผูกปุ่ม) |\n| `Config.AdminAce` | ace ที่ต้องมีถึงจะเปิดให้คนอื่นได้ |\n| `Config.PlayersCanEdit` | `false` = แก้ได้เฉพาะคนมี ace |\n| `Config.AdvancedFace` | ระบบหน้าแบบง่าย หรือแบบพ่อ\u002Fแม่ |\n| `Config.ApplyOnSpawn` \u002F `Config.FirstTimeSetup` | ใส่หน้าที่เซฟไว้ตอนเกิด · เปิดพาเนลให้คนที่ยังไม่เคยเซฟ |\n| `Config.Storage.File` \u002F `.FlushSeconds` | ไฟล์ที่เก็บและความถี่ในการเขียน |\n| `Config.Camera` | ระยะซูม ขอบเขตการเลื่อนกล้อง ไฟส่องตัวละคร |\n| `Config.HideHud` | ซ่อนเรดาร์\u002FHUD ระหว่างเปิดพาเนล |\n| `Config.Shops` \u002F `Config.ShopTypes` \u002F `Config.ShopLocations` | ร้าน — เปิดปิด ราคา ช่องที่แก้ได้ และที่ตั้ง |\n| `Config.Wardrobe` | ตู้เสื้อผ้า — เปิดปิด จำนวนชุดสูงสุดต่อคน |\n| `Config.Backend` | `auto`\u002F`skinchanger`\u002F`self` — ใครใส่ค่าลงร่างและใครเก็บชุด |\n\n## ช่วยเหลือ\n\nDiscord: discord.gg\u002Fx3d-developer · เว็บ: x3d-developer.com\n","สคริปต์ตกแต่งตัวละคร FiveM ฟรี ไม่ต้องใช้ skinchanger","หน้าตกแต่งตัวละคร FiveM ฟรี 77 ช่อง หน้า ผม เครา เมกอัพ เสื้อผ้า กล้องหมุนซูม ท่าโพส ไม่ต้องลง skinchanger ไม่ต้องลงฐานข้อมูล ร้านตัดผมเรียกใช้ได้",[61,64,66,68,70],{"kind":62,"url":63},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fmedia\u002Fa08a6d9506a7700b.png",{"kind":62,"url":65},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fmedia\u002Fcaf6452bf3d960de.png",{"kind":62,"url":67},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fmedia\u002F69e3657b291a300b.png",{"kind":62,"url":69},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fmedia\u002Fc67ad3f8f1dd1295.png",{"kind":62,"url":71},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-skin\u002Fmedia\u002Fb9dbff8a1dd766e4.png",[73,75,79,83,87],{"version":50,"released_at":51,"changelog_md":74},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":76,"released_at":77,"changelog_md":78},"1.5.2","2026-10-12T03:23:58.490433Z","### 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)\n- New store images",{"version":80,"released_at":81,"changelog_md":82},"1.5.1","2026-10-11T09:23:09.364562Z","### Changed\n\n- Clothing shop `[E]` label uses the X3D 3D-text standard (outlined Thai text, amber key line)",{"version":84,"released_at":85,"changelog_md":86},"1.4.0","2026-09-22T04:06:09.988343Z","### Added\n- `optional\u002Fskinchanger` and `optional\u002Fesx_skin` ship in the zip for servers that do not already have them, so nothing has to be hunted down elsewhere. A server that already runs them skips the folder and keeps its own.\n- The bundled `skinchanger` drops the `@include` of es_extended's locale file (a local `shim.lua` supplies `TranslateCap`), so it installs without erroring\n- The bundled `esx_skin` is trimmed to the API: the `skin` column, `esx_skin:save`, the `esx_skin:getPlayerSkin` callback and the old open-menu events, which now open the x3d_skin panel. No second UI, and the player table name is a config value.",{"version":88,"released_at":89,"changelog_md":90},"1.3.0","2026-09-22T04:02:29.316247Z","### Removed\r\n- The mode that answered as `skinchanger` and `esx_skin` so both could be deleted. Servers keep those two as their interface layer, so a mode built around removing them only made setup look frightening. Installing is now: drop the folder in, `ensure x3d_skin`, done.\r\n- The storage block that wrote the `users.skin` column — with the two originals left in place, `esx_skin` still owns that column.",{"items":92,"page":869,"size":870,"total":870},[93,129,151,180,202,231,264,289,316,346,371,397,425,452,480,508,532,552,575,602,632,657,681,705,726,754,757,778,802,827,848],{"id":94,"slug":95,"name":96,"summary":97,"price_thb":98,"license_mode":99,"cover_key":100,"cover_url":101,"category_slugs":102,"tags":105,"latest_version":124,"latest_released_at":125,"published_at":126,"has_docs":53,"config":127,"rent_price_satang":128},"6bdadea7-4316-4a4a-a38e-87c5e841077d","x3d-replay","X3D Replay (ดูย้อนหลัง)","BETA ราคาพิเศษ · บันทึกผู้เล่นทุกคนอัตโนมัติ ดูย้อนหลังในเกมได้ทุกวินาที กล้อง 4 แบบ ไทม์ไลน์ยิง\u002Fตาย ปุ่มที่กด สคริปต์ที่ใช้ จับ macro",59900,"shop_license","public\u002Fproducts\u002Fx3d-replay\u002Fcover.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-replay\u002Fcover.jpg",[103,104],"anticheat","admin",[33,106,107,108,109,110,111,112,113,114,115,116,117,118,103,119,120,121,122,123],"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":130,"slug":131,"name":132,"summary":133,"price_thb":98,"license_mode":99,"cover_key":134,"cover_url":135,"category_slugs":136,"tags":137,"latest_version":148,"latest_released_at":149,"published_at":150,"has_docs":53,"config":127,"rent_price_satang":128},"ff948fa9-6fc5-410e-b952-ee88b15f0c9d","x3d-anticheat","X3D Anti-Cheat (กันโปร)","BETA ราคาพิเศษ ร่วมทดสอบได้ · แอนตี้โกงเก็บหลักฐานก่อนแบน: Discord + ภาพหน้าจอ + แบน HWID + ล็อกบัญชี Steam\u002FDiscord + กัน event spam ด้วย 2 บรรทัด","public\u002Fproducts\u002Fx3d-anticheat\u002Fcover\u002Fd90612eed4448164.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-anticheat\u002Fcover\u002Fd90612eed4448164.jpg",[103],[33,34,138,103,139,140,141,118,142,143,144,145,146,147],"แอนตี้โกง","ป้องกันแฮก","กันโกง","HWID ban","ภาพหลักฐาน","ล็อกบัญชี Steam Discord","แบนเครื่อง","คิวยศ Discord","กัน event สแปม","แอนตี้โกง ESX","1.0.0","2026-09-16T09:45:51.78533Z","2026-09-16T09:46:00.05928Z",{"id":152,"slug":153,"name":154,"summary":155,"price_thb":156,"license_mode":99,"cover_key":157,"cover_url":158,"category_slugs":159,"tags":163,"latest_version":176,"latest_released_at":177,"published_at":178,"has_docs":53,"config":127,"rent_price_satang":179},"47a33337-7dcf-4a78-b056-4b3e324a648d","x3d-slots","X3D สล็อต 1024 ทาง","สล็อตคาสเคด 1,024 ทาง สไตล์มาห์จอง RTP 97.5% คิดผลบนเซิร์ฟเวอร์ กันโกง พร้อมฟรีสปิน ตัวคูณ และซีนแจ็กพอต",250000,"public\u002Fproducts\u002Fx3d-slots\u002Fcover\u002Fd09c2066a6ea2968.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-slots\u002Fcover\u002Fd09c2066a6ea2968.jpg",[160,161,162],"casino","economy","entertainment",[33,34,164,165,160,166,167,168,169,170,171,172,173,174,175],"คาสิโน","สล็อต","slot","มินิเกม","minigame","RTP 97.5%","มาห์จอง","คาสเคด","ฟรีสปิน","ตู้สล็อต","ซื้อฟีเจอร์","ปรับ RTP","1.1.4","2026-10-12T17:13:01.863556Z","2026-09-14T15:28:02.281478Z",50000,{"id":181,"slug":182,"name":183,"summary":184,"price_thb":26,"license_mode":27,"cover_key":185,"cover_url":186,"category_slugs":187,"tags":189,"latest_version":199,"latest_released_at":200,"published_at":201,"has_docs":53,"config":54,"rent_price_satang":55},"1fb91794-3e8b-4955-bc54-dc6b1491912e","x3d-mapevents","X3D Map Events (อีเวนต์บนแผนที่)","แผงอีเวนต์บนหน้าแผนที่ pause menu ฟรี: ชื่อ + เวลานับถอยหลัง คลิกเพื่อตั้งจุดนำทาง สคริปต์อื่นส่งอีเวนต์เข้ามาได้เหมือนส่งแจ้งเตือน แอดมินสร้างอีเวนต์เองได้","public\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-mapevents\u002Fcover\u002F8e738f2dfcf0ea2f.jpg",[31,188],"gameplay",[190,191,192,193,194,195,196,197,198,42,43],"อีเวนต์","อีเวนต์บนแผนที่","แผนที่","จุดนำทาง","นับถอยหลัง","pause menu","map events","event","waypoint","1.0.3","2026-10-12T17:13:20.327337Z","2026-10-12T04:21:56.480796Z",{"id":203,"slug":204,"name":205,"summary":206,"price_thb":26,"license_mode":27,"cover_key":207,"cover_url":208,"category_slugs":209,"tags":211,"latest_version":228,"latest_released_at":229,"published_at":230,"has_docs":53,"config":54,"rent_price_satang":55},"58697b89-cbe5-4b1f-8a29-c5289727202e","x3d-weaponskins","X3D Weapon Skins (สกินอาวุธ)","สกินอาวุธแบบสะสม ESX ฟรี สกินเป็นอาวุธ add-on ผูกกับปืนหลัก ใช้ไอเทมปลดล็อกเข้าคลัง ใส่\u002Fถอดได้ ดาเมจเท่าเดิม แปลงกลับเป็นไอเทมไปเทรดได้ มีเอฟเฟกต์ตอนถือ","public\u002Fproducts\u002Fx3d-weaponskins\u002Fcover\u002F25e3c37b23545ec8.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-weaponskins\u002Fcover\u002F25e3c37b23545ec8.jpg",[188,210],"inventory",[212,213,214,215,216,217,218,219,220,221,33,42,43,222,223,224,225,226,227],"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":232,"slug":233,"name":234,"summary":235,"price_thb":26,"license_mode":27,"cover_key":236,"cover_url":237,"category_slugs":238,"tags":240,"latest_version":124,"latest_released_at":262,"published_at":263,"has_docs":53,"config":54,"rent_price_satang":55},"d82d8eb1-ed6a-43e3-86ef-24e45ae2b39d","x3d-damage","X3D Damage (ดาเมจอาวุธ)","ตั้งดาเมจอาวุธเองทุกชิ้น พร้อมเอฟเฟกต์ เลือดออก ช้า สตัน ล้ม ดูดเลือด รองรับสกินอาวุธ ใช้ได้ทั้ง ESX และ standalone","public\u002Fproducts\u002Fx3d-damage\u002Fcover\u002F8ce8864c16843fe6.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-damage\u002Fcover\u002F8ce8864c16843fe6.jpg",[188,239],"gangs",[241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,33,34,42,43,256,257,258,259,260,261],"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":265,"slug":266,"name":267,"summary":268,"price_thb":26,"license_mode":27,"cover_key":269,"cover_url":270,"category_slugs":271,"tags":273,"latest_version":124,"latest_released_at":287,"published_at":288,"has_docs":53,"config":54,"rent_price_satang":55},"93def22a-9501-4b66-bdf0-158cc6a0093c","x3d-vehiclestorage","X3D Vehicle Storage (ท้ายรถ)","ท้ายรถสำหรับ ESX ใช้หน้าจอกระเป๋า x3d_inventory น้ำหนักตามประเภท\u002Fรุ่นรถ เฉพาะเจ้าของ รถงาน และแอดมินเปิดดูได้ ฟรี","public\u002Fproducts\u002Fx3d-vehiclestorage\u002Fcover\u002F2c2d97cb47678e1b.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-vehiclestorage\u002Fcover\u002F2c2d97cb47678e1b.jpg",[210,272],"garage",[274,275,276,277,278,279,280,221,33,42,43,281,282,283,284,285,286],"trunk","ท้ายรถ","ท้ายรถ fivem","vehicle storage","trunk inventory","esx trunk","เก็บของในรถ","ตู้ท้ายรถ","รถงาน","กล่องเก็บของหน้ารถ","น้ำหนักท้ายรถ","ล็อกรถ","เปิดท้ายรถ","2026-10-12T17:14:46.845123Z","2026-10-05T04:28:52.749188Z",{"id":290,"slug":291,"name":292,"summary":293,"price_thb":26,"license_mode":27,"cover_key":294,"cover_url":295,"category_slugs":296,"tags":298,"latest_version":124,"latest_released_at":314,"published_at":315,"has_docs":53,"config":54,"rent_price_satang":55},"b642bb91-9f6d-4c3c-8830-e594c2a92fcb","x3d-vault","X3D Vault (ตู้เซฟแก๊ง)","ตู้เซฟ ESX ใช้หน้าจอกระเป๋า x3d_inventory ตู้ส่วนตัวมีเลเวล แชร์ให้เพื่อน ตู้หน่วยงานตามอาชีพ ฟรี","public\u002Fproducts\u002Fx3d-vault\u002Fcover\u002F72ea3a88a64e0034.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-vault\u002Fcover\u002F72ea3a88a64e0034.jpg",[210,297],"jobs",[299,300,301,302,303,304,305,306,221,33,42,43,307,308,309,310,311,312,313],"vault","stash","ตู้เซฟ","ตู้เก็บของ","ตู้เซฟ fivem","esx stash","job vault","ตู้หน่วยงาน","ตู้เซฟแก๊ง","ตู้ส่วนตัว","แชร์ตู้","อัปเกรดตู้","ตู้เซฟตำรวจ","ตู้เซฟอาชีพ","ลิมิตตู้","2026-10-12T17:15:03.928293Z","2026-10-05T04:28:43.828514Z",{"id":317,"slug":318,"name":319,"summary":320,"price_thb":26,"license_mode":27,"cover_key":321,"cover_url":322,"category_slugs":323,"tags":324,"latest_version":343,"latest_released_at":344,"published_at":345,"has_docs":53,"config":54,"rent_price_satang":55},"70fa1474-294a-49ad-91cb-1de0ab4dc8d8","x3d-adminpanel","X3D Admin Panel (เมนูแอดมิน)","แผงแอดมิน FiveM ฟรี ครบในหน้าเดียว ผู้เล่น แบน\u002Fเตือน จับบัญชีสำรอง กระเป๋า ไอเทม รถ อากาศ บันทึกการใช้งาน และเมนูของสคริปต์ X3D","public\u002Fproducts\u002Fx3d-adminpanel\u002Fcover\u002F5cb8420f481eee28.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-adminpanel\u002Fcover\u002F5cb8420f481eee28.jpg",[104],[325,326,327,328,329,330,144,331,332,333,334,335,122,336,33,34,42,43,337,338,339,340,341,342],"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":347,"slug":348,"name":349,"summary":350,"price_thb":26,"license_mode":27,"cover_key":351,"cover_url":352,"category_slugs":353,"tags":354,"latest_version":176,"latest_released_at":369,"published_at":370,"has_docs":53,"config":54,"rent_price_satang":55},"d76ff7ae-ded6-4f39-b63f-734181952698","x3d-inventory","X3D Inventory (กระเป๋า)","กระเป๋าไอเทม ESX ฟรี ตัวหนังสือไทยใหญ่ ช่องลัด 1–9 บันทึกกับตัวละคร ความจุขยายด้วยคูปอง ต่อตู้เซฟ\u002Fท้ายรถได้ทุกสคริปต์","public\u002Fproducts\u002Fx3d-inventory\u002Fcover\u002Ffc3857e556cf31f3.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-inventory\u002Fcover\u002Ffc3857e556cf31f3.jpg",[210,31],[210,355,356,357,358,359,360,361,362,363,33,42,43,364,365,366,367,368],"กระเป๋า","กระเป๋า fivem","ui กระเป๋า","esx inventory","inventory fivem","ช่องลัด","hotbar","ไอเทม","nui","คูปองขยายช่อง","คูปองน้ำหนัก","ความหายากไอเทม","ค้นกระเป๋า","จำกัดน้ำหนัก","2026-10-12T17:16:22.733967Z","2026-10-05T04:10:14.693356Z",{"id":372,"slug":373,"name":374,"summary":375,"price_thb":26,"license_mode":27,"cover_key":376,"cover_url":377,"category_slugs":378,"tags":379,"latest_version":176,"latest_released_at":395,"published_at":396,"has_docs":53,"config":54,"rent_price_satang":55},"f782bbab-0321-4d3f-832f-797a2aa198f5","x3d-fortune","X3D Fortune (หมอดู)","หมอดูฟรีสำหรับ ESX: ดวงรายวัน ราศีจากวันเกิด เซียมซี 28 ใบ ไพ่ยิปซี 22 ใบ 9 หัวข้อ และดวงรายเดือนเปิดไพ่ 10 ใบ","public\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-fortune\u002Fcover\u002Fab130eeac9fbc029.jpg",[162],[380,381,382,383,384,385,386,387,388,33,42,43,389,390,391,392,393,394],"หมอดู","ดูดวง","เซียมซี","ไพ่ยิปซี","tarot","ราศี","ดวงรายวัน","fortune teller","npc","ดวงรายเดือน","ไพ่ทาโร่","เลขมงคล","สีมงคล","ไพ่กลับหัว","จุดหมอดู","2026-10-12T17:16:40.12128Z","2026-09-26T14:59:27.315955Z",{"id":398,"slug":399,"name":400,"summary":401,"price_thb":26,"license_mode":27,"cover_key":402,"cover_url":403,"category_slugs":404,"tags":405,"latest_version":422,"latest_released_at":423,"published_at":424,"has_docs":53,"config":54,"rent_price_satang":55},"9cb293aa-8b2c-447d-b810-3a7e385f6e81","x3d-banking","X3D Banking (ธนาคาร)","ธนาคารและตู้ ATM ฟรีสำหรับ ESX: ฝาก ถอน โอนด้วย ID ผู้เล่น ประวัติรายการ ใช้ได้ทุกตู้บนแผนที่ เซิร์ฟเวอร์เช็คทุกรายการ","public\u002Fproducts\u002Fx3d-banking\u002Fcover\u002Fe7e66ab29819a980.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-banking\u002Fcover\u002Fe7e66ab29819a980.jpg",[161],[406,407,408,409,410,411,412,413,414,415,33,42,43,416,417,418,419,420,421],"banking","ธนาคาร","ระบบธนาคาร","atm","ตู้ atm","โอนเงิน","โอนด้วยเบอร์โทร","esx banking","bank script","ประวัติรายการ","ถอนด่วน","วงเงินโอน","สาขาธนาคาร","ฝากเงิน","ถอนเงิน","เพิ่มตู้ ATM","1.1.8","2026-10-12T17:16:55.98941Z","2026-09-26T14:59:08.07128Z",{"id":426,"slug":427,"name":428,"summary":429,"price_thb":26,"license_mode":27,"cover_key":430,"cover_url":431,"category_slugs":432,"tags":433,"latest_version":176,"latest_released_at":450,"published_at":451,"has_docs":53,"config":54,"rent_price_satang":55},"c72d91e0-6bcd-4fae-bde9-0e140e02b0cb","x3d-music","X3D Music (ลำโพง)","ลำโพงบูมบ็อกซ์ฟรีสำหรับ ESX: วางบนพื้นหรือติดบนรถ เปิดเพลง YouTube คิวเพลงร่วมกัน เสียงเบาลงตามระยะ ลำโพงยังอยู่หลังรีสตาร์ท","public\u002Fproducts\u002Fx3d-music\u002Fcover\u002Fce445e0d251f7540.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-music\u002Fcover\u002Fce445e0d251f7540.jpg",[162],[434,435,436,437,438,439,440,441,442,443,33,42,43,444,445,446,447,448,449],"boombox","ลำโพง","ลำโพงเปิดเพลง","เปิดเพลง youtube","music script","fivem music","xsound","youtube","คิวเพลง","ติดบนรถ","ลำโพงติดรถ","เปิดเพลงในรถ","ฟังเพลงด้วยกัน","เพลงร่วมกัน","ลำโพงวางพื้น","จำกัดลำโพง","2026-10-12T17:17:14.482272Z","2026-09-26T14:56:09.091062Z",{"id":453,"slug":454,"name":455,"summary":456,"price_thb":26,"license_mode":27,"cover_key":457,"cover_url":458,"category_slugs":459,"tags":460,"latest_version":477,"latest_released_at":478,"published_at":479,"has_docs":53,"config":54,"rent_price_satang":55},"6125d85f-eaff-45cb-90cd-9db4d66e7954","x3d-respawn","X3D Respawn (หน้าจอตาย)","หน้าจอตายฟรี: ปุ่มเรียกหมอ หมอออนไลน์ต้องรอหมอ จุดเกิดใหม่ ชุบตัวเอง สรุปการตาย และเก็บสถานะตายตอนออกเกม","public\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg",[31],[461,462,463,464,465,466,467,468,469,470,471,33,42,43,472,473,474,475,476],"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":481,"slug":482,"name":483,"summary":484,"price_thb":26,"license_mode":27,"cover_key":485,"cover_url":486,"category_slugs":487,"tags":488,"latest_version":477,"latest_released_at":506,"published_at":507,"has_docs":53,"config":54,"rent_price_satang":55},"879a5a5d-5b22-4fb5-9274-6ac3ee631904","x3d-phone","X3D Phone (โทรศัพท์)","โทรศัพท์มือถือฟรีสำหรับ ESX: โทรผ่าน pma-voice, SMS แชร์ตำแหน่ง, ธนาคารมือถือ, กล้องถ่ายรูปเก็บในเซิร์ฟเอง, Buzz และ Dark Chat","public\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-phone\u002Fcover\u002F9e0b9e2f9bc7352d.jpg",[31],[489,490,491,492,493,494,495,470,496,497,498,499,500,33,42,43,501,502,503,464,504,505],"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":509,"slug":510,"name":511,"summary":512,"price_thb":26,"license_mode":27,"cover_key":513,"cover_url":514,"category_slugs":515,"tags":516,"latest_version":477,"latest_released_at":529,"published_at":530,"has_docs":531,"config":27,"rent_price_satang":55},"6705aca9-39b7-48ad-a39b-0dc4a906dd70","x3d-safe","X3D Safe Cracking (เจาะตู้เซฟ)","มินิเกมหมุนเจาะตู้เซฟ หมุนหน้าปัดด้วย A\u002FD กด E ตอนตรงจุด เรียกด้วย export เดียว","public\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-safe\u002Fcover\u002F410a110f32490438.jpg",[239,188],[517,518,301,519,167,168,520,521,34,522,42,43,523,524,525,526,527,528],"safe cracking","เจาะตู้เซฟ","หมุนตู้เซฟ","มินิเกม fivem","export","crime","หมุนหน้าปัด","ตู้เซฟธนาคาร","ตู้เซฟร้าน","ตู้เซฟบ้าน","ไม่ต้องใช้ ESX","มินิเกม A\u002FD","2026-10-12T17:18:34.435941Z","2026-09-24T03:53:28.3285Z",false,{"id":533,"slug":534,"name":535,"summary":536,"price_thb":26,"license_mode":27,"cover_key":537,"cover_url":538,"category_slugs":539,"tags":540,"latest_version":549,"latest_released_at":550,"published_at":551,"has_docs":531,"config":27,"rent_price_satang":55},"d5bcab3a-9189-4813-9b17-6b34f3a16584","x3d-lockpick","X3D Lockpick (งัดล็อก)","มินิเกมงัดล็อก หมุนหาจุดด้วย WASD เรียกด้วย export เดียว ใช้กับสคริปต์อะไรก็ได้","public\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-lockpick\u002Fcover\u002Fc36242cb20a32b3b.jpg",[239,188],[541,542,543,167,168,520,521,34,522,42,43,544,545,546,547,548],"lockpick","งัดล็อก","สะเดาะกุญแจ","งัดประตูบ้าน","งัดรถ","หมุดล็อก","มินิเกม WASD","ปรับความยาก","1.1.1","2026-10-12T17:18:46.115275Z","2026-09-24T03:53:14.231073Z",{"id":553,"slug":554,"name":555,"summary":556,"price_thb":26,"license_mode":27,"cover_key":557,"cover_url":558,"category_slugs":559,"tags":561,"latest_version":572,"latest_released_at":573,"published_at":574,"has_docs":53,"config":54,"rent_price_satang":55},"65d3b2da-6dba-4cd0-9907-06b8e6e54994","x3d-houserobbery","X3D House Robbery (งัดบ้าน)","งัดบ้าน — งัดประตู ค้นของตามพื้น เจาะตู้เซฟ มีคูลดาวน์ต่อหลัง แถมมินิเกมครบในซิปเดียว","public\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-houserobbery\u002Fcover\u002F73f596dab6db196a.jpg",[560,239],"housing",[562,563,564,565,566,301,541,167,239,567,560,522,33,42,43,568,518,569,570,571],"งัดบ้าน","ปล้นบ้าน","house robbery","robbery","ปล้น","แก๊ง","คีย์การ์ด","เงินแดง","จุดค้นของ","ปล้นบ้านคูลดาวน์","1.2.4","2026-10-12T17:19:03.056031Z","2026-09-24T03:48:06.633278Z",{"id":576,"slug":577,"name":578,"summary":579,"price_thb":26,"license_mode":27,"cover_key":580,"cover_url":581,"category_slugs":582,"tags":583,"latest_version":599,"latest_released_at":600,"published_at":601,"has_docs":53,"config":54,"rent_price_satang":55},"5532c49c-d819-4dda-b8a0-71514a14df31","x3d-selldrug","X3D Sell Drug (งานขายยา)","งานขายของผิดกฎหมาย ผู้รับซื้อลับสุ่มโผล่ตามแมพ มีเวลาจำกัด จ่ายเป็นเงินดำ มีระบบจุด10 ใช้ได้ทั้ง ESX และ standalone","public\u002Fproducts\u002Fx3d-selldrug\u002Fcover\u002F38844a64037d78d6.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-selldrug\u002Fcover\u002F38844a64037d78d6.jpg",[239,161],[584,585,586,587,588,589,590,591,239,567,522,33,42,43,592,593,594,595,596,597,569,598],"ขายยา","งานขายยา","sell drug","drug selling","ของผิดกฎหมาย","เงินดำ","black money","ผู้รับซื้อ","จุด10","จุดสิบ","จุดขายยา","ขายของจุด10","ขายของลับ","ฟอกเงิน","ผู้รับซื้อรายใหญ่","1.2.6","2026-10-12T17:19:19.018788Z","2026-09-24T03:39:03.703963Z",{"id":603,"slug":604,"name":605,"summary":606,"price_thb":26,"license_mode":27,"cover_key":607,"cover_url":608,"category_slugs":609,"tags":610,"latest_version":228,"latest_released_at":630,"published_at":631,"has_docs":531,"config":54,"rent_price_satang":55},"8e4dcdf4-7c70-4185-a3c9-15bb5328c457","x3d-useitem","X3D Use Item (ไอเทมใช้ได้)","ยา ผ้าพันแผล AED เกราะ หมวกกันน็อค ซ่อมรถ กระสุน กล่องสุ่ม อาหารพร้อมบัฟ — ไอเทมใช้ได้ครบชุด ต้องการแค่ ESX","public\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-useitem\u002Fcover\u002Fe007251b171e6791.jpg",[210,188],[611,612,613,614,615,616,617,618,619,620,621,622,623,33,42,43,624,625,626,627,628,629],"use item","ไอเทมใช้ได้","usable items","ยา","ผ้าพันแผล","aed","ชุบคนล้ม","ซ่อมรถ","กระสุน","กล่องสุ่ม","อาหาร","เสื้อเกราะ","หมวกกันน็อค","บัฟอาหาร","ชุดซ่อมรถ","เติมกระสุน","ยืมเสื้อเกราะ","ใช้ไอเทม","ไอเทมเติมเลือด","2026-10-12T17:19:33.653792Z","2026-09-24T02:05:34.038449Z",{"id":633,"slug":634,"name":635,"summary":636,"price_thb":26,"license_mode":27,"cover_key":637,"cover_url":638,"category_slugs":639,"tags":640,"latest_version":477,"latest_released_at":655,"published_at":656,"has_docs":531,"config":27,"rent_price_satang":55},"8c823bc1-1de6-41b6-bf82-146d5a55eeb5","x3d-progressbar","X3D Progress Bar (หลอดโหลด)","แถบความคืบหน้าธีมพีช ยกเลิกด้วย ESC นับเวลาถอยหลัง ล็อกปุ่มลัดให้อัตโนมัติ รองรับภาษาไทย","public\u002Fproducts\u002Fx3d-progressbar\u002Fcover\u002Ff6830df60f656452.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-progressbar\u002Fcover\u002Ff6830df60f656452.jpg",[31],[641,642,643,644,645,646,647,31,648,33,42,43,649,650,651,652,653,654],"progressbar","progress bar","แถบโหลด","แถบความคืบหน้า","esx_progressbar","esx progressbar","ui","ยกเลิก esc","หลอดโหลด","ฟอนต์ไทย","นับเวลาถอยหลัง","ล็อกปุ่มลัด","โปรเกรสบาร์","แทน esx_progressbar","2026-10-12T17:19:45.934106Z","2026-09-24T01:22:17.768991Z",{"id":658,"slug":659,"name":660,"summary":661,"price_thb":26,"license_mode":27,"cover_key":662,"cover_url":663,"category_slugs":664,"tags":665,"latest_version":228,"latest_released_at":679,"published_at":680,"has_docs":53,"config":54,"rent_price_satang":55},"63ce5efe-2f18-499e-a52b-8155a6cebb84","x3d-slide","X3D Slide (สไลด์)","สไลด์หลบไปข้างหน้าแบบเกมยิง กด Shift พร้อมปุ่มสไลด์ มีคูลดาวน์กันสแปม ตั้งค่าได้ใน config","public\u002Fproducts\u002Fx3d-slide\u002Fcover\u002F8c8383608791f58a.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-slide\u002Fcover\u002F8c8383608791f58a.jpg",[188],[666,667,668,669,670,671,672,673,34,33,42,43,674,675,676,677,678],"slide","สไลด์","slide fivem","ท่าสไลด์","หลบ","dodge","ท่าทาง","คูลดาวน์","สไลด์แบบเกมยิง","Shift สไลด์","ท่าหลบเกมยิง","ปุ่มสไลด์","ปรับแรงสไลด์","2026-10-12T17:20:03.227099Z","2026-09-24T01:21:56.84494Z",{"id":682,"slug":683,"name":684,"summary":685,"price_thb":26,"license_mode":27,"cover_key":686,"cover_url":687,"category_slugs":688,"tags":689,"latest_version":176,"latest_released_at":703,"published_at":704,"has_docs":53,"config":54,"rent_price_satang":55},"9b62b8ed-5911-47a8-b695-3320a6183758","x3d-notify","X3D Notify (แจ้งเตือน)","การ์ดแจ้งเตือน 9 ตำแหน่ง ใส่ไอคอนไอเทมกับกรอบระดับความหายากได้ รองรับภาษาไทยเต็มรูปแบบ","public\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg",[31],[690,691,692,693,694,695,647,31,650,696,33,42,43,697,698,699,700,701,702],"notify","notification","แจ้งเตือน","แจ้งเตือน fivem","esx_notify","esx notify","ไอคอนไอเทม","การ์ดแจ้งเตือน","กรอบความหายาก","แจ้งเตือน 9 ตำแหน่ง","สีในข้อความ","แทน esx_notify","แจ้งเตือนไอเทม","2026-10-12T17:20:21.047259Z","2026-09-24T01:21:40.547491Z",{"id":706,"slug":707,"name":708,"summary":709,"price_thb":26,"license_mode":27,"cover_key":710,"cover_url":711,"category_slugs":712,"tags":713,"latest_version":343,"latest_released_at":724,"published_at":725,"has_docs":53,"config":27,"rent_price_satang":55},"e6dc80f3-4f29-4d01-bffa-eba6829c6497","x3d-loadingscreen","X3D Loading Screen (หน้าโหลด)","หน้าโหลดสไตล์เทอร์มินัล มีปุ่ม ENTER WORLD ให้ผู้เล่นกดเองก่อนลงเมือง ไฟล์ HTML เดียว ไม่ต้อง build","public\u002Fproducts\u002Fx3d-loadingscreen\u002Fcover\u002F32f1538b8e18f4db.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-loadingscreen\u002Fcover\u002F32f1538b8e18f4db.jpg",[31],[714,715,716,717,718,719,647,34,33,42,43,720,721,649,722,723],"loading screen","หน้าโหลด","หน้าโหลด fivem","loadingscreen","esx_loadingscreen","enter world","ปุ่มเข้าเมือง","หน้าโหลดเทอร์มินัล","พื้นหลังวิดีโอ","เพลงหน้าโหลด","2026-10-12T17:20:39.269405Z","2026-09-24T00:50:19.336351Z",{"id":727,"slug":728,"name":729,"summary":730,"price_thb":26,"license_mode":27,"cover_key":731,"cover_url":732,"category_slugs":733,"tags":735,"latest_version":751,"latest_released_at":752,"published_at":753,"has_docs":53,"config":27,"rent_price_satang":55},"37f7d9db-f90d-4eed-861b-922da1072932","es-extended","ESX Legacy Core — X3D Build","es_extended ที่เร็วขึ้น กันข้อมูลผู้เล่นหาย และล็อกเศรษฐกิจก่อนรีสตาร์ท ลงทับตัวเดิมได้เลย ชื่อ resource เหมือนเดิมทุกอย่าง","public\u002Fproducts\u002Fes-extended\u002Fcover\u002Fa0b783dc4bf383e9.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fes-extended\u002Fcover\u002Fa0b783dc4bf383e9.jpg",[734],"optimization",[33,736,737,738,739,740,741,742,743,744,42,43,745,746,747,748,749,750],"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":22,"slug":23,"name":24,"summary":25,"price_thb":26,"license_mode":27,"cover_key":28,"cover_url":29,"category_slugs":755,"tags":756,"latest_version":50,"latest_released_at":51,"published_at":52,"has_docs":53,"config":54,"rent_price_satang":55},[31],[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],{"id":758,"slug":759,"name":760,"summary":761,"price_thb":26,"license_mode":27,"cover_key":762,"cover_url":763,"category_slugs":764,"tags":765,"latest_version":176,"latest_released_at":776,"published_at":777,"has_docs":53,"config":54,"rent_price_satang":55},"7337afbc-ca0d-4071-9de4-2cc04bd1b4e6","x3d-menu","X3D เมนูหลัก","เมนูหลักของเซิร์ฟ — การ์ดระบบ ประกาศ อีเวนต์มีช่วงเวลา คู่มือเมือง และหน้าตั้งค่าของผู้เล่น ไม่ต้องลงฐานข้อมูล ต่อกับเฟรมเวิร์กไหนก็ได้","public\u002Fproducts\u002Fx3d-menu\u002Fcover\u002F8a1dbb30861b0387.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-menu\u002Fcover\u002F8a1dbb30861b0387.jpg",[31],[33,34,766,767,768,769,190,770,42,43,771,772,773,774,775],"เมนูหลัก","main menu","menu","ประกาศ","คู่มือเมือง","เมนูเมือง","กฎเมือง","เมนู F4","ตั้งค่าผู้เล่น","แบนเนอร์อีเวนต์","2026-10-12T17:21:29.681926Z","2026-09-21T04:20:29.437521Z",{"id":779,"slug":780,"name":781,"summary":782,"price_thb":26,"license_mode":27,"cover_key":783,"cover_url":784,"category_slugs":785,"tags":786,"latest_version":799,"latest_released_at":800,"published_at":801,"has_docs":53,"config":54,"rent_price_satang":55},"7a9dd386-11c0-4f21-8c2e-cfa7dc24d15d","x3d-dailylogin","X3D Daily Login (เช็คอินรายวัน)","เช็คอินรายวัน สตรีค + ตารางรางวัลแก้เองได้ทั้งหมด ฟรี ไม่ต้องลงฐานข้อมูล กระเป๋าเต็มไม่เสียของ ต่อกับเฟรมเวิร์กไหนก็ได้","public\u002Fproducts\u002Fx3d-dailylogin\u002Fcover\u002Fffcad7901926aa67.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-dailylogin\u002Fcover\u002Fffcad7901926aa67.jpg",[188],[33,34,787,788,789,790,791,42,43,792,793,794,795,796,797,798],"เช็คอินรายวัน","daily login","daily reward","สตรีค","รางวัลรายวัน","ล็อคอินรายวัน","รางวัลค้างรับ","รับย้อนหลัง","โบนัสเวลาเล่น","รางวัลเข้าเกม","เช็คชื่อรายวัน","ไม่ต้องใช้ฐานข้อมูล","1.4.3","2026-10-12T17:21:47.885233Z","2026-09-20T10:37:48.155794Z",{"id":803,"slug":804,"name":805,"summary":806,"price_thb":26,"license_mode":27,"cover_key":807,"cover_url":808,"category_slugs":809,"tags":810,"latest_version":824,"latest_released_at":825,"published_at":826,"has_docs":53,"config":54,"rent_price_satang":55},"83c7d7cb-bde4-45e3-a552-d7e377e4dc5d","x3d-mailbox","X3D Mailbox (โค้ดรับของ)","กล่องจดหมายออฟไลน์พร้อมของแนบ + โค้ดรับของ \u002Fredeem ฟรี ไม่ต้องลงฐานข้อมูล — ส่งไอเทมและเงินให้ผู้เล่นที่ออฟไลน์ แยกแท็บจดหมาย\u002Fตู้นิรภัย ต่อได้ทุกเฟรมเวิร์ก","public\u002Fproducts\u002Fx3d-mailbox\u002Fcover\u002F743a9e72c1ae8d6d.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-mailbox\u002Fcover\u002F743a9e72c1ae8d6d.jpg",[188],[33,43,811,812,34,813,814,42,815,816,817,818,819,820,821,822,823,798],"mailbox","redeem code","กล่องจดหมาย","ของแนบ","รีดีมโค้ด","ส่งของออฟไลน์","โค้ดรับของ","กรอกโค้ดรับของ","จดหมายออฟไลน์","ส่งของให้คนออฟไลน์","โค้ดแจกของ","แจกของกิจกรรม","ของชดเชย","1.7.2","2026-10-12T17:22:30.892527Z","2026-09-19T19:05:39.140076Z",{"id":828,"slug":829,"name":830,"summary":831,"price_thb":26,"license_mode":27,"cover_key":832,"cover_url":833,"category_slugs":834,"tags":835,"latest_version":477,"latest_released_at":846,"published_at":847,"has_docs":53,"config":54,"rent_price_satang":55},"fd28d581-12ee-43b8-9dfb-aa18defe53be","x3d-carry","X3D Carry (อุ้มศพ)","ระบบอุ้มผู้เล่นฟรี — อุ้มศพ แย่งศพ อุ้มพาดบ่า ขี่หลัง ศพอุ้มได้ไม่ต้องขอ คนเป็นต้องขออนุญาตก่อน เซิร์ฟเวอร์ตัดสินทุกอย่าง UI ภาษาไทย","public\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg",[188],[33,34,836,837,838,42,43,839,840,841,842,843,844,845],"อุ้มศพ","carry","อุ้มผู้เล่น","แย่งศพ","แบกผู้เล่น","ขี่หลัง","อุ้มพาดบ่า","ลากศพ","เมืองแก๊ง","อุ้มเพื่อน","2026-10-12T17:22:50.777785Z","2026-09-16T13:52:19.956202Z",{"id":849,"slug":850,"name":851,"summary":852,"price_thb":26,"license_mode":27,"cover_key":853,"cover_url":854,"category_slugs":855,"tags":856,"latest_version":124,"latest_released_at":867,"published_at":868,"has_docs":53,"config":54,"rent_price_satang":55},"12cb8b4e-b8db-4ad1-a8a2-bd0679aabec5","x3d-environment","X3D Environment (ล้างแมพ)","ล้างแมพให้สะอาด ฟรี ไฟล์เดียว — ปิด NPC รถ AI scenario กล้อง idle ล้างคราบเลือด ลอยยาง รอยกระสุน และรอยแผลบนตัวผู้เล่น","public\u002Fproducts\u002Fx3d-environment\u002Fcover\u002F7aa9b73e2efb1416.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-environment\u002Fcover\u002F7aa9b73e2efb1416.jpg",[734],[33,34,857,734,858,859,860,42,43,861,862,863,864,865,866],"ล้างแมพ","ลดแลค","เพิ่ม FPS","ปิด NPC","ปิดรถ AI","ล้างคราบเลือด","ลบลอยยาง","ปิดกล้อง idle","ลบ NPC","แมพโล่ง","2026-10-12T17:23:03.418375Z","2026-09-16T09:49:13.991696Z",1,31,{"html":872,"headings":873},"\u003Ch2 id=\"การติดตั้ง\">การติดตั้ง\u003C\u002Fh2>\n\u003Col>\n\u003Cli>แตกไฟล์แล้ว \u003Cstrong>เปลี่ยนชื่อโฟลเดอร์เป็น \u003Ccode>x3d_skin\u003C\u002Fcode>\u003C\u002Fstrong> (สคริปต์อื่นเรียก export ด้วยชื่อนี้)\u003C\u002Fli>\n\u003Cli>วางใน \u003Ccode>resources\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>เพิ่ม \u003Ccode>ensure x3d_skin\u003C\u002Fcode> ใน \u003Ccode>server.cfg\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>จบ — ไม่ต้องลงฐานข้อมูล ไม่ต้องลงอะไรเพิ่ม ไม่ต้องแตะ resource เดิมของเซิร์ฟ ใช้ได้ทั้ง ESX, QBCore และเซิร์ฟเปล่า\u003C\u002Fp>\n\u003Cp>ผู้เล่นเปิดด้วย \u003Ccode>\u002Fskin\u003C\u002Fcode> · แอดมินเปิดให้คนอื่นด้วย \u003Ccode>\u002Fskin &lt;id&gt;\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>ให้สิทธิ์แอดมิน:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_ace group.admin x3d_skin.admin allow\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>⚠ เซิร์ฟที่มี \u003Ccode>esx_skin\u003C\u002Fcode> อยู่แล้ว มันจด \u003Ccode>\u002Fskin\u003C\u002Fcode> ไว้เหมือนกัน — ตัวที่ \u003Ccode>ensure\u003C\u002Fcode> ทีหลังเป็นคนตอบ วาง \u003Ccode>ensure x3d_skin\u003C\u002Fcode> ไว้หลัง \u003Ccode>ensure esx_skin\u003C\u002Fcode> หรือเปลี่ยน \u003Ccode>Config.Command\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch2 id=\"ช่องที่แก้ได้\">ช่องที่แก้ได้\u003C\u002Fh2>\n\u003Cp>77 ช่องในโหมดปกติ แบ่งเป็น 6 หมวดในแถบล่าง:\u003C\u002Fp>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>หมวด\u003C\u002Fth>\n\u003Cth>มีอะไร\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>พื้นฐาน\u003C\u002Ftd>\n\u003Ctd>เพศ · ใบหน้า · ผิว\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>ผมและดวงตา\u003C\u002Ftd>\n\u003Ctd>ทรงผม สีผม ไฮไลท์ · สีตา · ทรงคิ้ว สีคิ้ว ความเข้ม\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>เสื้อผ้า\u003C\u002Ftd>\n\u003Ctd>เสื้อชั้นใน เสื้อ ลวดลาย แขนเสื้อ เกราะ กางเกง รองเท้า (พร้อมช่องสีของแต่ละชิ้น)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>เครื่องประดับ\u003C\u002Ftd>\n\u003Ctd>หน้ากาก สร้อยคอ หมวก แว่นตา นาฬิกา กำไล ต่างหู\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>แต่งหน้า\u003C\u002Ftd>\n\u003Ctd>เมกอัพ ลิปสติก ปัดแก้ม เครา\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>รายละเอียด\u003C\u002Ftd>\n\u003Ctd>อายุ ตำหนิ สีผิวไม่สม่ำเสมอ รอยแดดเผา ไฝ ขนหน้าอก ตำหนิร่างกาย\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>เพดานของแต่ละช่องถามจากเกมตอนรัน (\u003Ccode>GetNumberOfPedDrawableVariations\u003C\u002Fcode> และเพื่อน ๆ) ไม่ได้ฮาร์ดโค้ดไว้ — ลงชุด addon เพิ่มเมื่อไหร่ ผู้เล่นเลือกได้ครบทันทีโดยไม่ต้องแก้ config\u003C\u002Fp>\n\u003Cp>เปลี่ยน \u003Ccode>Config.AdvancedFace = true\u003C\u002Fcode> เพื่อสลับจาก &quot;เลือกหน้าสำเร็จรูป 46 แบบ&quot; ไปเป็นระบบพ่อ\u002Fแม่ + น้ำหนักหน้า + ดัดจมูก แก้ม คาง ทีละจุดแบบ GTA Online\u003C\u002Fp>\n\u003Cp>⚠ สลับค่านี้หลังเปิดเซิร์ฟแล้ว หน้าที่ผู้เล่นเซฟไว้จะเพี้ยน เพราะเป็นคนละชุดค่ากัน\u003C\u002Fp>\n\u003Ch2 id=\"การควบคุมในพาเนล\">การควบคุมในพาเนล\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>ปุ่ม\u003C\u002Fth>\n\u003Cth>ทำอะไร\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>LMB + ลาก\u003C\u002Ftd>\n\u003Ctd>หมุนตัวละคร\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>RMB + ลาก\u003C\u002Ftd>\n\u003Ctd>เลื่อนมุมกล้อง (มีขอบเขต ส่องไปที่อื่นไม่ได้)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Scroll\u003C\u002Ftd>\n\u003Ctd>ซูมเข้า\u002Fออก\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Q \u002F E\u003C\u002Ftd>\n\u003Ctd>หมุนตัวละครทีละองศา\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>คลิกช่อง + Scroll\u003C\u002Ftd>\n\u003Ctd>ปรับค่าช่องนั้น\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Shift + Scroll\u003C\u002Ftd>\n\u003Ctd>ปรับทีละ ±10\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>ลูกศร\u003C\u002Ftd>\n\u003Ctd>ปรับละเอียด\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Cp>ปุ่มซ้ายล่าง: โฟกัสหัว · โฟกัสตัว · รีเซ็ตกล้อง · ไฟส่องหน้า · ท่าโพส (4 แบบ) · ซ่อนผู้เล่นคนอื่นในรัศมี 50 เมตร\u003C\u002Fp>\n\u003Cp>กล้องเลื่อนไปยังจุดที่กำลังแก้เอง แต่พอผู้เล่นหมุน\u002Fซูมเองแล้ว กล้องจะหยุดขยับเองภายในหมวดนั้น จนกว่าจะเลือกช่องในหมวดอื่น\u003C\u002Fp>\n\u003Ch2 id=\"เปิดจากร้าน-ร้านตัดผม-ร้านเสื้อผ้า\">เปิดจากร้าน (ร้านตัดผม ร้านเสื้อผ้า)\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">exports['x3d_skin']:OpenEditor({\n    title    = 'ร้านตัดผม',\n    price    = 500,\n    restrict = { 'hair_1', 'hair_2', 'hair_color_1', 'hair_color_2',\n                 'beard_1', 'beard_2', 'beard_3', 'beard_4' },\n    onSubmit = function() TriggerServerEvent('myshop:charge', 500) end,\n    onCancel = function() print('ยกเลิก') end,\n})\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>restrict\u003C\u002Fcode> จำกัดช่องที่แก้ได้ · \u003Ccode>price\u003C\u002Fcode> ทำให้ปุ่มยืนยันกลายเป็น &quot;ซื้อ&quot; พร้อมราคา\u003C\u002Fp>\n\u003Cp>⚠ ทางนี้ (\u003Ccode>OpenEditor\u003C\u002Fcode> เอง) \u003Cstrong>ไม่หักเงินให้\u003C\u002Fstrong> — ตัดเงินใน \u003Ccode>onSubmit\u003C\u002Fcode> ของร้านคุณเอง · ร้านที่อยู่ใน \u003Ccode>Config.Shops\u003C\u002Fcode> คนละทาง ตรงนั้นเซิร์ฟเวอร์หักเงินและบันทึกให้ในก้าวเดียว\u003C\u002Fp>\n\u003Ch2 id=\"เข้ากับ-skinchanger-esx-skin-ที่มีอยู่แล้ว\">เข้ากับ skinchanger \u002F esx_skin ที่มีอยู่แล้ว\u003C\u002Fh2>\n\u003Cp>ไม่ต้องตั้งอะไร สคริปต์ดูเองตอนเปิดเซิร์ฟ:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>มี \u003Ccode>skinchanger\u003C\u002Fcode> อยู่แล้ว\u003C\u002Fstrong> → ใช้ของเดิมใส่เสื้อผ้าลงร่าง และให้ \u003Ccode>esx_skin\u003C\u002Fcode> เก็บชุดทางเดิมของมัน x3d_skin เป็นแค่ UI + ร้าน + ตู้เสื้อผ้า\u003C\u002Fli>\n\u003Cli>\u003Cstrong>ไม่มี\u003C\u002Fstrong> → x3d_skin ใส่เองและเก็บเองในไฟล์ JSON\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>ทั้งสองทางไม่ต้อง stop อะไร ไม่ต้องย้ายข้อมูล ตัวละครเก่าอยู่ครบ\u003C\u002Fp>\n\u003Cp>บังคับทางใดทางหนึ่งได้ที่ \u003Ccode>Config.Backend\u003C\u002Fcode> (\u003Ccode>'skinchanger'\u003C\u002Fcode> \u002F \u003Ccode>'self'\u003C\u002Fcode>) ถ้าจำเป็น\u003C\u002Fp>\n\u003Ch2 id=\"มากับซิปด้วย-optional-skinchanger-optional-esx-skin\">มากับซิปด้วย: \u003Ccode>optional\u002Fskinchanger\u003C\u002Fcode> + \u003Ccode>optional\u002Fesx_skin\u003C\u002Fcode>\u003C\u002Fh2>\n\u003Cp>เซิร์ฟ ESX ส่วนใหญ่มีสองตัวนี้อยู่แล้ว — \u003Cstrong>มีอยู่แล้วก็ข้ามโฟลเดอร์ \u003Ccode>optional\u002F\u003C\u002Fcode> ไปเลย\u003C\u002Fstrong> \u003Ccode>x3d_skin\u003C\u002Fcode> ทำงานกับของเดิมได้อยู่แล้ว\u003C\u002Fp>\n\u003Cp>ยังไม่มี? ย้ายออกมาไว้ใน \u003Ccode>resources\u002F\u003C\u002Fcode> แล้ว \u003Ccode>ensure\u003C\u002Fcode> ก่อน \u003Ccode>x3d_skin\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>ensure skinchanger\nensure esx_skin\nensure x3d_skin\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>\u003Ccode>skinchanger\u003C\u002Fcode> = ของ ESX Legacy เดิม ตัดการ \u003Ccode>@include\u003C\u002Fcode> ไฟล์ locale ของ es_extended ออกให้ลงได้โดยไม่ error\u003C\u002Fli>\n\u003Cli>\u003Ccode>esx_skin\u003C\u002Fcode> = เหลือเฉพาะส่วน API (เก็บคอลัมน์ \u003Ccode>skin\u003C\u002Fcode> + รับ event ชื่อเดิม) ไม่มี UI ซ้อนกับพาเนล และตั้งชื่อตารางผู้เล่นได้ใน config\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>สองตัวนี้เป็นของ ESX Legacy สัญญาอนุญาต GPL v3 รายละเอียดอยู่ใน \u003Ccode>optional\u002FREADME.md\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Ccode>esx_skin\u003C\u002Fcode> ที่แถมมายังมี \u003Ccode>esx_skin:save\u003C\u002Fcode>, callback \u003Ccode>esx_skin:getPlayerSkin\u003C\u002Fcode> และ event เปิดเมนูแบบเก่า — event พวกนี้จะเปิดพาเนลของ x3d_skin ให้ สคริปต์เดิมที่ยังเรียกอยู่จึงใช้ต่อได้\u003C\u002Fp>\n\u003Ch2 id=\"ร้าน-config-shops\">ร้าน (\u003Ccode>Config.Shops\u003C\u002Fcode>)\u003C\u002Fh2>\n\u003Cp>ร้านเสื้อผ้า 14 จุด ร้านเสริมสวย 7 จุด ร้านหน้ากาก 1 จุด อยู่ในสคริปต์นี้เลย ไม่ต้องลงร้านแยก\u003C\u002Fp>\n\u003Cul>\n\u003Cli>หมุดบนแผนที่โผล่เมื่อเข้าใกล้ 120 เมตร (\u003Ccode>blipDistance = 0\u003C\u002Fcode> = โชว์ตลอด)\u003C\u002Fli>\n\u003Cli>วงกลมบนพื้น + ป้าย \u003Ccode>[E] ร้านเสื้อผ้า ($500)\u003C\u002Fcode> ภาษาไทยอ่านออก\u003C\u002Fli>\n\u003Cli>แต่ละประเภทกำหนดราคาและช่องที่แก้ได้เองใน \u003Ccode>Config.ShopTypes\u003C\u002Fcode> พร้อมแท็บย่อย (เสื้อผ้า \u002F เครื่องประดับ ฯลฯ)\u003C\u002Fli>\n\u003Cli>\u003Ccode>Config.Shops.enabled = false\u003C\u002Fcode> = ปิดร้านทั้งหมด เหลือแค่ \u003Ccode>\u002Fskin\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>ตั้ง \u003Ccode>price = 0\u003C\u002Fcode> = เข้าใช้ฟรี ไม่แตะระบบเงินเลย\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>เงินถูกหักและชุดถูกบันทึกในก้าวเดียวกันฝั่งเซิร์ฟเวอร์\u003C\u002Fstrong> ตอนกดยืนยัน เซิร์ฟเวอร์เช็กใหม่หมดว่ายังยืนอยู่ที่ร้านจริง เงินยังพอจริง แล้วค่อยหักและบันทึก หักไม่ผ่าน = ไม่บันทึกอะไรเลย · เขียนไม่ลง = คืนเงินทันที\u003C\u002Fp>\n\u003Cp>⚠ ร้านเสื้อผ้าแบบเดิม (สคริปต์ร้านเสื้อผ้าแยก + esx_skin) คิดเงินคนละทางกับที่บันทึกชุด ผู้เล่นที่บล็อกข้อความคิดเงินจะได้ชุดฟรี — ตัวนี้ปิดช่องนั้นแล้ว\u003C\u002Fp>\n\u003Cp>ต่อระบบเงินของเซิร์ฟตัวเองที่ \u003Ccode>addons\u002Fframework\u002Fserver.lua\u003C\u002Fcode> (ESX มาให้แล้ว QBCore คอมเมนต์รออยู่) ถ้ายังไม่ต่อ ร้านที่มีราคาจะไม่เปิดและบอกให้แจ้งแอดมิน — ไม่แจกฟรี\u003C\u002Fp>\n\u003Ch2 id=\"ตู้เสื้อผ้า-config-wardrobe\">ตู้เสื้อผ้า (\u003Ccode>Config.Wardrobe\u003C\u002Fcode>)\u003C\u002Fh2>\n\u003Cp>เซฟชุดที่ใส่อยู่พร้อมตั้งชื่อ กดใส่ทีเดียวทั้งชุด เปลี่ยนชื่อ ทับชุดเดิม และลบได้ เก็บได้คนละ \u003Ccode>maxPerType\u003C\u002Fcode> ชุด (ค่าเริ่มต้น 20) ชื่อซ้ำกันไม่ได้\u003C\u002Fp>\n\u003Cp>ชุดที่ใส่จากตู้จะทับเฉพาะเสื้อผ้า \u003Cstrong>หน้าตาไม่ขยับ\u003C\u002Fstrong> — เก็บหน้าเดิมไว้เสมอ\u003C\u002Fp>\n\u003Cp>รายการชุดเป็นของเซิร์ฟเวอร์ ส่งลงมาให้พาเนลทุกครั้งที่มีอะไรเปลี่ยน พาเนลไม่ได้เป็นคนตัดสินว่ามีชุดอะไรบ้าง\u003C\u002Fp>\n\u003Ch2 id=\"exports-ฝั่งเซิร์ฟเวอร์\">exports ฝั่งเซิร์ฟเวอร์\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">exports['x3d_skin']:GetSkin(src)          --&gt; table หน้าที่เซฟไว้ หรือ nil\nexports['x3d_skin']:SetSkin(src, skin)    --&gt; boolean (ตรวจแบบเดียวกับที่ผู้เล่นเซฟเอง)\nexports['x3d_skin']:OpenEditor(src)       --&gt; boolean\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Ccode>GetSkin\u003C\u002Fcode> รับได้ทั้ง server id และ identifier · \u003Ccode>SetSkin\u003C\u002Fcode> ไม่ติด rate limit ระบบยูนิฟอร์มเปลี่ยนชุดให้หลายคนพร้อมกันได้\u003C\u002Fp>\n\u003Ch2 id=\"exports-ฝั่ง-client\">exports ฝั่ง client\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">exports['x3d_skin']:GetSkin()\nexports['x3d_skin']:GetMaxValues()\nexports['x3d_skin']:LoadSkin(skin)\nexports['x3d_skin']:LoadClothes(playerSkin, clothesSkin)   -- ทับเฉพาะเสื้อผ้า หน้าไม่ขยับ\nexports['x3d_skin']:Change('torso_1', 5)\nexports['x3d_skin']:OpenEditor(opts)\nexports['x3d_skin']:CloseEditor()\nexports['x3d_skin']:IsOpen()\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"hook\">hook\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-lua\">-- server-internal ไม่ใช่ net event — client ยิงเองไม่ได้\nAddEventHandler('x3d_skin:onSave', function(src, identifier, skin)\n    print(('%s เซฟหน้าใหม่'):format(identifier))\nend)\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>ฝั่ง client มี \u003Ccode>x3d_skin:opened\u003C\u002Fcode> กับ \u003Ccode>x3d_skin:closed\u003C\u002Fcode> ให้สคริปต์อื่นซ่อน HUD ของตัวเองตอนพาเนลเปิด\u003C\u002Fp>\n\u003Ch2 id=\"ที่เก็บข้อมูล\">ที่เก็บข้อมูล\u003C\u002Fh2>\n\u003Cp>หน้าตาของผู้เล่นเก็บฝั่งเซิร์ฟเวอร์เป็นไฟล์ JSON เดียว (\u003Ccode>Config.Storage.File\u003C\u002Fcode> ค่าเริ่มต้น \u003Ccode>data\u002Fskins.json\u003C\u002Fcode>) โหลดครั้งเดียวตอน resource เริ่ม เขียนกลับทุก \u003Ccode>Config.Storage.FlushSeconds\u003C\u002Fcode> วินาที ตอนผู้เล่นออก และตอนปิด resource แบบปกติ คีย์ที่ใช้คือ identifier ถาวร (license\u002Fdiscord\u002Fsteam) ไม่ใช่ server id\u003C\u002Fp>\n\u003Cp>ไฟล์เสียจะถูกเก็บไว้เป็น \u003Ccode>data\u002Fskins.broken.json\u003C\u002Fcode> แล้วเริ่มใหม่จากว่าง พร้อมเตือนใน console ไม่ทับทิ้งเงียบ ๆ\u003C\u002Fp>\n\u003Cp>ใช้ MySQL แทน:\u003C\u002Fp>\n\u003Col>\n\u003Cli>รัน \u003Ccode>install.sql\u003C\u002Fcode> ผ่าน oxmysql\u003C\u002Fli>\n\u003Cli>เปิด \u003Ccode>addons\u002Fstorage\u002Fserver.lua\u003C\u002Fcode> เลื่อนไปท้ายไฟล์ คัดลอกบล็อก oxmysql ทับสี่ฟังก์ชัน \u003Ccode>Storage.Get\u002FSet\u002FAll\u002FFlush\u003C\u002Fcode> ด้านบน\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2 id=\"ความปลอดภัย-มีเทสคุมทุกข้อ\">ความปลอดภัย (มีเทสคุมทุกข้อ)\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>ค่าที่พาเนลส่งมาไม่เชื่อสักตัว\u003C\u002Fstrong> — ชื่อช่องต้องอยู่ใน \u003Ccode>components.lua\u003C\u002Fcode> ค่าต้องเป็นตัวเลข ถูก floor และ clamp เข้าช่วง คีย์แปลกปลอมถูกทิ้ง\u003C\u002Fli>\n\u003Cli>\u003Cstrong>คีย์เก็บเป็น identifier เสมอ\u003C\u002Fstrong> ไม่ใช่ server id ที่ถูกใช้ซ้ำกับคนอื่นได้\u003C\u002Fli>\n\u003Cli>\u003Cstrong>เซฟได้ 1 ครั้ง\u002Fวินาที\u002Fคน\u003C\u002Fstrong> cooldown ถูกล้างทันทีที่ผู้เล่นออก\u003C\u002Fli>\n\u003Cli>\u003Cstrong>\u003Ccode>\u002Fskin &lt;id&gt;\u003C\u002Fcode> ต้องมี ace เสมอ\u003C\u002Fstrong> แม้เปิด \u003Ccode>Config.PlayersCanEdit\u003C\u002Fcode> ให้ทุกคนแก้ตัวเองได้\u003C\u002Fli>\n\u003Cli>\u003Cstrong>เลขที่เกินช่วงถูก clamp ตอนใส่ลงร่างเท่านั้น ไม่เขียนกลับลงชุดที่เซฟ\u003C\u002Fstrong> — ชุด addon ที่โหลดไม่ทันจะไม่ล้างเสื้อผ้าผู้เล่นเป็น 0 ถาวร\u003C\u002Fli>\n\u003Cli>\u003Cstrong>พาเนลปิดเองตอนตายและตอน resource หยุด\u003C\u002Fstrong> คืนเมาส์และคืนการควบคุมทุกครั้ง\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-bash\">pip install lupa\npython tools\u002Flua-test\u002Fx3d_skin_check.py\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"config-config-lua\">config (\u003Ccode>config.lua\u003C\u002Fcode>)\u003C\u002Fh2>\n\u003Cdiv class=\"table-scroll\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>คีย์\u003C\u002Fth>\n\u003Cth>ทำอะไร\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Locale\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ภาษาข้อความฝั่ง Lua (\u003Ccode>th\u003C\u002Fcode>\u002F\u003Ccode>en\u003C\u002Fcode>) — พาเนลมีปุ่มสลับภาษาของตัวเอง\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Command\u003C\u002Fcode> \u002F \u003Ccode>Config.Key\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>คำสั่งเปิด (\u003Ccode>\u002Fskin\u003C\u002Fcode>) และปุ่มลัด (ว่าง = ไม่ผูกปุ่ม)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.AdminAce\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ace ที่ต้องมีถึงจะเปิดให้คนอื่นได้\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.PlayersCanEdit\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>false\u003C\u002Fcode> = แก้ได้เฉพาะคนมี ace\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.AdvancedFace\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ระบบหน้าแบบง่าย หรือแบบพ่อ\u002Fแม่\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.ApplyOnSpawn\u003C\u002Fcode> \u002F \u003Ccode>Config.FirstTimeSetup\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ใส่หน้าที่เซฟไว้ตอนเกิด · เปิดพาเนลให้คนที่ยังไม่เคยเซฟ\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Storage.File\u003C\u002Fcode> \u002F \u003Ccode>.FlushSeconds\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ไฟล์ที่เก็บและความถี่ในการเขียน\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Camera\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ระยะซูม ขอบเขตการเลื่อนกล้อง ไฟส่องตัวละคร\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.HideHud\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ซ่อนเรดาร์\u002FHUD ระหว่างเปิดพาเนล\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Shops\u003C\u002Fcode> \u002F \u003Ccode>Config.ShopTypes\u003C\u002Fcode> \u002F \u003Ccode>Config.ShopLocations\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ร้าน — เปิดปิด ราคา ช่องที่แก้ได้ และที่ตั้ง\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Wardrobe\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>ตู้เสื้อผ้า — เปิดปิด จำนวนชุดสูงสุดต่อคน\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\u003Ccode>Config.Backend\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>auto\u003C\u002Fcode>\u002F\u003Ccode>skinchanger\u003C\u002Fcode>\u002F\u003Ccode>self\u003C\u002Fcode> — ใครใส่ค่าลงร่างและใครเก็บชุด\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\u003Ch2 id=\"ช่วยเหลือ\">ช่วยเหลือ\u003C\u002Fh2>\n\u003Cp>Discord: discord.gg\u002Fx3d-developer · เว็บ: x3d-developer.com\u003C\u002Fp>\n",[874,877,879,881,884,887,890,893,896,899,902,904,906,909,912],{"id":875,"text":875,"level":876},"การติดตั้ง",2,{"id":878,"text":878,"level":876},"ช่องที่แก้ได้",{"id":880,"text":880,"level":876},"การควบคุมในพาเนล",{"id":882,"text":883,"level":876},"เปิดจากร้าน-ร้านตัดผม-ร้านเสื้อผ้า","เปิดจากร้าน (ร้านตัดผม ร้านเสื้อผ้า)",{"id":885,"text":886,"level":876},"เข้ากับ-skinchanger-esx-skin-ที่มีอยู่แล้ว","เข้ากับ skinchanger \u002F esx_skin ที่มีอยู่แล้ว",{"id":888,"text":889,"level":876},"มากับซิปด้วย-optional-skinchanger-optional-esx-skin","มากับซิปด้วย: optional\u002Fskinchanger + optional\u002Fesx_skin",{"id":891,"text":892,"level":876},"ร้าน-config-shops","ร้าน (Config.Shops)",{"id":894,"text":895,"level":876},"ตู้เสื้อผ้า-config-wardrobe","ตู้เสื้อผ้า (Config.Wardrobe)",{"id":897,"text":898,"level":876},"exports-ฝั่งเซิร์ฟเวอร์","exports ฝั่งเซิร์ฟเวอร์",{"id":900,"text":901,"level":876},"exports-ฝั่ง-client","exports ฝั่ง client",{"id":903,"text":903,"level":876},"hook",{"id":905,"text":905,"level":876},"ที่เก็บข้อมูล",{"id":907,"text":908,"level":876},"ความปลอดภัย-มีเทสคุมทุกข้อ","ความปลอดภัย (มีเทสคุมทุกข้อ)",{"id":910,"text":911,"level":876},"config-config-lua","config (config.lua)",{"id":913,"text":913,"level":876},"ช่วยเหลือ",1792316306328]