[{"data":1,"prerenderedAt":83},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-th-x3d-carry":21,"config-public-x3d-carry":78},{"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":47,"latest_released_at":48,"published_at":49,"has_docs":50,"config":51,"rent_price_satang":52,"description_md":53,"docs_md":54,"seo_title":55,"seo_description":56,"media":57,"versions":67},"fd28d581-12ee-43b8-9dfb-aa18defe53be","x3d-carry","X3D Carry (อุ้มศพ)","ระบบอุ้มผู้เล่นฟรี — อุ้มศพ แย่งศพ อุ้มพาดบ่า ขี่หลัง ศพอุ้มได้ไม่ต้องขอ คนเป็นต้องขออนุญาตก่อน เซิร์ฟเวอร์ตัดสินทุกอย่าง UI ภาษาไทย",0,"none","public\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fcover\u002F133f7c2c2d80c8a5.jpg",[31],"gameplay",[33,34,35,36,37,38,39,40,41,42,43,44,45,46],"esx","standalone","อุ้มศพ","carry","อุ้มผู้เล่น","ฟรี","free","แย่งศพ","แบกผู้เล่น","ขี่หลัง","อุ้มพาดบ่า","ลากศพ","เมืองแก๊ง","อุ้มเพื่อน","1.1.3","2026-10-12T17:22:50.777785Z","2026-09-16T13:52:19.956202Z",true,"public",null,"ระบบอุ้มผู้เล่นที่ทำเรื่อง \"อุ้มศพ\" ให้ถูกต้องจริง ๆ ศพล้มลงพื้นตอนวาง ไม่ยืนแข็งทื่อ และไม่ตายซ้ำเพราะระบบหิวกระหายของเซิร์ฟคุณ\n\nเซิร์ฟเวอร์เป็นคนตัดสินทุกอย่าง ผู้เล่นใช้ช่องโหว่อุ้มคนข้ามแมพหรือดึงศพจากมือคนที่ยังยืนอยู่ไม่ได้ ฟรี ไม่ต้องลงอะไรเพิ่ม\n\n---\n\n## ฟีเจอร์\n\n- [+] ตั้งค่าง่าย ปรับได้หมดใน config หรือตั้งผ่านเว็บได้เลย\n- [+] อุ้มศพได้ทันที ไม่ต้องขออนุญาต ลากศพเพื่อนออกจากจุดยิง\n- [+] แย่งศพได้ ยิงคนที่อุ้มศพให้ล้มแล้วศพหลุดจากมือ\n- [+] อุ้มพาดบ่า และขี่หลัง ต้องขออนุญาตก่อน\n- [+] ตำรวจ กู้ชีพ แอดมิน อุ้มได้ไม่ต้องขอ ตั้งอาชีพและกลุ่มเองได้\n- [+] ศพไม่ตายซ้ำ วางแล้วล้มลงพื้นจริง ไม่ยืนแข็งทื่อ\n- [+] อุ้มศพขึ้นรถหนีไม่ได้ ขึ้นรถเมื่อไหร่ศพหลุด\n- [+] ตั้งระยะอุ้ม ระยะห่างสูงสุด และคูลดาวน์กดรัวได้\n- [+] เพิ่มท่าอุ้มเองได้ใน config เมนูและปุ่มลัดสร้างให้เอง\n- [+] เมนูภาษาไทย ฟอนต์ไทยในตัว สเกลตามความละเอียดจอ คุมด้วยลูกศร\n- [+] ใช้ได้ทั้ง ESX และ standalone ไม่ต้องใช้ ox_lib\n- [+] เขียนเชื่อมกับสคริปต์อื่นได้ที่ addons\u002F\n\n---\n\n## อุ้มศพ แย่งศพ — สำหรับเมืองแนวแก๊ง\n\n- **ศพอุ้มได้ทันที ไม่ต้องขออนุญาต** ใครก็หยิบศพที่ล้มอยู่ได้ ลากศพเพื่อนออกจากจุดยิง หรือแย่งศพฝั่งตรงข้ามไปก่อนหมอหรือเพื่อนเขาจะมาถึง\n- **แย่งศพกลับด้วยการสู้** ยิงคนที่อุ้มศพอยู่ให้ล้ม เซิร์ฟเวอร์ปล่อยศพจากมือภายใน 2 วินาที แล้วฝั่งคุณอุ้มต่อได้เลย\n- **ไม่มีทางลัด** ดึงศพจากมือคนที่ยังยืนอยู่ไม่ได้ และอุ้มศพขึ้นรถหนีไม่ได้ ขึ้นรถเมื่อไหร่ศพหลุด\n- แย่งกันไปมากี่รอบ ศพก็ไม่ตายซ้ำ และวางลงแล้วล้มลงพื้นจริง\n\n## สามท่าอุ้ม\n\n| ท่า | ใช้กับ | ต้องขออนุญาต |\n|---|---|---|\n| อุ้มศพ | ผู้หมดสติเท่านั้น | ไม่ต้อง |\n| อุ้มพาดบ่า | คนเป็นเท่านั้น | ต้อง |\n| ขี่หลัง | คนเป็นเท่านั้น | ต้อง |\n\nเมนูจะหาคนที่ใกล้สุด **ที่ใช้ท่านั้นได้** ให้เอง เลือก \"อุ้มศพ\" ระบบหาศพ เลือก \"ขี่หลัง\" ระบบหาคนเป็น\n\nตำรวจ กู้ชีพ และแอดมิน อุ้มได้โดยไม่ต้องขอ และคนถูกอุ้มดิ้นหลุดไม่ได้ ส่วนคนที่ยอมให้อุ้มเองจะดิ้นหลุดเมื่อไหร่ก็ได้\n\nเพิ่มท่าใหม่เองได้ใน `config.lua` ระบบสร้างรายการในเมนูและปุ่มลัดให้เองทันที\n\n## อุ้มศพ — จุดที่สคริปต์อื่นมักทำพลาด\n\nGTA เล่นอนิเมชันกับร่างที่ตายแล้วไม่ได้ ทุกสคริปต์อุ้มศพจึงต้อง \"ปลุกร่างปลอม\" ก่อนแล้วเล่นท่าศพทับ ช่วงที่ร่างยังไม่ตายจริงนี่แหละที่ระบบอื่นชอบเข้ามาฆ่าซ้ำ\n\nx3d_carry กันไว้สองชั้น และมีจุดต่อให้ระบบอื่น:\n\n1. **กันความเสียหาย** ระหว่างถูกอุ้ม ร่างกันกระสุน กันไฟ กันระเบิด\n2. **เติมเลือดคืน** ชั้นแรกกันคำสั่งตั้งเลือดเป็นศูนย์ที่สคริปต์อื่นสั่งตรง ๆ ไม่ได้ ตัวนี้เช็กและเติมคืนทันที (ตั้งรอบเช็กได้ที่ `Config.Corpse.guardInterval`)\n3. **จุดต่อระบบหิวกระหาย** ฟังก์ชัน `Framework.OnCorpseCarried()` ใน `addons\u002Fframework\u002Fextra_client.lua` ว่างไว้ให้ ใส่คำสั่งดันค่าหิวกระหายของเซิร์ฟคุณตรงนี้\n\nตอนวางลง ระบบคืนค่าทุกอย่าง เปิด ragdoll **ก่อน** ตั้งเลือดเป็นศูนย์ ลำดับนี้คือเหตุผลที่ศพล้มลงพื้นแทนที่จะยืนแข็ง\n\n## กันโกงฝั่งเซิร์ฟเวอร์\n\nระยะ รถ เลือด สิทธิ์ และคำยินยอม ตรวจซ้ำที่เซิร์ฟเวอร์ทั้งหมด client ทำได้แค่ \"ขอ\" เท่านั้น\n\nตัวเฝ้าฝั่งเซิร์ฟเวอร์เช็กทุก 2 วินาที ปล่อยให้เองเมื่อห่างเกินระยะ ขึ้นรถ ตาย หรือหลุดออกจากเซิร์ฟ\n\n## UI ภาษาไทย สเกลตามจอ\n\nเมนูเป็น Vue 3 + Nuxt 4 ฟอนต์ไทยมาในตัว ไม่เป็นกล่องสี่เหลี่ยมเหมือนข้อความ native ของ GTA\n\nเมนูสเกลตามความละเอียดจอ ไม่ต้องคำนวณเอง\n\nเมนูไม่ยึดเมาส์ คุมด้วยลูกศร Enter และ Backspace เล่นเกมต่อได้ระหว่างเมนูเปิด\n\n## ไม่ต้องลงอะไรเพิ่มเลย\n\nไม่ต้องใช้ ox_lib ไม่ต้องใช้ฐานข้อมูล วางแล้ว `ensure` ได้เลยทั้ง ESX และ standalone\n\nถ้าเซิร์ฟมี esx_notify หรือ ox_lib อยู่แล้ว ระบบจะใช้ตัวนั้นแจ้งเตือนให้อัตโนมัติ ไม่มีก็ใช้การ์ดของตัวเอง\n\nทุกอย่างที่คุยกับเฟรมเวิร์กอยู่ในโฟลเดอร์ `addons\u002F` ไฟล์ละเรื่อง แก้ไฟล์เดียวก็ต่อกับระบบของเซิร์ฟคุณได้\n\n## ต่อกับสคริปต์อื่นได้\n\n`IsCarried` `IsCarrying` `StopCarry` และ `IsFakeAlive` — ตัวสุดท้ายมีไว้ให้ระบบหิวกระหายหรือเลือดไหลข้ามร่างที่กำลังถูกอุ้มอยู่\n\n## ฟรีจริง แก้โค้ดได้\n\nโค้ดฝั่งเกมอ่านและแก้ได้ทั้งหมด ไม่มีไลเซนส์ ไม่มีวันหมดอายุ ขอแค่อย่านำไปขายต่อและอย่าอัปโหลดใหม่ในชื่อตัวเอง\n","## การติดตั้ง\n\n1. วางโฟลเดอร์ `x3d_carry` ใน `resources\u002F`\n2. เพิ่มใน `server.cfg`\n\n```\nensure x3d_carry\n\n# ให้แอดมินอุ้มได้โดยไม่ต้องขอ (ใช้ได้ทุกเฟรมเวิร์ก)\nadd_ace group.admin x3d_carry.force allow\n```\n\nเสร็จแล้ว ไม่ต้องรัน SQL ไม่ต้องลง resource อื่น UI ถูก build มาให้แล้วใน `web\u002Fbuild` ไม่ต้องลง Node.js\n\nต้องใช้ FXServer artifacts 4752 ขึ้นไป (ระบบใช้ state bag)\n\n## วิธีเล่น\n\n| ปุ่ม \u002F คำสั่ง | ทำอะไร |\n|---|---|\n| `F9` หรือ `\u002Fx3dcarry` | เปิดเมนูอุ้ม |\n| `↑` `↓` | เลื่อนเมนู |\n| `Enter` | เลือก |\n| `Backspace` | ปิดเมนู |\n| `\u002Fx3dcarry dragdeath` | อุ้มศพ (ข้ามเมนู) |\n| `\u002Fx3dcarry carrypeople` | อุ้มพาดบ่า (ข้ามเมนู) |\n| `\u002Fx3dcarry piggyback` | ขี่หลัง (ข้ามเมนู) |\n\nกำลังอุ้มอยู่ เมนูจะเหลือรายการเดียวคือท่าที่ใช้อยู่ เลือกซ้ำ = วางลง\n\nคนถูกอุ้มจะขยับเอง ขึ้นรถ หรือใช้อาวุธไม่ได้ จนกว่าจะถูกวางลง\n\n**อุ้มศพ แย่งศพ** ศพอุ้มได้เสมอโดยไม่ต้องขอและไม่ต้องมีสิทธิ์ ถ้าคนอุ้มตาย ห่างเกิน `Config.MaxDist` หรือขึ้นรถ เซิร์ฟเวอร์ปล่อยศพภายใน 2 วินาที ใครก็อุ้มต่อได้ ศพที่มีคนอุ้มอยู่ดึงไปไม่ได้\n\nผูกปุ่มให้แต่ละท่าเองได้ที่ ตั้งค่า FiveM > Key Bindings > FiveM\n\n## ตั้งค่า\n\nแก้ที่ `config.lua` ทั้งไฟล์มีคำอธิบายภาษาไทย\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `Config.Locale` | `'th'` | ภาษาในเกม `'th'` หรือ `'en'` แก้ข้อความเองได้ที่ `locales.lua` |\n| `Config.Command` | `'x3dcarry'` | ชื่อคำสั่ง อย่าตั้งเป็นชื่อสั้นที่สคริปต์อื่นอาจจองไว้ |\n| `Config.MenuKey` | `'F9'` | ปุ่มเปิดเมนู `''` = ไม่ผูกปุ่ม |\n| `Config.Range` | `3.0` | ระยะที่กดอุ้มได้ |\n| `Config.MaxDist` | `4.5` | ห่างกันเกินนี้ขณะอุ้ม เซิร์ฟเวอร์ปล่อยให้เอง |\n| `Config.RequestTTL` | `15000` | คำขออุ้มค้างได้กี่ ms |\n| `Config.Cooldown` | `2000` | กันกดรัว ขออุ้มได้ทุกกี่ ms |\n| `Config.CarrierDelay` | `500` | คนอุ้มหน่วงกี่ ms ก่อนเริ่มท่า ต่ำกว่านี้ท่าคู่จะเหลื่อมกัน |\n| `Config.ForceAce` | `'x3d_carry.force'` | ACE permission ที่อุ้มได้โดยไม่ต้องขอ `false` = ปิด |\n| `Config.ForceGroups` | admin, superadmin, mod | กลุ่มแอดมินที่อุ้มได้เลย (ESX) |\n| `Config.ForceJobs` | police, ambulance | อาชีพที่อุ้มได้เลย (ESX) |\n| `Config.Corpse` | — | ค่ากันตายซ้ำและการล้มลงพื้น |\n\n## เพิ่มท่าอุ้ม\n\nใส่ใน `Config.Styles` แล้วรีสตาร์ท resource เมนูกับคำสั่งสร้างให้อัตโนมัติ\n\n```lua\nConfig.Styles.bridal = {\n    order   = 4,\n    key     = '',              -- '' = ไม่ผูกปุ่ม ผู้เล่นตั้งเองได้\n    th      = 'อุ้มเจ้าสาว',\n    en      = 'Bridal Carry',\n    target  = 'alive',         -- 'dead' | 'alive' | 'any'\n    offset  = vector3(0.0, 0.42, 0.05),\n    heading = 0.0,\n    carrier = { dict = 'anim@dict', anim = 'carrier_anim', flag = 49 },\n    victim  = { dict = 'anim@dict', anim = 'victim_anim',  flag = 33 },\n}\n```\n\n`flag = 49` (คนอุ้ม) และ `flag = 33` (คนถูกอุ้ม) ใช้ได้กับอนิเมชันคู่ส่วนใหญ่ ท่าที่ตั้ง `target = 'dead'` จะปลุกร่างปลอมให้อัตโนมัติ\n\n## ใช้กับเฟรมเวิร์กอื่น\n\n| ไฟล์ | แก้เมื่อ |\n|---|---|\n| `addons\u002Fframework\u002Fclient.lua` | เช็กว่าผู้เล่นตายยังไง (ESX \u002F standalone) |\n| `addons\u002Fframework\u002Fextra_client.lua` | `Framework.OnCorpseCarried()` \u002F `OnCorpseDropped()` ใส่คำสั่งกันตายซ้ำของระบบหิวกระหายเซิร์ฟคุณ |\n| `addons\u002Fframework\u002Fserver.lua` และ `extra_server.lua` | วิธีเช็กสิทธิ์อุ้มโดยไม่ต้องขอ (`Framework.CanForce`) |\n| `addons\u002Fnotify\u002Fclient.lua` | ใช้ okokNotify mythic หรือระบบแจ้งเตือนของตัวเอง |\n\n## เรียกจาก resource อื่น\n\n```lua\n-- client\nexports['x3d_carry']:IsCarried()              --> true ถ้ากำลังถูกอุ้ม\nexports['x3d_carry']:IsCarrying()             --> true ถ้ากำลังอุ้มคนอื่น\nexports['x3d_carry']:IsFakeAlive()            --> true ถ้าร่างถูกปลุกปลอมอยู่\n\n-- server\nexports['x3d_carry']:IsCarried(src)\nexports['x3d_carry']:IsCarrying(src)\nexports['x3d_carry']:StopCarry(src)           --> ปล่อยทันที\n```\n\n## แก้ UI เอง\n\nUI เป็น Nuxt 4 อยู่ใน `web\u002F` ถ้าไม่แก้ไม่ต้องทำอะไร\n\n```bash\ncd web\nnpm install\nnpm run build\n```\n\nต้อง build ทุกครั้งหลังแก้ NUI โหลดจาก `web\u002Fbuild` เท่านั้น\n\n## ปัญหาที่พบบ่อย\n\n| อาการ | สาเหตุ |\n|---|---|\n| กด F9 แล้วไม่มีอะไรเกิดขึ้น | มี resource อื่นใช้ F9 อยู่ เปลี่ยนที่ ตั้งค่า FiveM > Key Bindings > FiveM |\n| พิมพ์ `\u002Fx3dcarry` แล้วขึ้นว่าไม่รู้จักคำสั่ง | resource ไม่ได้สตาร์ท เช็ก `ensure x3d_carry` ใน `server.cfg` |\n| ศพยืนแข็งทื่อตอนวาง | มีสคริปต์อื่นตั้ง `SetPedCanRagdoll(false)` ค้างไว้ หรือ `Config.Corpse.ragdollOnDrop` ถูกปิด |\n| ศพตายซ้ำหรือเด้งกลับหน้าจอตาย | ระบบหิวกระหายของเซิร์ฟยังฆ่าซ้ำ เพิ่มคำสั่งดันค่าใน `Framework.OnCorpseCarried()` |\n| ขี่หลังลอย หรือพาดบ่าหลุด | `Config.CarrierDelay` ต่ำไป ลองเพิ่มเป็น 700 ถึง 1000 |\n| แอดมินยังต้องขออนุญาต | ยังไม่ได้ใส่ `add_ace group.admin x3d_carry.force allow` |\n","สคริปอุ้มศพ แย่งศพ FiveM ฟรี","สคริป FiveM ฟรี ระบบอุ้มศพ แย่งศพ อุ้มพาดบ่า ขี่หลัง ศพอุ้มได้ไม่ต้องขอ ยิงคนอุ้มให้ล้มแล้วแย่งศพคืนได้ กันตายซ้ำ UI ภาษาไทย ESX และ standalone",[58,61,63,65],{"kind":59,"url":60},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fmedia\u002Fb6be46446edebdaf.png",{"kind":59,"url":62},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fmedia\u002Fc3a47b79d5b60edd.png",{"kind":59,"url":64},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fmedia\u002F49c7690b0071bb6b.png",{"kind":59,"url":66},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-carry\u002Fmedia\u002Ff77da6b9eaa6f133.png",[68,70,74],{"version":47,"released_at":48,"changelog_md":69},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":71,"released_at":72,"changelog_md":73},"1.1.1","2026-10-12T03:24:42.519271Z","### Changed\n\n- UI font is now Kanit (one family for Thai and English), bundled inside the script; the Thai font now really loads in game (FiveM's browser dropped the old font declaration and fell back to a system font)",{"version":75,"released_at":76,"changelog_md":77},"1.0.0","2026-09-16T13:51:03.300066Z","### Added\n- Three carry styles driven from one config table: corpse carry (unconscious only), fireman carry and piggyback (living only), each with its own paired animation, attach offset and target rule\n- Keyboard-driven Nuxt 4 menu that never takes the mouse: arrow keys to move, Enter to confirm, Backspace to close, with the active style collapsing to a single put-down entry\n- Consent flow for living targets — a countdown menu on the target's screen, a decline notice back to the carrier, and a server-side request TTL\n- Real corpse carry: fake-revive via `NetworkResurrectLocalPlayer`, corpse animation played over it, and ragdoll re-enabled before health is zeroed so the body falls to the ground instead of standing stiff\n- Double-death protection in three layers: damage immunity and proofs while carried, a 200ms health guard that restores health if any script drains it, and a framework hook that tops up hunger and thirst\n- Server-authoritative pairing published through the carried ped's state bag, with distance, vehicle, health and permission re-validated on every request and answer\n- Server watchdog every 2 seconds that releases the pair on drift, vehicle entry, death or disconnect\n- Carry-without-asking resolved through an ACE permission by default, with ESX group and job fallbacks and QBCore and standalone examples in the framework bridge\n- Framework and notify bridges isolated under `addons\u002F`, one concern per file, so moving to another framework is a single-function edit\n- Exports `IsCarried`, `IsCarrying` and `StopCarry` on both sides, plus `IsFakeAlive` so status systems can skip a body that is currently being carried\n- Thai and English locale tables with Thai as the default, and a bundled Thai font so in-game text never renders as boxes\n- Resolution-relative sizing tokens so the menu keeps the same proportions from 1280×720 to 4K\n- Server-side test suite covering 31 anti-exploit cases: forged target ids, out-of-range pairs, replayed and expired consent, request spam, prompt spam, stolen carries, style and target mismatches, and disconnect cleanup",{"slug":23,"version":47,"latest_version":47,"files":79,"options":52},[80],{"path":81,"content":82},"config.lua","-- ═══════════════════════════════════════════════════════════════\r\n--  x3d_carry — ตั้งค่า\r\n--  X3D-Developer · https:\u002F\u002Fx3d-developer.com\r\n-- ═══════════════════════════════════════════════════════════════\r\n\r\nConfig = {}\r\n\r\n-- ===== ทั่วไป \u002F General =====\r\n\r\n-- เฟรมเวิร์กที่ใช้: 'auto' (ESX ถ้ามี ไม่มีก็ standalone) | 'esx' | 'standalone'\r\n-- Framework: 'auto' (ESX when present, otherwise standalone) | 'esx' | 'standalone'\r\nConfig.Framework = 'auto'\r\n\r\n-- ภาษาของข้อความในเกม: 'th' หรือ 'en' (แก้ข้อความเองได้ที่ locales.lua)\r\n-- In-game language: 'th' or 'en' (edit the texts in locales.lua)\r\nConfig.Locale = 'th'\r\n\r\n-- ชื่อคำสั่งของ resource นี้ — มีคำสั่งเดียว\r\n--   \u002Fx3dcarry              เปิดเมนู\r\n--   \u002Fx3dcarry piggyback    เรียกท่านั้นตรง ๆ (ชื่อท่าดูที่ Config.Styles)\r\n--\r\n-- ⚠ อย่าตั้งเป็นชื่อสั้น ๆ อย่าง 'carry' — ถ้าเซิร์ฟมีสคริปต์อื่นจองชื่อนั้นอยู่\r\n-- FiveM จะทิ้งคำสั่งของเราเงียบ ๆ ปุ่มลัดจะไม่ทำงาน และไม่มี error ให้เห็น\r\n--\r\n-- Command name of this resource (one command): \u002Fx3dcarry opens the menu, \u002Fx3dcarry piggyback calls a style directly\r\n-- Do not use a short name like 'carry': if another script owns it FiveM silently drops ours, key binds stop working and no error shows\r\nConfig.Command = 'x3dcarry'\r\n\r\n-- ===== ปุ่มและระยะ \u002F Keys and distances =====\r\n\r\n-- ปุ่มเปิดเมนูอุ้ม ('' = ไม่ผูกปุ่ม ใช้ \u002Fx3dcarry แทน)\r\n-- Key that opens the carry menu ('' = no key, use \u002Fx3dcarry instead)\r\nConfig.MenuKey = 'F9'\r\n\r\n-- ระยะที่กดอุ้มได้ (เมตร)\r\n-- How close you must be to start a carry (metres)\r\nConfig.Range = 3.0\r\n\r\n-- ระยะที่ห่างกันได้ขณะอุ้มอยู่ เกินกว่านี้เซิร์ฟเวอร์ปล่อยให้เอง\r\n-- Max distance between the pair while carrying; beyond it the server releases them\r\nConfig.MaxDist = 4.5\r\n\r\n-- คำขออุ้มค้างอยู่ได้กี่มิลลิวินาทีก่อนหมดอายุ\r\n-- How many ms a carry request stays open before it expires\r\nConfig.RequestTTL = 15000\r\n\r\n-- กันกดรัว: ผู้เล่นหนึ่งคนขออุ้มได้ทุกกี่มิลลิวินาที\r\n-- Anti-spam: one player may request a carry once every this many ms\r\nConfig.Cooldown = 2000\r\n\r\n-- ===== สิทธิ์อุ้มโดยไม่ต้องขอ \u002F Carry without asking =====\r\n-- ผู้ถูกอุ้มดิ้นหลุดไม่ได้ · ศพถูกอุ้มได้เสมอ ไม่ต้องมีสิทธิ์\r\n-- The carried player cannot struggle free · corpses can always be carried, no permission needed\r\n\r\n-- ACE permission — ใช้ได้ทุกเฟรมเวิร์ก ใส่ใน server.cfg:\r\n--   add_ace group.admin x3d_carry.force allow\r\n-- ตั้งเป็น false ถ้าไม่ใช้\r\n-- ACE permission, works on every framework; put it in server.cfg: add_ace group.admin x3d_carry.force allow\r\n-- Set to false to disable\r\nConfig.ForceAce = 'x3d_carry.force'\r\n\r\n-- กลุ่มแอดมิน (ESX เท่านั้น — standalone ดู Framework.IsAdmin ใน addons\u002Fframework\u002Fextra_server.lua)\r\n-- Admin groups (ESX only; on standalone see Framework.IsAdmin in addons\u002Fframework\u002Fextra_server.lua)\r\n-- เช่น \u002F e.g. { admin = true }\r\nConfig.ForceGroups = {\r\n    admin      = true,\r\n    superadmin = true,\r\n    mod        = true,\r\n}\r\n\r\n-- อาชีพที่อุ้มได้โดยไม่ต้องขอ (ESX เท่านั้น — standalone ไม่มีระบบอาชีพมาตรฐาน)\r\n-- Jobs that carry without asking (ESX only; standalone has no standard job system)\r\n-- เช่น \u002F e.g. { police = true }\r\nConfig.ForceJobs = {\r\n    police    = true,\r\n    ambulance = true,\r\n}\r\n\r\n-- ===== อุ้มศพ กันตายซ้ำ \u002F Corpse carry, double-death guard =====\r\n-- เกมเล่นอนิเมชันกับศพไม่ได้ ต้อง \"ปลุกปลอม\" ด้วย NetworkResurrectLocalPlayer ก่อน แล้วค่อยเล่นท่าศพทับ\r\n-- ช่วงที่ร่างยังไม่ตายจริงนี่แหละที่ระบบอื่นอาจฆ่าซ้ำได้\r\n-- The game cannot animate a dead ped, so the body is fake-revived with NetworkResurrectLocalPlayer first\r\n-- and a corpse animation is played over it; that window is where other systems may kill it again\r\nConfig.Corpse = {\r\n    -- เลือดที่ตั้งให้ร่างระหว่างถูกอุ้ม (ต้อง > 0 ไม่งั้นเกมถือว่าตาย)\r\n    -- Health given to the body while carried (must be > 0 or the game counts it as dead)\r\n    fakeHealth = 120,\r\n\r\n    -- ⚠ กันตายซ้ำ — อย่าปิด ถ้าเซิร์ฟมีระบบหิว\u002Fกระหาย\u002Fเลือดไหล\r\n    --\r\n    -- invincible\u002Fproofs กันความเสียหายได้ แต่กัน SetEntityHealth(ped, 0)\r\n    -- ที่สคริปต์อื่นสั่งตรง ๆ ไม่ได้ ตัวนี้เลยคอยเติมเลือดคืนทุก ๆ กี่ ms\r\n    -- ถ้ามีอะไรมาลดเลือดร่างระหว่างถูกอุ้ม\r\n    -- Guards against other scripts setting health to 0 directly: it restores health every guardInterval ms while carried\r\n    healthGuard    = true,   -- เปิดตัวเติมเลือดคืน \u002F enable the health restore\r\n    guardInterval  = 200,    -- รอบเช็ก (ms) \u002F check interval (ms)\r\n\r\n    -- ยกร่างขึ้นกี่เมตรก่อนปลุกปลอม (กันร่างจมพื้น)\r\n    -- Metres to lift the body before the fake revive (keeps it from sinking into the floor)\r\n    liftOnPickup = 0.4,\r\n\r\n    -- ยกร่างขึ้นกี่เมตรตอนวางลง ให้มีที่ว่างให้ล้มลงพื้น\r\n    -- Metres to lift the body on drop, so it has room to fall\r\n    liftOnDrop = 0.7,\r\n\r\n    -- บังคับให้ร่างล้มลงพื้นตอนวาง (ไม่งั้นศพยืนแข็งทื่อ) \u002F ragdollMs = ล้มนานกี่ ms\r\n    -- Force the body to ragdoll onto the ground on drop (otherwise it stands stiff) \u002F ragdollMs = how long, in ms\r\n    ragdollOnDrop = true,\r\n    ragdollMs     = 5000,\r\n}\r\n\r\n-- ===== ท่าอุ้ม \u002F Carry styles =====\r\n-- ═══════════════════════════════════════════════════════════════\r\n--  ท่าอุ้ม — เพิ่มท่าใหม่ได้ ระบบสร้างเมนู + คำสั่งให้เองทุกท่า\r\n--  Carry styles: add your own, the menu and command are generated for every style\r\n--\r\n--    order    ลำดับในเมนู\r\n--    key      ปุ่มเริ่มต้นของท่านั้น ('' = ไม่ผูก ผู้เล่นตั้งเองได้\r\n--             ใน ตั้งค่า FiveM > Key Bindings > FiveM)\r\n--             ชื่อคีย์ของท่า = ชื่อ key ในตารางนี้ เช่น \u002Fx3dcarry piggyback\r\n--    target   ใช้กับใครได้ — 'dead' ศพเท่านั้น · 'alive' คนเป็นเท่านั้น · 'any' ได้หมด\r\n--    offset   ตำแหน่งคนถูกอุ้มเทียบกับคนอุ้ม\r\n--    carrier  อนิเมชันของคนอุ้ม\r\n--    victim   อนิเมชันของคนถูกอุ้ม\r\n--\r\n--    order = menu order · key = default key ('' = unbound, players can set their own in FiveM Key Bindings)\r\n--    target = who it works on: 'dead' corpses only · 'alive' living only · 'any' both\r\n--    offset = carried player's position relative to the carrier · carrier \u002F victim = animation of each side\r\n--    ตัวอย่างอยู่ด้านล่าง ลอกบล็อกใดบล็อกหนึ่งแล้วเปลี่ยนชื่อคีย์ \u002F Examples below: copy any block and rename its key\r\n-- ═══════════════════════════════════════════════════════════════\r\nConfig.Styles = {\r\n    dragdeath = {\r\n        order   = 1,\r\n        key     = '',\r\n        th      = 'อุ้มศพ',\r\n        en      = 'Carry Corpse',\r\n        target  = 'dead',\r\n        offset  = vector3(0.27, 0.15, 0.63),\r\n        heading = 0.0,\r\n        carrier = { dict = 'missfinale_c2mcs_1', anim = 'fin_c2_mcs_1_camman',   flag = 49 },\r\n        victim  = { dict = 'missarmenian2',      anim = 'corpse_search_exit_ped', flag = 47 },\r\n    },\r\n    carrypeople = {\r\n        order   = 2,\r\n        key     = '',\r\n        th      = 'อุ้มพาดบ่า',\r\n        en      = 'Carry People',\r\n        target  = 'alive',\r\n        offset  = vector3(0.27, 0.15, 0.63),\r\n        heading = 0.0,\r\n        carrier = { dict = 'missfinale_c2mcs_1', anim = 'fin_c2_mcs_1_camman', flag = 49 },\r\n        victim  = { dict = 'nm',                 anim = 'firemans_carry',      flag = 33 },\r\n    },\r\n    piggyback = {\r\n        order   = 3,\r\n        key     = '',\r\n        th      = 'ขี่หลัง',\r\n        en      = 'Piggy Back',\r\n        target  = 'alive',\r\n        offset  = vector3(0.0, -0.07, 0.45),\r\n        heading = 0.0,\r\n        carrier = { dict = 'anim@arena@celeb@flat@paired@no_props@', anim = 'piggyback_c_player_a', flag = 49 },\r\n        victim  = { dict = 'anim@arena@celeb@flat@paired@no_props@', anim = 'piggyback_c_player_b', flag = 33 },\r\n    },\r\n}\r\n\r\n-- คนอุ้มหน่วงกี่ ms ก่อนเริ่มท่า ให้ร่างคนถูกอุ้มติดเข้าที่ก่อน\r\n-- ต่ำกว่านี้ท่าคู่จะเหลื่อมกัน (ขี่หลังลอย \u002F พาดบ่าหลุด)\r\n-- Delay in ms before the carrier starts the animation so the carried body can attach first\r\n-- Lower than this and the paired animation drifts (floating piggyback \u002F dropped fireman carry)\r\nConfig.CarrierDelay = 500\r\n\r\n-- ===== ปุ่มในเมนู \u002F Menu keys =====\r\n-- control id ของ FiveM ชุดเดียวกับ esx_menu_default: ลูกศรขึ้น\u002Fลง, Enter, Backspace\r\n-- FiveM control ids, same set as esx_menu_default: up\u002Fdown arrows, Enter, Backspace\r\nConfig.Keys = {\r\n    up     = 172,\r\n    down   = 173,\r\n    select = 176,\r\n    back   = 177,\r\n}\r\n",1792316309362]