[{"data":1,"prerenderedAt":90},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-th-x3d-respawn":21,"config-public-x3d-respawn":85},{"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":52,"latest_released_at":53,"published_at":54,"has_docs":55,"config":56,"rent_price_satang":57,"description_md":58,"docs_md":59,"seo_title":60,"seo_description":61,"media":62,"versions":74},"6125d85f-eaff-45cb-90cd-9db4d66e7954","x3d-respawn","X3D Respawn (หน้าจอตาย)","หน้าจอตายฟรี: ปุ่มเรียกหมอ หมอออนไลน์ต้องรอหมอ จุดเกิดใหม่ ชุบตัวเอง สรุปการตาย และเก็บสถานะตายตอนออกเกม",0,"none","public\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fcover\u002F1af99658aa5089b2.jpg",[31],"hud",[33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"respawn","หน้าจอตาย","death screen","เรียกหมอ","call ems","ambulance","esx_ambulancejob","ชุบตัวเอง","จุดเกิดใหม่","dispatch","สรุปการตาย","esx","ฟรี","free","รอหมอ","กันหนีตาย","ปุ่มเรียกหมอ","เกิดใหม่เมือง","ชุดปฐมพยาบาล","1.1.3","2026-10-12T17:17:26.33517Z","2026-09-25T16:14:21.42282Z",true,"public",null,"หน้าจอตายใช้ฟรี บอกว่าใครฆ่า ด้วยอะไร โดนตรงไหน มี **ปุ่มเรียกหมอ** และตั้งได้ว่าถ้ามีหมอออนไลน์ ผู้เล่นต้องรอหมอก่อนถึงจะเกิดเองได้ ใช้ได้ทั้ง ESX และ standalone\n\n---\n\n## ฟีเจอร์\n\n- [+] ตั้งค่าง่าย ปรับได้หมดใน config หรือตั้งผ่านเว็บได้เลย\n- [+] หน้าจอตายบอกใครฆ่า อาวุธ ระยะ headshot และ 6 ครั้งสุดท้ายที่โดนยิง\n- [+] ปุ่มเรียกหมอ แจ้งหมอที่ออนไลน์พร้อมจุดบนแผนที่ ตั้งคูลดาวน์เองได้\n- [+] เลือกอาชีพที่นับเป็นหมอ และข้อความที่หมอเห็นได้เอง\n- [+] มีหมอออนไลน์ต้องรอหมอ ตั้งหมอขั้นต่ำ และนับเฉพาะหมอเข้าเวรได้\n- [+] ตั้งเวลารอก่อนเกิดเองได้ ทั้งตอนมีหมอและไม่มีหมอ\n- [+] ตั้ง 0 = ต้องรอหมอชุบอย่างเดียว ไม่ให้เกิดเอง\n- [+] จุดเกิดใหม่เมืองหลักหรือจุดใกล้ตัว เปิดปิดทีละแบบ ตั้งจุดและ blip เอง\n- [+] ชุบตัวเองด้วยไอเทมได้ ตั้งชื่อไอเทมและจำนวนเอง\n- [+] ออกเกมตอนตาย กลับมาก็ยังตาย กัน alt+F4 หนีความตาย (ESX)\n- [+] แอดมินใช้ \u002Frevive \u002Fheal ชุบและรักษาผู้เล่นได้\n- [+] เขียนเชื่อมกับสคริปต์อื่นได้ที่ addons\u002F\n\n---\n\n## มีอะไรบ้าง\n\n- **ปุ่มเรียกหมอ**: ผู้เล่นออนไลน์ที่มีอาชีพหมอ (ตั้งได้ใน `Config.CallEMS.jobs`) ได้แจ้งเตือนเคสฉุกเฉินพร้อมจุดกะพริบบนแผนที่ตรงตำแหน่งผู้ป่วย ทำงานในตัวไม่ต้องพึ่งสคริปต์อื่น หรือต่อกับระบบ dispatch อื่นผ่าน adapter\n- **มีหมอออนไลน์ = ต้องรอหมอ**: นับหมอจากอาชีพ `ambulance` ตั้งจำนวนหมอขั้นต่ำได้ ตั้งได้ว่ารอเกินกี่วินาทีแล้วเกิดเองได้ หรือให้ต้องรอหมอชุบอย่างเดียว ถ้าไม่มีหมอ ผู้เล่นเกิดเองได้หลังเวลาที่ตั้ง\n- **สรุปการตาย**: ใครฆ่า อาวุธ ระยะ พื้นที่ headshot ส่วนที่โดนและจำนวนครั้ง พร้อม 6 ครั้งสุดท้ายที่โดนยิง\n- **จุดเกิดใหม่และชุบตัวเอง**: เกิดที่เมืองหลัก จุดใกล้ตัว หรือใช้ชุดปฐมพยาบาล เปิด\u002Fปิดได้ทีละแบบ\n- **ออกเกมตอนตายก็ยังตาย**: กันคน alt+F4 หนีความตาย (เก็บธงตายในตารางผู้เล่นของ ESX)\n- **ต่อกับสคริปต์หมอได้**: สคริปต์หมอเรียก event `x3d_respawn:cmdRevive` \u002F `x3d_respawn:cmdHeal` เพื่อชุบและรักษา และใช้ export `IsPlayerDead`, `ClearDeathFlag`\n- **แอดมิน**: `\u002Frevive [id]` `\u002Fheal [id]`\n\n---\n\n## แก้ให้เข้ากับเซิร์ฟ\n\n| ไฟล์ | หน้าที่ |\n|---|---|\n| `addons\u002Fdispatch\u002Fclient.lua` | ปุ่มเรียกหมอ (แก้เพื่อต่อระบบ dispatch อื่น) |\n| `addons\u002Fhud\u002Fclient.lua` | ซ่อน HUD ตอนตาย |\n| `addons\u002Fnotify\u002Fclient.lua` | แจ้งเตือน |\n| `addons\u002Fanticheat\u002Fserver.lua` | จุดต่อระบบกันโกงของคุณ เรียกตอนผู้เล่นถูกย้ายไปจุดเกิด |\n\n---\n\n## ต้องมี\n\n- `oxmysql`\n- `es_extended` (ESX Legacy) ไม่บังคับ ถ้าไม่มีใช้โหมด standalone ได้\n","## การติดตั้ง\n\n1. วางโฟลเดอร์ `x3d_respawn` ไว้ใน `resources\u002F` **ห้ามเปลี่ยนชื่อโฟลเดอร์**\n2. รัน `install.sql` เพื่อเพิ่มคอลัมน์ `users.is_dead` (รันซ้ำได้) ถ้าตารางผู้เล่นของเซิร์ฟไม่ได้ชื่อ `users` ให้แก้ทั้งในไฟล์นี้และที่ `Config.UsersTable`\n3. เพิ่มใน `server.cfg`:\n\n```\nensure oxmysql\nensure es_extended    # ถ้าใช้ ESX (โหมด standalone ไม่ต้องมี)\nensure x3d_respawn\n```\n\n> **ใช้หน้าจอตายได้ทีละตัว:** ถ้าเปิด esx_ambulancejob อยู่ ให้ปิดหน้าจอตายของมัน แล้วให้สคริปต์หมอเรียก event ของ x3d_respawn ตามหัวข้อ \"สำหรับสคริปต์หมอ\" ด้านล่าง\n\n## ต้องมี\n\n| resource | จำเป็นไหม | ใช้ทำอะไร |\n|---|---|---|\n| `oxmysql` | จำเป็น | เก็บธงตาย |\n| `es_extended` | ไม่บังคับ | ESX Legacy (ถ้าไม่มี ใช้โหมด standalone ผ่าน `Config.Framework` — ธงตายข้ามเกมใช้ได้เฉพาะ ESX) |\n\n---\n\n## ตั้งค่าทั้งหมด: `shared\u002Fconfig.lua`\n\n### ทั่วไป\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `Config.Locale` | `'th'` | `'th'` หรือ `'en'` |\n| `Config.UsersTable` | `'users'` | ตารางผู้เล่นของ ESX |\n| `Config.MinDeathDelayMs` | `1200` | หน่วงกี่มิลลิวินาทีก่อนหน้าจอตายขึ้น |\n| `Config.UseRedFilter` | `true` | จอแดงตอนตาย |\n\n### ปุ่มเรียกหมอ: `Config.CallEMS`\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `enabled` | `true` | แสดงปุ่มเรียกหมอ |\n| `jobs` | `{ 'ambulance' }` | อาชีพที่ได้รับแจ้งเมื่อมีคนกดเรียกหมอ |\n| `cooldownSeconds` | `60` | เรียกซ้ำได้ทุกกี่วินาที |\n| `message` | `{ th = 'หมดสติ ต้องการหมอ', en = ... }` | ข้อความที่หมอเห็น |\n\n**กดแล้วเกิดอะไร (ทำงานในตัว ไม่ต้องพึ่งสคริปต์อื่น):**\n1. ผู้เล่นออนไลน์ทุกคนที่มีอาชีพใน `jobs` (ค่าเริ่มต้น `ambulance`) ได้แจ้งเตือน \"เคสฉุกเฉิน\" พร้อมข้อความที่ตั้งไว้ และมีจุดกะพริบบนแผนที่ที่ตำแหน่งผู้ป่วย (หายเองใน 60 วินาที)\n2. พิกัดอ่านจากตัวละครฝั่งเซิร์ฟเวอร์ ปลอมไม่ได้\n3. ใช้ระบบ dispatch อื่น? แก้ `addons\u002Fdispatch\u002Fclient.lua` และ `addons\u002Fdispatch\u002Fserver.lua`\n\n### ต้องรอหมอ: `Config.MedicGate`\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `enabled` | `true` | เปิดการเช็คหมอ |\n| `jobs` | `{ 'ambulance' }` | อาชีพที่นับเป็นหมอ |\n| `onDutyOnly` | `false` | นับเฉพาะหมอที่เข้าเวร (`job.onDuty`) |\n| `minMedics` | `1` | หมอออนไลน์ถึงเท่านี้ = ต้องรอหมอ |\n| `waitWithMedics` | `600` | มีหมอ: รอกี่วินาทีแล้วเกิดเองได้ · `0` = ไม่ได้เลย ต้องรอหมอชุบ |\n| `waitWithoutMedics` | `30` | ไม่มีหมอ: รอกี่วินาทีแล้วเกิดเองได้ |\n| `includeSelfRevive` | `false` | ชุบตัวเองด้วยไอเทมต้องรอเหมือนกันไหม |\n\nหน้าจอตายจะขึ้นเช่น \"มีหมอออนไลน์ 2 คน · เกิดเองได้ใน 6:52\" และนับจำนวนหมอใหม่ทุก 10 วินาที ถ้าหมอออฟไลน์หมดระหว่างรอ จะเปลี่ยนไปใช้ `waitWithoutMedics` ทันที\n\n**ตัวอย่าง:** เซิร์ฟ RP จริงจัง มีหมอแล้วต้องรอหมอเท่านั้น\n\n```lua\nConfig.MedicGate = { enabled = true, jobs = { 'ambulance' }, minMedics = 1, waitWithMedics = 0, waitWithoutMedics = 60 }\n```\n\n### จุดเกิดและชุบตัวเอง\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `Config.TownRespawn` | `true` | กดเกิดที่เมืองหลักได้ |\n| `Config.NodeRespawn` | `false` | กดเกิดที่จุดใกล้ตัวได้ |\n| `Config.TownOptionsToShow` \u002F `NodeOptionsToShow` | `1` | แสดงกี่จุด (ใกล้สุดก่อน) |\n| `Config.Nodes` | 3 เมือง + 4 จุด | จุดเกิด: `type = 'town'` หรือ `'node'`, `towers` = ตำแหน่งจริงที่ตัวละครไปโผล่ (เลือกที่ใกล้ศพที่สุด) |\n| `Config.SelfRevive` | ปิด | ชุบตัวเองด้วยไอเทม: `item`, `count`, `label`, `labelTh` |\n| `Config.Blip` | เปิด | จุดบนแผนที่ของจุดเกิด |\n\n### ธงตายและแอดมิน\n\n| ค่า | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `Config.PersistDeath.enabled` | `true` | ออกเกมตอนตาย กลับเข้ามาก็ยังตาย ถ้าผู้เล่นค้างตาย แอดมินใช้ `\u002Frevive` ปลดได้ |\n| `Config.AdminReviveCommand` | `\u002Frevive [id]` | ชุบผู้เล่น (ว่าง = ตัวเอง) |\n| `Config.AdminHealCommand` | `\u002Fheal [id]` | รักษาผู้เล่น |\n| `Config.DeadSync` | เปิด | กด X เด้งศพ (กันศพติดกำแพง) ได้ทุก 10 วินาที และจำกัดความเร็วศพ |\n\n---\n\n## ปรับให้เข้ากับเซิร์ฟ: `addons\u002F`\n\n| ไฟล์ | ฟังก์ชัน | ค่าเริ่มต้น |\n|---|---|---|\n| `addons\u002Fdispatch\u002Fclient.lua` | `Dispatch.Available()`, `Dispatch.CallEMS(message)` | แจ้งหมอในตัว + จุดบนแผนที่ (แก้เพื่อต่อ dispatch อื่น) |\n| `addons\u002Fhud\u002Fclient.lua` | `Hud.Show(visible)`, `BlipName(node)` | เรดาร์ของเกม + event `x3d_respawn:hud` |\n| `addons\u002Fnotify\u002Fclient.lua` | `Notify(message, kind)` | esx_notify → ox_lib → ESX |\n| `addons\u002Fanticheat\u002Fserver.lua` | `OnRespawnTeleport(src)` | ว่าง (no-op) — ต่อระบบกันโกงของคุณเองตรงนี้ |\n| `addons\u002Flocale\u002Fshared.lua` | `T(th, en)` | ตาม `Config.Locale` |\n\n---\n\n## สำหรับสคริปต์หมอ\n\n```lua\n-- server\nTriggerClientEvent('x3d_respawn:cmdRevive', target)   -- ชุบร่าง\nexports['x3d_respawn']:ClearDeathFlag(target)          -- ล้างธงตายใน DB\nTriggerClientEvent('x3d_respawn:cmdHeal', target)     -- รักษา\n\n-- client\nexports['x3d_respawn']:IsPlayerDead()                   --> boolean\nAddEventHandler('x3d_respawn:cl_onDeathStart', function() end)\nAddEventHandler('x3d_respawn:cl_revived', function(how) end)   -- 'cmd', 'self', 'external' หรือ id จุดเกิด\n```\n\n## ปัญหาที่พบบ่อย\n\n| อาการ | สาเหตุ \u002F วิธีแก้ |\n|---|---|\n| ไม่มีปุ่มเรียกหมอ | `Config.CallEMS.enabled = false` หรือ `Dispatch.Available()` ใน `addons\u002Fdispatch\u002Fclient.lua` คืนค่า false |\n| กดเรียกหมอแล้วไม่มีใครได้รับแจ้ง | ไม่มีผู้เล่นออนไลน์ที่มีอาชีพใน `Config.CallEMS.jobs` |\n| ขึ้นหน้าจอตายสองอัน | ยังเปิดหน้าจอตายตัวอื่นอยู่ (เช่นของ esx_ambulancejob) |\n| ผู้เล่นค้างตายตอนเข้าเกม | `Config.PersistDeath` เปิดอยู่ ใช้ `\u002Frevive \u003Cid>` |\n| ปุ่มเกิดเองกดไม่ได้ | มีหมอออนไลน์ตาม `Config.MedicGate` รอเวลาที่แสดงบนจอ |\n","สคริปต์หน้าจอตาย FiveM ESX ฟรี ปุ่มเรียกหมอ","หน้าจอตาย FiveM ฟรี ปุ่มเรียกหมอแจ้งหมอพร้อมจุดบนแผนที่ มีหมอออนไลน์ต้องรอหมอ จุดเกิดใหม่ ชุบตัวเอง สรุปการตาย ใช้ได้ทั้ง ESX และ standalone",[63,66,68,70,72],{"kind":64,"url":65},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fmedia\u002F8c7aee02fd921a5c.png",{"kind":64,"url":67},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fmedia\u002F1ca997f8373564ba.png",{"kind":64,"url":69},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fmedia\u002Fa6e6605537c6fad2.png",{"kind":64,"url":71},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fmedia\u002F20ab825df263a707.png",{"kind":64,"url":73},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-respawn\u002Fmedia\u002F8013c66a6bffddb2.png",[75,77,81],{"version":52,"released_at":53,"changelog_md":76},"### Changed\n\n- Store images now carry English captions for the English store page",{"version":78,"released_at":79,"changelog_md":80},"1.1.1","2026-10-12T03:28:28.544542Z","### 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":82,"released_at":83,"changelog_md":84},"1.0.0","2026-09-25T16:14:14.97931Z","First public release.\n\n### Added\n\n- Death screen with a death summary: killer, weapon, distance, zone, headshot, damage per body part and the last six hits.\n- Call EMS button: raises an x3d_phone dispatch for the `ambulance` service with the location read on the server; the screen shows the medic who responds. Falls back to the esx_ambulancejob distress signal, and `addons\u002Fdispatch\u002Fclient.lua` takes any other dispatch system.\n- Medic gate (`Config.MedicGate`): when enough medics (`ambulance` job) are online, players wait for them, with an optional time after which respawning unlocks anyway.\n- Respawn at towns or nearby points, item self-revive (each optional), death kept across relogs (`users.is_dead`), `\u002Frevive` and `\u002Fheal` for admins, corpse bounce (X).\n- Answers the esx_ambulancejob names (`esx_ambulancejob:revive`, `:heal`, `:setDeathStatus`, `IsPlayerDead`) so existing medic scripts keep working.",{"slug":23,"version":52,"latest_version":52,"files":86,"options":57},[87],{"path":88,"content":89},"shared\u002Fconfig.lua","Config = {}\n\n-- ===== ทั่วไป \u002F General =====\n\n-- เฟรมเวิร์ก: 'auto' (ESX ถ้ามี ไม่มีก็ standalone) | 'esx' | 'standalone'\n-- Framework: 'auto' (ESX if present, otherwise standalone) | 'esx' | 'standalone'\nConfig.Framework = 'auto'\n\n-- ภาษา: 'th' หรือ 'en' \u002F Language: 'th' or 'en'\nConfig.Locale = 'th'\n\n-- ตารางผู้เล่นของ ESX (เก็บธงตายที่คอลัมน์ is_dead) — ใช้ได้เมื่อ Config.Framework แก้เป็น 'esx'\n-- โหมด standalone ไม่มีตารางนี้ Config.PersistDeath จะไม่ทำอะไร (ธงตายไม่ถูกเขียน\u002Fอ่าน)\n-- ESX players table (the death flag lives in its is_dead column), used when Config.Framework is 'esx'\n-- Standalone mode has no such table, so Config.PersistDeath does nothing (the flag is never read or written)\nConfig.UsersTable = 'users'\n\n-- ===== เรียกหมอ \u002F Call EMS =====\n\n-- ปุ่ม \"เรียกหมอ\" บนหน้าจอตาย\n-- ค่าเริ่มต้น: self-contained — แจ้งผู้เล่นออนไลน์ทุกคนที่มีอาชีพอยู่ใน jobs พร้อมจุดบนแผนที่\n-- ระบบ dispatch อื่น? แก้ addons\u002Fdispatch\u002Fclient.lua + addons\u002Fdispatch\u002Fserver.lua\n-- The \"Call EMS\" button on the death screen\n-- Default is self-contained: notifies every online player whose job is in jobs, with a map blip\n-- Another dispatch system? Edit addons\u002Fdispatch\u002Fclient.lua + addons\u002Fdispatch\u002Fserver.lua\nConfig.CallEMS = {\n    -- แสดงปุ่มเรียกหมอ \u002F Show the Call EMS button\n    enabled = true,\n    -- อาชีพที่ได้รับแจ้ง \u002F Jobs that get notified\n    jobs = { 'ambulance' },\n    -- เรียกซ้ำได้ทุกกี่วินาที \u002F Seconds between calls\n    cooldownSeconds = 60,\n    -- ข้อความที่หมอเห็น \u002F Message the medics read\n    message = { th = 'หมดสติ ต้องการหมอ', en = 'Unconscious, needs a medic' },\n}\n\n-- ===== จุดเกิดและชุบตัวเอง \u002F Respawn and self-revive =====\n\n-- ทางที่ผู้เล่น \"กดเกิดเอง\" ได้ (ค่าเริ่มต้น: เปิดเฉพาะเมืองหลัก ส่วนจุดใกล้ตัวและชุบตัวเองปิดอยู่)\n-- เซิร์ฟส่วนใหญ่มีระบบหมออยู่แล้ว ล้มแล้วต้องรอหมอมาชุบ ไม่ใช่กดเกิดหนีเอง\n-- Ways a player can respawn by themselves (default: only the main town is on; nearest point and self-revive are off)\n-- Most servers already have medics, so a downed player waits to be revived instead of respawning\n--\n-- เปิดอันไหนก็ได้ตามที่เซิร์ฟต้องการ:\n--   Config.TownRespawn      กดเกิดที่โรงพยาบาล\u002Fเมืองหลัก\n--   Config.NodeRespawn      กดเกิดที่จุดใกล้ตัว\n--   Config.SelfRevive       ใช้ไอเทมชุบตัวเอง (ด้านล่าง)\n--\n-- ปิดหมด = ปลดได้ทางเดียวคือคนอื่นชุบ ให้สคริปต์หมอเรียก\n--   TriggerClientEvent('x3d_respawn:cmdRevive', src)              ชุบร่าง\n--   exports['x3d_respawn']:ClearDeathFlag(src)                    ล้างธงตายในฐานข้อมูล\n-- แอดมินใช้ \u002Frevive ได้เสมอ\n-- Turn on whichever you need:\n--   Config.TownRespawn      respawn at the hospital \u002F main town\n--   Config.NodeRespawn      respawn at the nearest point\n--   Config.SelfRevive       self-revive with an item (below)\n-- All off = the only way up is another player reviving, have your medic script call\n--   TriggerClientEvent('x3d_respawn:cmdRevive', src)              revive the body\n--   exports['x3d_respawn']:ClearDeathFlag(src)                    clear the death flag in the database\n-- Admins can always use \u002Frevive\n\n-- กดเกิดที่เมืองหลัก \u002F Allow respawning at the main town\nConfig.TownRespawn = true\n-- กดเกิดที่จุดใกล้ตัว \u002F Allow respawning at the nearest point\nConfig.NodeRespawn = false\n\n-- ===== ต้องรอหมอ \u002F Medic gate =====\n\n-- กดเกิดเองได้เมื่อไหร่ นับหมอจากอาชีพ (esx_ambulancejob ใช้ 'ambulance')\n--   มีหมอออนไลน์ถึง minMedics → ต้องรอหมอ ครบ waitWithMedics วินาทีแล้วค่อยเกิดเองได้ (0 = ไม่ได้เลย ต้องรอหมอชุบ)\n--   หมอไม่พอ → เกิดเองได้หลัง waitWithoutMedics วินาที\n-- When a player can respawn by themselves; medics are counted by job ('ambulance' for esx_ambulancejob)\n--   medics online >= minMedics: the player waits waitWithMedics seconds before respawning (0 = never, must be revived)\n--   not enough medics: the player can respawn after waitWithoutMedics seconds\nConfig.MedicGate = {\n    -- เปิดการเช็กหมอ \u002F Turn the medic check on\n    enabled = true,\n    -- อาชีพที่นับเป็นหมอ \u002F Jobs counted as medics\n    jobs = { 'ambulance' },\n    onDutyOnly = false,          -- true = นับเฉพาะหมอที่เข้าเวร (job.onDuty ของ ESX Legacy) \u002F true = count on-duty medics only (ESX Legacy job.onDuty)\n    -- จำนวนหมอขั้นต่ำ \u002F Minimum medics online\n    minMedics = 1,\n    -- วินาทีที่รอเมื่อมีหมอ (0 = ต้องรอหมอชุบ) \u002F Seconds to wait with medics online (0 = must be revived)\n    waitWithMedics = 600,\n    -- วินาทีที่รอเมื่อไม่มีหมอ \u002F Seconds to wait with no medics online\n    waitWithoutMedics = 30,\n    includeSelfRevive = false,   -- true = ชุบตัวเองด้วยไอเทมก็ต้องรอเหมือนกัน \u002F true = self-revive with an item waits too\n}\n\n-- ===== หน้าจอตาย \u002F Death screen =====\n\nConfig.TownOptionsToShow = 1   -- โชว์กี่จุด ตอน TownRespawn เปิด \u002F How many town points to show when TownRespawn is on\nConfig.NodeOptionsToShow = 1   -- โชว์กี่จุด ตอน NodeRespawn เปิด \u002F How many nearby points to show when NodeRespawn is on\n-- หน่วงกี่มิลลิวินาทีก่อนหน้าจอตายขึ้น \u002F Milliseconds before the death screen appears\nConfig.MinDeathDelayMs = 1200\n-- จอแดงตอนตาย \u002F Red screen filter while dead\nConfig.UseRedFilter = true\n-- เล่นท่าล้มตอนตาย \u002F Play the death animation\nConfig.PlayDeathAnim = true\n\n-- ศพเด้งกันติดกำแพง \u002F Body bounce so a corpse is not stuck in a wall\nConfig.DeadSync = {\n    -- เปิด\u002Fปิดระบบนี้ \u002F Turn this system on or off\n    enabled          = true,\n    -- ปุ่มเด้งศพ (73 = X) \u002F Bounce key (73 = X)\n    bounceKey        = 73,\n    -- คูลดาวน์การเด้ง (มิลลิวินาที) \u002F Bounce cooldown (milliseconds)\n    bounceCooldownMs = 10000,\n    -- แรงเด้ง ขึ้นและไปด้านข้าง \u002F Bounce force, up and sideways\n    bounceForce      = 3.5,\n    bounceSide       = 1.2,\n    -- ความเร็วศพสูงสุด \u002F Maximum body velocity\n    maxVelocity      = 10.0,\n    -- เวลาให้ศพนิ่งหลังเด้ง (มิลลิวินาที) \u002F Time for the body to settle after a bounce (milliseconds)\n    settleMs         = 1200,\n}\n\n-- ===== ชุบตัวเอง \u002F Self-revive =====\n\n-- ชุบตัวเองด้วยไอเทม (เช่น ชุดปฐมพยาบาล \u002F AED)\n-- ปิดไว้ด้วยเหตุผลเดียวกับด้านบน — เปิดเมื่ออยากให้ผู้เล่นช่วยตัวเองได้\n-- Self-revive with an item (e.g. a medkit \u002F AED)\n-- Off for the same reason as above, turn it on to let players help themselves\nConfig.SelfRevive = {\n    -- เปิด\u002Fปิด \u002F On or off\n    enabled = false,\n    -- ชื่อไอเทมที่ใช้ และจำนวนที่ใช้ต่อครั้ง \u002F Item name used, and how many per use\n    item    = 'medkit',\n    count   = 1,\n    -- ชื่อที่โชว์ (อังกฤษ\u002Fไทย) และไอคอน \u002F Display name (English\u002FThai) and icon\n    label   = 'Medkit',\n    labelTh = 'ชุดปฐมพยาบาล',\n    icon    = 'i-mdi-medical-bag',\n}\n\n-- ===== หมุดแผนที่ \u002F Map blips =====\n\n-- หมุดจุดเกิดบนแผนที่ \u002F Respawn point blips on the map\nConfig.Blip = {\n    -- เปิด\u002Fปิด \u002F On or off\n    enabled = true,\n    -- shortRange per type: towns stay global (found from anywhere), nodes pin to\n    -- their spot and only show when near — so a node blip never rides the minimap\n    -- edge and \"moves\" as you travel.\n    town    = { sprite = 419, color = 5,  scale = 0.90, shortRange = false },\n    node    = { sprite = 162, color = 17, scale = 0.80, shortRange = true },\n    shortRange = false,   -- fallback when a type has no shortRange set\n}\n\n-- ===== การรักษา \u002F Healing =====\n\n-- ค่าตอนรักษา: เติมเกราะหรือไม่ และเกราะเท่าไหร่ \u002F Heal settings: whether armor is restored, and how much\nConfig.HealSettings = {\n    healArmor = true,\n    armor     = 100,\n}\n\n-- ===== ธงตายและแอดมิน \u002F Death flag and admin =====\n\n-- ตายแล้วออกจากเกม กลับเข้ามาจะยังตายอยู่ไหม (เก็บที่คอลัมน์ is_dead ของ Config.UsersTable)\n--\n--   true  = ออกตอนล้มก็ยังล้มอยู่ตอนกลับเข้ามา ต้องรอหมอหรือใช้ชุดปฐมพยาบาลเหมือนเดิม\n--           กันคนล้มแล้ว alt+F4 หนีเพื่อเกิดใหม่ฟรี ๆ\n--           ข้อควรรู้: ถ้าหน้าจอตายเปิดไม่ขึ้นด้วยเหตุใดก็ตาม ผู้เล่นจะค้างตายเข้าเกมไม่ได้\n--           ใช้ \u002Frevive ปลดให้ได้\n--\n--   false = เข้ามาใหม่เกิดปกติเสมอ ไม่มีทางค้าง แต่ก็หนีความตายด้วยการออกเกมได้\n--\n-- เซิร์ฟไทยส่วนใหญ่เปิด · เซิร์ฟที่เน้นเล่นสบายค่อยปิด\n-- Dying then leaving the game: does the player come back still dead? (stored in the is_dead column of Config.UsersTable)\n--   true  = leaving while downed means still downed on return, must wait for a medic or use a medkit\n--           stops alt+F4 as a free respawn. Note: if the death screen fails to show for any reason\n--           the player is stuck dead and cannot play, \u002Frevive releases them\n--   false = always respawn normally on rejoin, can never get stuck, but leaving the game escapes death\n-- Most servers keep it on · turn it off for a relaxed server\nConfig.PersistDeath = {\n    enabled = true,\n}\n\n-- คำสั่งแอดมินชุบชีวิต \u002F Admin revive command\nConfig.AdminReviveCommand = {\n    enabled = true,\n    command = 'revive',\n    help    = 'ชุบชีวิตผู้เล่น (ว่างไว้ = ตัวเอง) \u002F Revive a player (blank = self)',\n}\n\n-- คำสั่งแอดมินรักษา \u002F Admin heal command\nConfig.AdminHealCommand = {\n    enabled = true,\n    command = 'heal',\n    help    = 'รักษาผู้เล่น (ว่างไว้ = ตัวเอง) \u002F Heal a player (blank = self)',\n}\n\n-- ===== จุดเกิด \u002F Respawn points =====\n\n-- จุดเกิด: type = 'town' หรือ 'node', coords = จุดเกิดหลัก, towers = ตำแหน่งที่ตัวละครไปโผล่ (เลือกที่ใกล้ศพที่สุด)\n-- Respawn points: type = 'town' or 'node', coords = main spot, towers = positions the character appears at (nearest to the body is chosen)\n-- id\u002Fname\u002FnameEn\u002Fzone\u002Ficon = รหัส ชื่อไทย ชื่ออังกฤษ ชื่อโซน และไอคอน \u002F id, Thai name, English name, zone name and icon\n-- เช่น \u002F e.g. { id = 'central', type = 'town', name = 'ใจกลางเมือง', nameEn = 'Central Town', zone = 'Downtown LS', icon = 'i-mdi-city', coords = vector4(-515.9, -252.8, 35.6, 311.4), towers = { vector4(-515.9, -252.8, 35.6, 311.4) } }\nConfig.Nodes = {\n    {\n        id     = 'central',\n        type   = 'town',\n        name   = 'ใจกลางเมือง',\n        nameEn = 'Central Town',\n        zone   = 'Downtown LS',\n        icon   = 'i-mdi-city',\n        coords = vector4(-515.9059, -252.8001, 35.6483, 311.4933),\n        towers = {\n            vector4(-515.9059, -252.8001, 35.6483, 311.4933),\n            vector4(-489.7,    -236.4,    36.6,    180.0),\n            vector4(-540.2,    -270.6,    35.0,    90.0),\n        },\n    },\n    {\n        id     = 'paleto',\n        type   = 'town',\n        name   = 'เมืองพาเลโต้',\n        nameEn = 'Paleto Town',\n        zone   = 'Paleto Bay · North',\n        icon   = 'i-mdi-pine-tree',\n        coords = vector4(-247.0, 6332.0, 32.4, 230.0),\n        towers = {\n            vector4(-247.0, 6332.0, 32.4, 230.0),\n            vector4(-109.0, 6447.0, 31.5, 45.0),\n        },\n    },\n    {\n        id     = 'sandy',\n        type   = 'town',\n        name   = 'เมืองแซนดี้ ชอร์ส',\n        nameEn = 'Sandy Shores Town',\n        zone   = 'Sandy Shores · Desert',\n        icon   = 'i-mdi-cactus',\n        coords = vector4(1839.6, 3672.8, 34.3, 200.0),\n        towers = {\n            vector4(1839.6, 3672.8, 34.3, 200.0),\n            vector4(1972.0, 3815.0, 32.4, 30.0),\n        },\n    },\n    {\n        id     = 'pillbox',\n        type   = 'node',\n        name   = 'ด่านพิลล์บ็อกซ์',\n        nameEn = 'Pillbox Outpost',\n        zone   = 'Pillbox Hill · Downtown',\n        icon   = 'i-mdi-shield-cross',\n        coords = vector4(298.6, -584.2, 43.2, 70.0),\n        towers = {\n            vector4(298.6, -584.2, 43.2, 70.0),\n            vector4(309.0, -566.0, 43.3, 250.0),\n        },\n    },\n    {\n        id     = 'strawberry',\n        type   = 'node',\n        name   = 'รังสตรอเบอร์รี่',\n        nameEn = 'Strawberry Den',\n        zone   = 'Strawberry · South LS',\n        icon   = 'i-mdi-fire',\n        coords = vector4(220.0, -1620.0, 29.3, 230.0),\n        towers = {\n            vector4(220.0, -1620.0, 29.3, 230.0),\n            vector4(92.0,  -1949.0, 21.0, 50.0),\n        },\n    },\n    {\n        id     = 'vespucci',\n        type   = 'node',\n        name   = 'ที่ซ่อนเวสปูชี',\n        nameEn = 'Vespucci Hideout',\n        zone   = 'Vespucci · West Beach',\n        icon   = 'i-mdi-pirate',\n        coords = vector4(-1339.0, -1287.0, 4.5, 250.0),\n        towers = {\n            vector4(-1339.0, -1287.0, 4.5, 250.0),\n            vector4(-1175.0, -1610.0, 4.4, 30.0),\n        },\n    },\n    {\n        id     = 'lsia',\n        type   = 'node',\n        name   = 'ฐานสนามบิน',\n        nameEn = 'Airfield Compound',\n        zone   = 'LSIA · South Coast',\n        icon   = 'i-mdi-airport',\n        coords = vector4(-1037.0, -2738.0, 20.2, 330.0),\n        towers = {\n            vector4(-1037.0, -2738.0, 20.2, 330.0),\n        },\n    },\n}\n",1792316307820]