[{"data":1,"prerenderedAt":90},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-en-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","Free death screen: Call EMS button, wait for medics when they are online, respawn points, self-revive, a death summary and death kept across relogs.",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,"A free death screen. It shows who killed you, with what and where you were hit, has a **Call EMS** button, and can make players wait for medics before they respawn on their own. Works with ESX or standalone.\n\n---\n\n## Features\n\n- [+] Easy setup: tune everything in config, or set it through the web builder\n- [+] Death screen with killer, weapon, distance, headshot and the last 6 hits\n- [+] Call EMS button alerts online medics with a map blip, with a cooldown\n- [+] Choose which jobs count as medics, and the message they read\n- [+] Medics online means waiting: set a minimum and count on-duty medics only\n- [+] Set the wait before respawning, with and without medics online\n- [+] Set it to 0 so players can only be revived by a medic\n- [+] Town or nearest-point respawn, each on or off, with your own spots and blips\n- [+] Self-revive with an item, with your own item name and count\n- [+] Dying then logging out keeps you dead, so no alt+F4 escape (ESX)\n- [+] Admins get \u002Frevive and \u002Fheal for players\n- [+] Hook into other scripts through addons\u002F\n\n---\n\n## What's inside\n\n- **Call EMS**: every online player whose job is in `Config.CallEMS.jobs` gets an emergency notification and a flashing map blip at the patient's position. It works on its own with no other script, or plug in another dispatch system through the adapter.\n- **Medics online means waiting**: medics are counted from the `ambulance` job. Set the minimum number, and how many seconds players wait before they can respawn anyway, or make them wait to be revived. With no medics online, players can respawn after a delay you set.\n- **Death summary**: killer, weapon, distance, zone, headshot, damage per body part and the last six hits.\n- **Respawn points and self-revive**: town, nearest point or a medkit, each on or off.\n- **Death survives relogs**: players cannot alt+F4 out of dying (the death flag is stored in the ESX players table).\n- **Works with medic scripts**: your medic scripts trigger `x3d_respawn:cmdRevive` \u002F `x3d_respawn:cmdHeal` to revive and heal, and can use the `IsPlayerDead` and `ClearDeathFlag` exports.\n- **Admins**: `\u002Frevive [id]` and `\u002Fheal [id]`.\n\n---\n\n## Make it fit your server\n\n| File | Job |\n|---|---|\n| `addons\u002Fdispatch\u002Fclient.lua` | The Call EMS button (edit it to plug in another dispatch) |\n| `addons\u002Fhud\u002Fclient.lua` | Hides the HUD while dead |\n| `addons\u002Fnotify\u002Fclient.lua` | Notifications |\n| `addons\u002Fanticheat\u002Fserver.lua` | Your anti-cheat hook, called when a player is moved to a respawn point |\n\n---\n\n## Requirements\n\n- `oxmysql`\n- `es_extended` (ESX Legacy), optional: without it use standalone mode\n","## Installation\n\n1. Put the `x3d_respawn` folder in `resources\u002F`. **Do not rename the folder.**\n2. Run `install.sql` to add the `users.is_dead` column (safe to re-run). If your players table is not called `users`, change it in that file and in `Config.UsersTable`.\n3. Add to `server.cfg`:\n\n```\nensure oxmysql\nensure es_extended    # if you run ESX (not needed in standalone mode)\nensure x3d_respawn\n```\n\n> **Run one death screen only:** if you use esx_ambulancejob, turn its death screen off and have your medic scripts call the x3d_respawn events listed under \"For medic scripts\" below.\n\n## Requirements\n\n| Resource | Required | Used for |\n|---|---|---|\n| `oxmysql` | yes | the death flag |\n| `es_extended` | no | ESX Legacy (without it use standalone mode through `Config.Framework`; the death flag across relogs is ESX only) |\n\n---\n\n## All settings: `shared\u002Fconfig.lua`\n\n### General\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.Locale` | `'th'` | `'th'` or `'en'` |\n| `Config.UsersTable` | `'users'` | ESX players table |\n| `Config.MinDeathDelayMs` | `1200` | Delay before the death screen appears |\n| `Config.UseRedFilter` | `true` | Red screen filter while dead |\n\n### Call EMS: `Config.CallEMS`\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `enabled` | `true` | Shows the Call EMS button |\n| `jobs` | `{ 'ambulance' }` | Jobs that get notified when someone calls |\n| `cooldownSeconds` | `60` | How often a player can call |\n| `message` | `{ th = ..., en = 'Unconscious, needs a medic' }` | What medics read |\n\n**What happens (built in, no other script needed):**\n1. Every online player whose job is in `jobs` (default `ambulance`) gets an \"Emergency call\" notification with your message and a flashing map blip at the patient's position (it clears itself after 60 seconds).\n2. The location is read from the character on the server, so it cannot be faked.\n3. Using another dispatch system? Edit `addons\u002Fdispatch\u002Fclient.lua` and `addons\u002Fdispatch\u002Fserver.lua`.\n\n### Waiting for medics: `Config.MedicGate`\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `enabled` | `true` | Turns the medic check on |\n| `jobs` | `{ 'ambulance' }` | Jobs counted as medics |\n| `onDutyOnly` | `false` | Count only medics on duty (`job.onDuty`) |\n| `minMedics` | `1` | This many medics online means players wait |\n| `waitWithMedics` | `600` | With medics: seconds before respawning unlocks · `0` = never, wait to be revived |\n| `waitWithoutMedics` | `30` | Without medics: seconds before respawning unlocks |\n| `includeSelfRevive` | `false` | Whether item self-revive waits too |\n\nThe screen shows e.g. \"2 medics online · respawn in 6:52\" and recounts medics every 10 seconds. If every medic logs off while you wait, `waitWithoutMedics` applies at once.\n\n**Example:** serious RP, where players must be revived while medics are online:\n\n```lua\nConfig.MedicGate = { enabled = true, jobs = { 'ambulance' }, minMedics = 1, waitWithMedics = 0, waitWithoutMedics = 60 }\n```\n\n### Respawn points and self-revive\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.TownRespawn` | `true` | Respawn at a town |\n| `Config.NodeRespawn` | `false` | Respawn at a nearby point |\n| `Config.TownOptionsToShow` \u002F `NodeOptionsToShow` | `1` | How many to list (nearest first) |\n| `Config.Nodes` | 3 towns + 4 points | Respawn points: `type = 'town'` or `'node'`; `towers` are the actual spawn spots (the one nearest the body is used) |\n| `Config.SelfRevive` | off | Item self-revive: `item`, `count`, `label`, `labelTh` |\n| `Config.Blip` | on | Map blips for the respawn points |\n\n### Death flag and admins\n\n| Setting | Default | Meaning |\n|---|---|---|\n| `Config.PersistDeath.enabled` | `true` | Dying and logging off keeps you dead on return. Admins free a stuck player with `\u002Frevive` |\n| `Config.AdminReviveCommand` | `\u002Frevive [id]` | Revive a player (blank = yourself) |\n| `Config.AdminHealCommand` | `\u002Fheal [id]` | Heal a player |\n| `Config.DeadSync` | on | X bounces the body (stuck in a wall) every 10 s, and caps body velocity |\n\n---\n\n## Fitting your server: `addons\u002F`\n\n| File | Functions | Default |\n|---|---|---|\n| `addons\u002Fdispatch\u002Fclient.lua` | `Dispatch.Available()`, `Dispatch.CallEMS(message)` | built-in medic alert + map blip (edit to plug in another dispatch) |\n| `addons\u002Fhud\u002Fclient.lua` | `Hud.Show(visible)`, `BlipName(node)` | game radar + event `x3d_respawn:hud` |\n| `addons\u002Fnotify\u002Fclient.lua` | `Notify(message, kind)` | esx_notify → ox_lib → ESX |\n| `addons\u002Fanticheat\u002Fserver.lua` | `OnRespawnTeleport(src)` | empty (no-op), hook your own anti-cheat here |\n| `addons\u002Flocale\u002Fshared.lua` | `T(th, en)` | follows `Config.Locale` |\n\n---\n\n## For medic scripts\n\n```lua\n-- server\nTriggerClientEvent('x3d_respawn:cmdRevive', target)   -- revive\nexports['x3d_respawn']:ClearDeathFlag(target)          -- clear the death flag\nTriggerClientEvent('x3d_respawn:cmdHeal', target)     -- heal\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' or a point id\n```\n\n## Troubleshooting\n\n| Symptom | Cause \u002F fix |\n|---|---|\n| No Call EMS button | `Config.CallEMS.enabled = false`, or `Dispatch.Available()` in `addons\u002Fdispatch\u002Fclient.lua` returns false |\n| Nobody receives the call | No online player has a job listed in `Config.CallEMS.jobs` |\n| Two death screens | Another death screen is still running (e.g. esx_ambulancejob's) |\n| A player is stuck dead on join | `Config.PersistDeath` is on; use `\u002Frevive \u003Cid>` |\n| Respawn is locked | Medics are online per `Config.MedicGate`; wait for the time shown |\n","Free FiveM ESX Death Screen with Call EMS","Free FiveM death screen: Call EMS alerts medics with a map blip, wait for medics when online, respawn points, self-revive, death summary.",[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",1792316315399]