[{"data":1,"prerenderedAt":87},["ShallowReactive",2],{"site":3,"config-slug-site":15,"config-product-th-x3d-notify":21,"config-public-x3d-notify":82},{"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":51,"latest_released_at":52,"published_at":53,"has_docs":54,"config":55,"rent_price_satang":56,"description_md":57,"docs_md":58,"seo_title":59,"seo_description":60,"media":61,"versions":71},"9b62b8ed-5911-47a8-b695-3320a6183758","x3d-notify","X3D Notify (แจ้งเตือน)","การ์ดแจ้งเตือน 9 ตำแหน่ง ใส่ไอคอนไอเทมกับกรอบระดับความหายากได้ รองรับภาษาไทยเต็มรูปแบบ",0,"none","public\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fcover\u002F4a9cbdcedd86a149.jpg",[31],"hud",[33,34,35,36,37,38,39,31,40,41,42,43,44,45,46,47,48,49,50],"notify","notification","แจ้งเตือน","แจ้งเตือน fivem","esx_notify","esx notify","ui","ฟอนต์ไทย","ไอคอนไอเทม","esx","ฟรี","free","การ์ดแจ้งเตือน","กรอบความหายาก","แจ้งเตือน 9 ตำแหน่ง","สีในข้อความ","แทน esx_notify","แจ้งเตือนไอเทม","1.1.4","2026-10-12T17:20:21.047259Z","2026-09-24T01:21:40.547491Z",true,"public",null,"การ์ดแจ้งเตือนสำหรับเซิร์ฟ FiveM วางได้ 9 ตำแหน่งรอบจอ ใส่ไอคอนไอเทมกับกรอบระดับความหายากได้ และมีฟอนต์ไทยในตัว ตัวหนังสือไม่กลายเป็นกล่องสี่เหลี่ยม\n\nเหมาะกับเมืองทุกแนว (school \u002F community \u002F RP) ใช้ได้ทั้ง ESX และ standalone\n\n---\n\n## ฟีเจอร์\n\n- [+] วางการ์ดแจ้งเตือนได้ 9 ตำแหน่ง ตั้งตำแหน่งเริ่มต้นใน config\n- [+] ใส่ไอคอนไอเทมและกรอบระดับความหายากได้\n- [+] 4 ประเภท success \u002F error \u002F warning \u002F info คุมสีและไอคอน\n- [+] ใส่สีในข้อความได้ เช่น ~r~ แดง ~g~ เขียว ~y~ เหลือง\n- [+] ตั้งหัวเรื่องเองได้ และกำหนดเวลาแสดงของแต่ละการ์ด\n- [+] เปิดปิดเสียงแจ้งเตือนได้ใน config และเปลี่ยนตอนรันได้\n- [+] ล้างการ์ดที่ค้างบนจอได้ด้วย export เดียว\n- [+] ฟอนต์ไทยฝังมาในตัว การ์ดไม่กลายเป็นกล่องสี่เหลี่ยม\n- [+] สคริปต์เก่าที่เรียก esx_notify ใช้ต่อได้ ไม่ต้องแก้สักตัว\n- [+] ตั้งค่าง่าย ปรับได้หมดใน config หรือตั้งผ่านเว็บได้เลย\n\n---\n\n## ที่มาและใบอนุญาต\n\nต่อยอดจาก **esx_notify** ของโปรเจกต์ ESX Legacy\nCopyright (C) 2022-2024 ESX-Framework · สัญญาอนุญาต **GNU GPL v3**\n\nModifications Copyright (C) 2026 X3D-Developer\n\nแจกจ่ายต่อได้ภายใต้ GPL v3 เท่านั้น ต้องเปิดซอร์ส เก็บประกาศลิขสิทธิ์เดิมไว้ และระบุว่าแก้อะไรไปบ้าง ไฟล์ `LICENSE` อยู่ในโฟลเดอร์สคริปต์\n\n### แก้อะไรไปบ้าง (GPL-3.0 §5a)\n\nModified 2026 by X3D-Developer, based on esx_notify 1.13.4.\n\n- **หน้าจอเขียนใหม่เป็น Vue\u002FNuxt** แทน HTML\u002FCSS\u002FJS แบบเดิมทั้งหมด\n- เพิ่มตำแหน่งวางการ์ดจาก 4 เป็น **9 ตำแหน่ง** (เพิ่ม center, left-center, right-center, top-center, bottom-center)\n- รองรับ **ไอคอนไอเทมและกรอบระดับความหายาก** (พารามิเตอร์ `icon` \u002F `iconBg`)\n- ฟอนต์ไทยฝังมาในตัว การ์ดไม่กลายเป็นกล่องสี่เหลี่ยม\n- `SetConfig` ตั้งตำแหน่งเริ่มต้นและเปิด\u002Fปิดเสียงได้ตอนรันไทม์\n- `ClearAll` ล้างการ์ดที่ค้างอยู่ทั้งหมด\n- ตัดการผูกกับสคริปต์ภาษาภายนอกออก ใช้งานได้เดี่ยว ๆ\n- `fx_version` เป็น `cerulean`\n","## การติดตั้ง\n\n```\nensure x3d_notify\n```\n\nเอา `esx_notify` ตัวเดิมออกก่อน เพราะสองตัวเปิด NUI ซ้อนกัน\n\n**มีสคริปต์เก่าเรียก `exports['esx_notify']` อยู่?** ย้าย `optional\u002Fesx_notify\u002F` ออกมาไว้ใน `resources\u002F` แล้ว `ensure esx_notify` ต่อจาก `x3d_notify` เป็นตัวส่งต่อ 12 บรรทัด ไม่ต้องแก้สคริปต์เก่าสักตัว\n\n```\nensure x3d_notify\nensure esx_notify      # เฉพาะเมื่อมีสคริปต์เก่าเรียกชื่อนี้\n```\n\n## ตั้งค่า (config.lua)\n\n| คีย์ | ค่าเริ่มต้น | ความหมาย |\n|---|---|---|\n| `Config.position` | `middle-right` | ตำแหน่งเริ่มต้นของการ์ด (ใช้เมื่อสคริปต์ไม่ระบุตำแหน่ง) |\n| `Config.notificationSoundEnabled` | `true` | เปิดเสียงแจ้งเตือน |\n| `Config.Debug` | `false` | พิมพ์ทุกการแจ้งเตือนลงคอนโซลฝั่ง client |\n\n## ใช้ยังไง\n\n```lua\n-- ฝั่ง client\nexports['x3d_notify']:Notify(type, length, message, title, position, icon, iconBg)\nexports['x3d_notify']:Success(message, length, title, position)\nexports['x3d_notify']:Error(message, length, title, position)\nexports['x3d_notify']:Warning(message, length, title, position)\nexports['x3d_notify']:Info(message, length, title, position)\nexports['x3d_notify']:ClearAll()\nexports['x3d_notify']:SetConfig(position, soundEnabled)\n\n-- ฝั่ง server\nTriggerClientEvent('ESX:Notify', source, type, length, message, title, position)\n```\n\n`type` คือ `success` `error` `warning` `info` (คุมสีกับไอคอน)\n`length` คือเวลาแสดงเป็นมิลลิวินาที ถ้าไม่ใส่ใช้ 3000\n`title` ใส่อะไรก็ได้ ถ้าไม่ใส่การ์ดจะแสดงชื่อประเภทแทน\n`icon` \u002F `iconBg` คือรูปไอเทมและรูปกรอบระดับความหายาก\n`position` คือ `top-right` `top-left` `top-center` `bottom-right` `bottom-left` `bottom-center` `left-center` `right-center` `center` ถ้าไม่ใส่ใช้ `Config.position`\n\n### สีในข้อความ\n\n`~r~` แดง · `~g~` เขียว · `~b~` น้ำเงิน · `~y~` เหลือง · `~p~` ม่วง · `~o~` ส้ม · `~s~` กลับสีปกติ · `~br~` ขึ้นบรรทัดใหม่\n\n```lua\nexports['x3d_notify']:Error('เงินไม่พอ ต้องการ ~r~$5,000~s~', 4000, 'ใช้เงิน')\n```\n\n## คำสั่งทดสอบ\n\nพิมพ์ `\u002Ftestnotify` ในเกมเพื่อดูว่าการ์ดขึ้นปกติ\n","แจ้งเตือน FiveM ฟรี — 9 ตำแหน่ง ใส่ไอคอนไอเทมได้","การ์ดแจ้งเตือนสำหรับ ESX วางได้ 9 ตำแหน่งรอบจอ ใส่ไอคอนไอเทมและกรอบระดับความหายาก ใส่สีในข้อความได้ และฝังฟอนต์ไทยมาให้แล้ว",[62,65,67,69],{"kind":63,"url":64},"image","\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fmedia\u002F71807603939796d7.png",{"kind":63,"url":66},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fmedia\u002F47f52f279d014567.png",{"kind":63,"url":68},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fmedia\u002F5945e19eaa3e9d02.png",{"kind":63,"url":70},"\u002Fapi\u002Fv1\u002Fmedia\u002Fpublic\u002Fproducts\u002Fx3d-notify\u002Fmedia\u002Fb207dffa708fbc9c.png",[72,74,78],{"version":51,"released_at":52,"changelog_md":73},"### Changed\n\n- Store image for the 9 card positions no longer sits under its caption",{"version":75,"released_at":76,"changelog_md":77},"1.1.1","2026-10-12T03:20:30.950025Z","### 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":79,"released_at":80,"changelog_md":81},"1.0.0","2026-09-24T01:21:29.390212Z","First public release. Based on ESX Legacy `esx_notify` 1.13.4 (GPL-3.0).\r\n\r\n### Added\r\n\r\n- Nine card positions instead of four: the corners, each edge centre and the middle\r\n- Item icons with rarity frames, through the `icon` and `iconBg` parameters\r\n- `SetConfig` for the default position and sound, and `ClearAll` to clear the screen\r\n- A forwarding shim under `optional\u002F` keeps `exports['esx_notify']` working after the rename\r\n\r\n### Changed\r\n\r\n- The card UI is a Vue rewrite, replacing the original static HTML, CSS and JS\r\n- Noto Sans Thai embedded, so Thai renders as text\r\n- The cc_i18n include is gone",{"slug":23,"version":51,"latest_version":51,"files":83,"options":56},[84],{"path":85,"content":86},"config.lua","Config = {}\r\n\r\n-- ===== การแสดงผล \u002F Display =====\r\n\r\n-- ตำแหน่งเริ่มต้นของการ์ด ใช้เมื่อสคริปต์ที่เรียกไม่ระบุตำแหน่ง \u002F Default card position, used when the caller gives none\r\n-- ตัวเลือก \u002F Options: top-right, top-left, top-middle, bottom-right, bottom-left, bottom-middle, middle-left, middle-right\r\nConfig.position = \"middle-right\"\r\n\r\n-- ===== เสียง \u002F Sound =====\r\n\r\n-- เปิดเสียงแจ้งเตือน \u002F Enable notification sounds\r\nConfig.notificationSoundEnabled = true\r\n\r\n-- ===== ดีบัก \u002F Debug =====\r\n\r\n-- พิมพ์ทุกการแจ้งเตือนลงคอนโซล client \u002F Print every notification (type\u002Flength\u002Fmessage\u002F...) to the client console\r\nConfig.Debug = false\r\n",1792316309041]