การแก้ปัญหาที่พบบ่อย (Troubleshooting)
คำแนะนำการแก้ไขปัญหาและข้อผิดพลาดที่พบบ่อยใน Devil Market
รวมคำถามและปัญหาที่ผู้ดูแลเซิร์ฟเวอร์มักพบเจอในการติดตั้งและใช้งาน Devil Market พร้อมแนวทางการแก้ไขปัญหาอย่างทีละขั้นตอน
1. ปัญหารูปภาพสินค้าไม่ขึ้น (Image 404 / Broken Image)
สาเหตุ
เกิดจากค่า ImagePath ใน config_main.lua ไม่ตรงกับพาธเก็บรูปของสคริปต์ Inventory บนเซิร์ฟเวอร์ของคุณ
วิธีแก้ไข
เปิดไฟล์ devil_market/config/config_main.lua แล้วแก้ไข ImagePath:
-- ตัวอย่างสำหรับ nc_inventory
Config_Main.Settings.ImagePath = "nui://nc_inventory/html/img/items"
-- ตัวอย่างสำหรับ ox_inventory
-- Config_Main.Settings.ImagePath = "nui://ox_inventory/web/images"
-- ตัวอย่างสำหรับ esx_inventoryhud
-- Config_Main.Settings.ImagePath = "nui://esx_inventoryhud/html/img/items"ข้อสังเกต
ชื่อไฟล์รูปภาพในโฟลเดอร์ inventory ต้องตรงกับ spawnName ของไอเทม (เช่น water.png, bread.png)
2. ปัญหาเกี่ยวกับฐานข้อมูล (Database Error / JSON Support)
สาเหตุ
ตาราง devil_purchase_history และ devil_payment_sessions มีคอลัมน์ประเภท JSON ซึ่งต้องการ MySQL 5.7+ หรือ MariaDB 10.2+
ข้อความ error ที่พบ
1064 - You have an error in your SQL syntax near 'JSON NULL DEFAULT NULL'วิธีแก้ไข
- อัปเกรดระบบฐานข้อมูลบนเซิร์ฟเวอร์ MySQL/MariaDB ให้เป็นเวอร์ชันปัจจุบัน
- หากไม่สามารถอัปเกรดได้ ให้เปลี่ยนประเภทคอลัมน์
JSONในไฟล์@installme.sqlเป็นLONGTEXTก่อนนำเข้าอีกครั้ง:
-- เปลี่ยนจาก
`metadata` JSON NULL DEFAULT NULL
-- เป็น
`metadata` LONGTEXT NULL DEFAULT NULL3. ปัญหา Addon หรือบริการภายนอกไม่ทำงาน (Devil Market Addons Offline)
สาเหตุ
devil_marketaddons (ระบบตรวจสลิป / Stripe / Discord Bot) เป็น Node.js application ไม่ใช่ FiveM Lua Resource
ข้อผิดพลาดที่พบ
- ใน NUI หน้าเติมเงินแสดงข้อความ "บริการไม่พร้อมใช้งาน" หรือ "Connection Failed"
- กดสร้าง QR Code แล้วหมุนค้าง
วิธีแก้ไข
- ตรวจสอบว่าได้สั่งเปิด
devil_marketaddonsแยกต่างหากหรือยัง (ผ่านstart.batหรือnode index.js) - ตรวจสอบไฟล์
.envในโฟลเดอร์devil_marketaddons:PORTต้องตรงกับ URL ที่config_topup.luaเรียกใช้ (ค่าเริ่มต้น3000)DB_HOST,DB_USER,DB_PASS,DB_NAMEกำหนดถูกต้องแล้ว
- ตรวจสอบว่าได้สั่งรัน
npm installภายในโฟลเดอร์devil_marketaddonsเรียบร้อยแล้ว
4. ปัญหาคำสั่ง Admin ใช้งานไม่ได้ (Insufficient Permission)
สาเหตุ
ชื่อ ESX Admin Group ในเซิร์ฟเวอร์ของคุณไม่ตรงกับค่าเริ่มต้นใน config_admins.lua
วิธีแก้ไข
เปิดไฟล์ devil_market/config/config_admins.lua แล้วแก้ไขฟังก์ชัน IsAdmin:
local function IsAdmin(source)
local xPlayer = ESX.GetPlayerFromId(source)
if not xPlayer then return false end
local group = xPlayer.getGroup()
-- แก้ไขรายชื่อ group ให้ตรงกับ ESX ของเซิร์ฟเวอร์คุณ
return group == 'admin' or group == 'superadmin' or group == 'owner'
end5. ปัญหาสลิปเติมเงินถูกปฏิเสธหรือไม่ได้รับ Point
สาเหตุ
- สลิปหมดอายุ (เกินค่า
slipMaxAgeMinutesในconfig_topup.lua) - สลิปเดิมถูกนำมาใช้ซ้ำ (Duplicate Slip Detection)
- ยอดเงินโอนจริงไม่ตรงกับยอดที่เลือกเติมในเกม
วิธีแก้ไข
- ตรวจสอบ Log การเติมเงินใน Console ของ
devil_marketaddons - ตรวจสอบตาราง
devil_payment_sessionsในฐานข้อมูลเพื่อดูสถานะstatus(pending,verified,completed,rejected) - ปรับค่า
slipMaxAgeMinutesในconfig_topup.luaให้เหมาะสมกับความต้องการของเซิร์ฟเวอร์