FiveM Script ไม่ทำงาน แก้อย่างไร
FiveM Script ไม่ทำงานหลังติดตั้ง เป็นหนึ่งในปัญหาที่เจ้าของเซิร์ฟเวอร์เจอบ่อยที่สุด อาการมีได้ตั้งแต่ Resource เปิดไม่ได้, Script Start แล้วแต่ไม่มีระบบในเกม, เมนูไม่ขึ้น, กดใช้งานไม่ได้, Database ไม่บันทึก ไปจนถึง Script ทำงานเฉพาะบางส่วน
สิ่งสำคัญคืออย่าเริ่มแก้ด้วยการลบ Script แล้วติดตั้งใหม่ซ้ำ ๆ เพราะต้นเหตุส่วนใหญ่มักอยู่ที่ Resource, Dependency, Framework, Config, Database, Start Order หรือ Error ใน Console
ถ้าต้องการหาปัญหาให้เร็ว ให้ตรวจตามลำดับนี้
Resource ถูกพบหรือไม่
↓
Resource Start หรือไม่
↓
Console มี Error หรือไม่
↓
Dependency ครบหรือไม่
↓
Framework ตรงหรือไม่
↓
Config ถูกหรือไม่
↓
Database พร้อมหรือไม่
↓
F8 มี Client Error หรือไม่
↓
ทดสอบระบบจริง
บทความนี้จะไล่ตรวจทีละจุด ตั้งแต่ปัญหาพื้นฐานที่สุดจนถึงกรณี Script Start แล้วแต่ยังใช้งานไม่ได้
① ตรวจว่า FiveM มองเห็น Resource หรือไม่
เริ่มจากตรวจสอบก่อนว่า Resource อยู่ในตำแหน่งที่ถูกต้อง
ตัวอย่าง
resources/
└── my-script/
├── fxmanifest.lua
├── client/
├── server/
└── config.lua
จุดสำคัญคือ Resource ต้องมี fxmanifest.lua อยู่ในระดับที่ FiveM สามารถตรวจพบได้
ปัญหาที่เกิดบ่อยคือโฟลเดอร์ซ้อน
ผิด:
resources/
└── my-script/
└── my-script/
├── fxmanifest.lua
├── client.lua
└── server.lua
ควรเป็น:
resources/
└── my-script/
├── fxmanifest.lua
├── client.lua
└── server.lua
หากเพิ่งเพิ่ม Resource ขณะที่ Server เปิดอยู่ ให้ใช้
refresh
เพื่อให้ FiveM สแกน Resources และ Resource Manifest ใหม่
จากนั้นลอง
ensure my-script
ถ้า FiveM หา Resource ไม่พบ ให้ตรวจชื่อ Folder และตำแหน่งไฟล์ก่อนเรื่องอื่น
② ตรวจชื่อ Resource ให้ตรง
สมมติชื่อ Folder จริงคือ
my-garage
แต่ใน server.cfg เขียน
ensure mygarage
ชื่อไม่ตรงกันจึงไม่สามารถเรียก Resource ที่ต้องการได้
ควรเป็น
ensure my-garage
ตรวจชื่ออย่างละเอียด โดยเฉพาะ
เครื่องหมาย
-_ตัวสะกด
ชื่อ Folder หลังแตก ZIP
Folder ซ้อน
Resource ที่ถูก Rename
Script บางตัวอาจอ้างชื่อ Resource ของตัวเองจาก Script อื่นด้วย ดังนั้นไม่ควร Rename Resource โดยพลการหาก Developer ระบุว่าต้องใช้ชื่อเดิม
③ ตรวจ fxmanifest.lua
ถ้า Resource ถูกพบแต่ทำงานผิดปกติ ให้เปิด
fxmanifest.lua
ตรวจดูว่า File ที่ Script ต้องใช้ถูกประกาศครบหรือไม่
ตัวอย่าง
fx_version 'cerulean'
game 'gta5'
shared_script 'config.lua'
client_scripts {
'client/*.lua'
}
server_scripts {
'server/*.lua'
}
หาก Manifest ระบุ
client_script 'client.lua'
แต่ไฟล์จริงชื่อ
main.lua
Script ฝั่ง Client ก็ไม่ถูกโหลดตามที่ตั้งไว้
กรณีใช้ Wildcard เช่น
client_scripts {
'client/*.lua'
}
ต้องตรวจด้วยว่าไฟล์อยู่ใน Folder client จริง
④ ดู Server Console ก่อนแก้อะไร
ขั้นตอนที่สำคัญที่สุดคือ อ่าน Error
หลังสั่ง
ensure my-script
ให้ดูข้อความใน Server Console
คำที่ควรสังเกต เช่น
SCRIPT ERROR
ERROR
Missing dependency
Couldn't find resource
No such export
Failed
Table doesn't exist
Unknown column
อย่าเห็นเพียง
Started resource my-script
แล้วสรุปว่า Script ไม่มีปัญหา
Resource สามารถ Start สำเร็จ แต่ Code บางส่วน Error ภายหลังเมื่อถูกเรียกใช้งานได้
ถ้า Error มีชื่อไฟล์และเลขบรรทัด
ตัวอย่างเชิงแนวคิด
SCRIPT ERROR: @my-script/server/main.lua:125
ข้อมูลนี้มีประโยชน์มาก เพราะชี้ไปยัง
Resource: my-script
File: server/main.lua
Line: 125
ควรเริ่มตรวจบริเวณนั้นและดู Error ที่อยู่ก่อนหน้า ไม่ใช่แก้ Script แบบสุ่ม
⑤ ตรวจ Client Console ด้วย F8
FiveM Script มีทั้ง Client-side และ Server-side
ดังนั้นบางครั้ง Server Console ไม่มี Error แต่ผู้เล่นใช้งาน Script ไม่ได้ เพราะ Error เกิดฝั่ง Client
เข้า Server แล้วกด
F8
จากนั้นลองใช้งาน Feature ที่มีปัญหาอีกครั้ง
ตัวอย่างเช่น
เปิด Garage
↓
กด F8
↓
ดู Error ที่เกิดขึ้น
อาการที่มักเกี่ยวข้องกับ Client Error เช่น
Menu ไม่เปิด
Marker ไม่ขึ้น
Target ไม่ทำงาน
UI ไม่แสดง
Animation ไม่เล่น
Interaction ใช้ไม่ได้
NUI มีปัญหา
ดังนั้นการ Debug FiveM ควรดูทั้ง Server Console และ F8
⑥ ตรวจ Dependency ว่าครบหรือไม่
Script จำนวนมากไม่สามารถทำงานคนเดียวได้
อาจต้องใช้ Resource เช่น
ox_lib
oxmysql
ox_target
Framework
Inventory
Target
Voice
ตัวอย่าง Script อาจระบุใน fxmanifest.lua
dependency 'ox_lib'
หรือ
dependencies {
'ox_lib',
'oxmysql'
}
หาก Dependency ไม่ครบ Resource อาจ Start ไม่ได้ หรือระบบบางส่วนไม่ทำงาน
วิธีตรวจที่ดีที่สุดคืออ่าน
README
Documentation
Requirements
Dependencies
Installation
ของ Script นั้น
อย่าดาวน์โหลดเฉพาะ Resource หลักแล้วคิดว่าไฟล์ทั้งหมดที่จำเป็นอยู่ภายใน Package เสมอไป
⑦ Dependency มีแล้ว แต่ Version อาจไม่ตรง
อีกกรณีหนึ่งคือ Server มี Dependency อยู่แล้ว แต่เป็น Version ที่ Script ไม่รองรับ
ตัวอย่างเชิงแนวคิด
Script ใหม่
↓
ต้องใช้ Library API ใหม่
↓
Server ใช้ Library รุ่นเก่า
↓
เรียก Function/Export ไม่พบ
อาจนำไปสู่ Error เช่น
No such export
ดังนั้นต้องตรวจทั้ง
ติดตั้ง Dependency หรือยัง
และ
Dependency Version รองรับหรือไม่
อย่าอัปเดต Library หรือ Framework หลักแบบสุ่มเพื่อแก้ Script ตัวเดียว เพราะ Resource อื่นใน Server อาจได้รับผลกระทบตามมา
⑧ ตรวจลำดับการ Start Resource
แม้ Dependency จะติดตั้งครบ แต่ถ้า Start ผิดลำดับ Script ก็อาจมีปัญหาได้
สมมติ my-script ต้องใช้ ox_lib
ควรให้ Resource ที่ถูกพึ่งพาพร้อมก่อน
ensure ox_lib
ensure my-script
ไม่ควรจัดแบบนี้หาก Script ต้องเรียก Library ตั้งแต่ตอน Start
ensure my-script
ensure ox_lib
ตัวอย่างภาพรวม
Database
↓
Core / Framework
↓
Libraries
↓
ระบบพื้นฐาน
↓
Custom Scripts
ลำดับจริงของแต่ละ Server แตกต่างกัน จึงต้องยึด Documentation ของ Framework และ Script เป็นหลัก
⑨ ตรวจ Framework ให้ตรง
FiveM Script สำหรับ RP จำนวนมากสร้างขึ้นสำหรับ Framework เฉพาะ
เช่น
ESX
QBCore
Qbox
Standalone
ถ้า Script ระบุว่า
QBCore Only
แต่ Server ใช้ ESX ก็ไม่ควรคาดหวังว่าจะ Copy เข้าไปแล้วทำงานทันที
Script ที่รองรับหลาย Framework อาจมี Config เช่น
Config.Framework = 'esx'
หรือ
Config.Framework = 'qb'
หรือ
Config.Framework = 'qbox'
ต้องตั้งให้ตรงกับ Server
Auto Detect ก็ไม่ได้หมายความว่าไม่มีปัญหา
บาง Script ตรวจ Framework อัตโนมัติ แต่ถ้า
Rename Core Resource
Framework Start ช้า
ใช้ Fork
ใช้ Version ที่ไม่รองรับ
ระบบ Auto Detect ก็อาจตรวจผิดได้
⑩ ตรวจ config.lua ให้ละเอียด
Script ไม่ทำงานจำนวนมากเกิดจาก Config มากกว่า Code เสีย
เปิดไฟล์ที่เกี่ยวข้อง เช่น
config.lua
shared/config.lua
config/
settings.lua
ตรวจค่าประเภท
Framework
Inventory
Target
Notification
Language
Job
Item
Coordinates
Permission
Debug
ตัวอย่าง
Config.Job = 'police'
แต่ Server ใช้ชื่อ Job
police_department
ผู้เล่นก็อาจไม่ผ่านเงื่อนไขและดูเหมือนว่า Script ไม่ทำงาน
หรือ Script กำหนด
Config.Inventory = 'ox_inventory'
แต่ Server ใช้ Inventory คนละตัว ก็ต้องตั้ง Integration ให้ตรง
⑪ เปิด Debug Mode ถ้า Script รองรับ
Script หลายตัวมีตัวเลือก
Config.Debug = false
เมื่อกำลังหาปัญหา อาจเปลี่ยนเป็น
Config.Debug = true
ถ้า Documentation ระบุว่ารองรับ
Debug Mode อาจแสดงข้อมูลเพิ่ม เช่น
Zone
Event
Framework
Data
Target
Interaction
Callback
ช่วยให้ค้นหาต้นเหตุได้ง่ายขึ้น
เมื่อแก้เสร็จแล้ว หาก Developer ไม่แนะนำให้เปิดตลอด ควรปิดกลับ
Config.Debug = false
โดยเฉพาะ Production Server
⑫ ตรวจ SQL และ Database
ถ้า Resource Start ได้ แต่ระบบที่ต้องบันทึกข้อมูลไม่ทำงาน ให้ตรวจ Database
Script อาจมาพร้อมไฟล์
install.sql
database.sql
migration.sql
ถ้ายังไม่ได้ Import อาจพบ Error เช่น
Table doesn't exist
หรือ Version ใหม่เปลี่ยน Schema แล้ว Database ยังเป็นของเก่า อาจพบ
Unknown column
ตรวจว่า
Import SQL แล้วหรือยัง
ใช้ Database ถูกตัวหรือไม่
Table ถูกสร้างหรือไม่
Column ครบหรือไม่
Migration ครบหรือไม่
Database Connector ทำงานหรือไม่
อย่า Import SQL ซ้ำหลายครั้งโดยไม่ดูเนื้อหาก่อน เพราะบาง Script อาจมี Migration ที่ต้องทำตามลำดับ
⑬ ตรวจ oxmysql ถ้า Script ใช้ Database
หาก Script ใช้ oxmysql ให้ตรวจว่า Resource ทำงานอยู่
ตัวอย่างใน server.cfg
ensure oxmysql
และ Script ที่ต้องใช้ Database ควรทำงานเมื่อ Database Connector พร้อมแล้ว
ถ้า oxmysql เองเชื่อม Database ไม่ได้ Script ที่ใช้มันจำนวนมากก็สามารถมีปัญหาตามกันได้
กรณีที่หลาย Script Error เรื่อง Database พร้อมกัน จึงไม่ควรรีบสรุปว่า Script ทุกตัวเสีย ให้ตรวจ Database Connector และ Connection ก่อน
⑭ ตรวจ Item ที่ Script ต้องใช้
ระบบจำนวนมากต้องใช้ Item
เช่น Script ตกปลาอาจต้องมี
fishing_rod
bait
fish
ถ้า Resource ติดตั้งแล้วแต่ Item ยังไม่ได้เพิ่มเข้าสู่ Inventory หรือ Framework ระบบบางส่วนอาจไม่สามารถทำงานได้
ตรวจ Documentation ว่าต้องเพิ่ม
Item Name
Label
Weight
Image
Metadata
หรือไม่
และตรวจให้ชื่อ Item ตรงทุกจุด
ตัวอย่าง
Script เรียก
repairkit
แต่ระบบ Item มี
repair_kit
ถือว่าเป็นคนละชื่อ
⑮ ตรวจ Job และ Job Grade
Script อาชีพมักตรวจ Job ของผู้เล่น
ตัวอย่าง
Config.Job = 'police'
หากผู้เล่นใช้ Job อื่น เมนูหรือ Interaction อาจไม่แสดง
ต้องตรวจ
Job Name
Job Grade
Boss Grade
Duty
Society
Permission
บาง Server อาจใช้ระบบ On Duty/Off Duty ดังนั้นการเป็นตำรวจอย่างเดียวอาจยังไม่ผ่านเงื่อนไข หากผู้เล่นยังไม่ได้เข้า Duty
เมื่อ Script “ไม่ขึ้นอะไรเลย” จุดนี้ควรตรวจด้วย
⑯ ตรวจ Coordinates และระยะ Interaction
บางครั้ง Script ทำงานปกติทุกอย่าง แต่ตำแหน่งถูกตั้งผิด
ตัวอย่าง
Config.Location = vector3(100.0, 200.0, 30.0)
ถ้าพิกัดไม่ตรงกับ Map ที่ Server ใช้ ผู้เล่นอาจไม่พบ Marker หรือ Target
ตรวจ
X
Y
Z
Heading
Interaction Distance
Zone Size
ถ้า Script รองรับ Debug Zone ให้เปิดชั่วคราว จะช่วยเห็นพื้นที่ Interaction ได้ง่ายขึ้น
⑰ Target ไม่ทำงานต้องตรวจอะไร
ถ้า Script ใช้ Target เช่น ox_target หรือ Target System อื่น ให้ตรวจว่า
Target Resource ทำงานอยู่
Script ตั้ง Target Integration ถูกตัว
Resource Start Order ถูก
Model/Entity/Zone ถูกต้อง
Job Requirement ถูก
Distance ถูก
Client ไม่มี Error
ตัวอย่าง
Config.Target = 'ox_target'
แต่ Server ไม่ได้ใช้ ox_target ก็ต้องเปลี่ยน Integration ให้ตรงหาก Script รองรับ
⑱ Menu หรือ UI ไม่ขึ้น
ถ้า Script ทำงานแต่ Menu ไม่เปิด อาจเกี่ยวข้องกับ NUI หรือ Library
ตรวจ F8 ก่อน
Resource ที่มี Interface อาจมีโครงสร้าง
html/
web/
dist/
build/
และ fxmanifest.lua อาจประกาศ
ui_page 'html/index.html'
รวมทั้ง
files {
'html/index.html',
'html/style.css',
'html/script.js'
}
หาก Download Source Version ที่ต้อง Build Front-end ก่อน แต่ไม่มีไฟล์ dist หรือ build ที่พร้อมใช้งาน UI อาจไม่ทำงาน
ควรทำตาม Installation Guide ของ Script โดยตรง
⑲ No Such Export แก้อย่างไรเบื้องต้น
ถ้า Console แสดง
No such export
หมายความโดยทั่วไปว่า Resource กำลังเรียก Export ที่ไม่พบจาก Resource เป้าหมาย
ตรวจ
Resource เป้าหมาย Start แล้วหรือยัง
ชื่อ Resource ถูกหรือไม่
Version เข้ากันหรือไม่
Export เปลี่ยนชื่อหรือไม่
Start Order ถูกหรือไม่
ตัวอย่างเชิงแนวคิด
my-script
↓
เรียก Export จาก inventory
↓
inventory ยังไม่ Start
↓
เกิด Error
หรือ Script รุ่นเก่าเรียก API ที่ Version ใหม่ยกเลิกไปแล้ว
ในกรณีนี้ควรตรวจ Documentation ของ Script ทั้งสองฝั่ง
⑳ Event ไม่ทำงานต้องตรวจอะไร
FiveM Script จำนวนมากสื่อสารกันผ่าน Event
ถ้า Event ถูกเปลี่ยนชื่อ ถูกลบ หรือเรียกผิดฝั่ง ระบบบางส่วนอาจไม่ทำงาน
ตัวอย่างแนวคิด
Client
↓
Trigger Server Event
↓
Server ตรวจข้อมูล
↓
ส่งผลกลับ
หากมี Error ในขั้นกลาง ผู้เล่นอาจเห็นเพียง “กดแล้วไม่มีอะไรเกิดขึ้น”
จึงควรตรวจ
F8
Server Console
Event Name
Resource Version
Framework Integration
ก่อนเข้าไปแก้ Event เอง
㉑ Resource Started แต่ใช้งานไม่ได้
กรณี Console แสดง
Started resource my-script
แต่เข้าเกมแล้วระบบไม่ทำงาน อย่าเสียเวลากับการสั่ง Start ซ้ำอย่างเดียว
ให้ข้ามไปตรวจ
Config
Framework
Dependency
Database
F8
Job
Item
Target
Permissions
Integration
เพราะคำว่า Started บอกเพียงว่า FiveM Start Resource ได้ ไม่ได้รับประกันว่า Workflow ภายในทั้งหมดทำงานถูกต้อง
หัวข้อนี้เป็นสาเหตุที่ทำให้เจ้าของ Server จำนวนมากคิดว่า FiveM มีปัญหา ทั้งที่ Resource Start สำเร็จแต่ Configuration ยังไม่ครบ
㉒ Script ทำงานเฉพาะ Admin แต่ผู้เล่นใช้ไม่ได้
กรณีนี้ควรตรวจ Permission
Script อาจตรวจ
ACE Permission
Framework Group
Job
Grade
Identifier
Discord Role
Admin Group
ตัวอย่าง Resource อาจทำงานเมื่อผู้เล่นมี Job
police
หรือ Group
admin
หาก Account ทดสอบไม่มี Permission ระบบอาจไม่แสดงอะไร
ดังนั้นควรทดสอบทั้ง Account Admin และ Player ปกติเมื่อระบบเกี่ยวข้องกับสิทธิ์
㉓ Script เคยใช้ได้ แต่หลังอัปเดตไม่ทำงาน
ถ้าปัญหาเกิดหลัง Update ให้เปรียบเทียบสิ่งที่เปลี่ยนทันที
ตรวจ
Changelog
Config
fxmanifest.lua
Dependencies
SQL Migration
Exports
Events
Framework Support
ข้อผิดพลาดที่พบบ่อยคือใช้ Version ใหม่ แต่ Copy config.lua เก่าทับทั้งหมด
Config ใหม่ที่ Developer เพิ่มเข้ามาจึงหาย
อีกกรณีคือ Script ใหม่ต้องใช้ Dependency Version ใหม่ แต่ Server ยังใช้ Version เดิม
ถ้ามี Backup ให้ทดสอบ Rollback เพื่อยืนยันว่าปัญหาเริ่มจาก Update จริงหรือไม่
㉔ Script หยุดทำงานหลังเปลี่ยน Framework
ถ้าเพิ่งเปลี่ยนจาก Framework หนึ่งไปอีก Framework เช่น
QBCore → Qbox
หรือเปลี่ยนระบบหลักอื่น ไม่ควรคาดหวังว่า Script เดิมทุกตัวจะทำงานต่อโดยอัตโนมัติ
ต้องตรวจ
Framework Bridge
Player Data
Jobs
Money
Items
Callbacks
Events
Exports
Database
Script บางตัวรองรับหลาย Framework ผ่าน Bridge แต่บางตัวผูกกับ Framework เดิมโดยตรง
จึงต้องเช็ก Compatibility เป็นราย Resource
㉕ Script หยุดทำงานหลังเปลี่ยน Inventory
Inventory เป็นระบบที่ Script อื่นเชื่อมต่อเยอะมาก
เมื่อเปลี่ยน Inventory อาจต้องแก้
Exports
Item Functions
Stash
Trunk
Metadata
Weapon
Config.Inventory
ดังนั้นถ้าหลาย Script มีปัญหาหลังเปลี่ยน Inventory ให้ตรวจ Integration ก่อนแก้ Script แต่ละตัวแยกกัน
หลักเดียวกันใช้กับ Target, Notification และ Framework
㉖ Restart Script แล้วจะหายไหม
บาง Error อาจหายจากการ Restart Resource หากเกิดจาก State ชั่วคราว
สามารถลอง
restart my-script
หรือ
ensure my-script
แต่ถ้าปัญหาเกิดจาก
Dependency หาย
SQL ไม่มี
Config ผิด
Export ไม่มี
Framework ไม่รองรับ
Restart กี่ครั้งก็ไม่แก้ต้นเหตุ
ดังนั้นถ้า Restart แล้ว Error เดิมกลับมา ให้หยุด Restart ซ้ำและอ่านข้อความ Error แทน
㉗ ต้องล้าง Cache หรือไม่
การล้าง Cache ไม่ควรเป็นคำตอบแรกของทุกปัญหา FiveM Script
หาก Error ชี้ชัดว่า
Missing dependency
No such export
SQL Error
Config Error
การล้าง Cache ไม่ได้แก้สิ่งเหล่านี้
ควรใช้ Cache troubleshooting เฉพาะเมื่ออาการและเอกสารของระบบนั้นชี้ไปทาง Cache จริง
หลักที่ดีกว่าคือ
อ่าน Error
↓
ระบุต้นเหตุ
↓
แก้ต้นเหตุ
ไม่ใช่
Script ไม่ทำงาน
↓
ล้าง Cache ทุกอย่าง
㉘ อย่าแก้ Script หลายตัวพร้อมกัน
สมมติ Phone ไม่ทำงาน
อย่าอัปเดตพร้อมกันทั้ง
Framework
ox_lib
Inventory
Phone
Target
Database
เพราะหลังจากนั้นจะไม่รู้ว่าการเปลี่ยนตัวใดทำให้ปัญหาดีขึ้นหรือแย่ลง
ควรเปลี่ยนทีละอย่าง
แก้จุด A
↓
ทดสอบ
↓
จดผล
↓
แก้จุด B
↓
ทดสอบ
นี่คือหลัก Debug ที่ช่วยประหยัดเวลาได้มากที่สุดอย่างหนึ่ง
㉙ วิธีหา Script ตัวที่ทำ Server มีปัญหา
ถ้าปัญหาเกิดหลังติดตั้ง Resource ใหม่ ให้ย้อนดูสิ่งที่เปลี่ยนล่าสุดก่อน
สมมติเมื่อวาน Server ทำงานปกติ วันนี้เพิ่ม
new-phone
new-garage
new-job
แล้วเกิด Error
ควร Disable ทีละ Resource ไม่ใช่ลบทั้งหมด
ตัวอย่าง
# ensure new-phone
ensure new-garage
ensure new-job
Restart แล้วทดสอบ
จากนั้นเปลี่ยนทีละตัวเพื่อหาว่า Resource ใดสัมพันธ์กับปัญหา
หากติดตั้ง Script ทีละตัวตั้งแต่แรก ขั้นตอนนี้จะง่ายกว่ามาก
㉚ ลำดับแก้ FiveM Script ไม่ทำงานที่แนะนำ
ถ้าไม่รู้ว่าจะเริ่มตรงไหน ให้ใช้ลำดับนี้
ขั้นที่ 1 — ดู Resource
resources/my-script/
มีจริงหรือไม่
ขั้นที่ 2 — ดู Manifest
fxmanifest.lua
อยู่ถูกตำแหน่งหรือไม่
ขั้นที่ 3 — Refresh
refresh
ขั้นที่ 4 — Ensure
ensure my-script
ขั้นที่ 5 — อ่าน Server Console
หา Error แรกที่เกี่ยวข้อง
ขั้นที่ 6 — ตรวจ Dependency
ติดตั้งครบและ Version ถูกหรือไม่
ขั้นที่ 7 — ตรวจ Framework
ESX/QBCore/Qbox/Standalone ตรงหรือไม่
ขั้นที่ 8 — ตรวจ Config
Framework, Inventory, Job, Item และ Target ถูกหรือไม่
ขั้นที่ 9 — ตรวจ Database
SQL และ Migration ครบหรือไม่
ขั้นที่ 10 — เข้าเกมดู F8
หา Client Error
ขั้นที่ 11 — ทดสอบ Feature จริง
ตรวจ Workflow ตั้งแต่ต้นจนจบ
ขั้นที่ 12 — เปลี่ยนทีละจุด
อย่าแก้หลายอย่างพร้อมกัน
นี่เป็นลำดับที่ comsiam แนะนำ เพราะช่วยตัดสาเหตุจากง่ายไปยากและลดการแก้ Code โดยไม่จำเป็น
Checklist FiveM Script ไม่ทำงาน
ก่อนสรุปว่า Script เสีย ตรวจให้ครบดังนี้
Resource
Resource อยู่ใน
resourcesไม่มี Folder ซ้อนผิด
ชื่อ Resource ถูก
มี
fxmanifest.luarefreshแล้วensureได้
Server
Server Console ไม่มี Error สำคัญ
Start Order ถูก
Dependency ครบ
Dependency Version รองรับ
Framework ตรง
Resource Core ทำงาน
Configuration
Config ถูกต้อง
Framework ถูกตัว
Inventory ถูกตัว
Target ถูกตัว
Job ถูก
Grade ถูก
Item มีอยู่จริง
Coordinates ถูก
Database
Database เชื่อมต่อได้
SQL Import แล้ว
Table มีอยู่
Column ครบ
Migration แล้ว
Client
F8 ไม่มี Error
Menu เปิด
Target ทำงาน
UI ทำงาน
Interaction ทำงาน
ถ้ายังไม่ทำงานหลังตรวจครบแล้ว จึงค่อยเจาะไปยัง Code, Event, Callback หรือ Export ของ Script นั้นโดยตรง
สรุป FiveM Script ไม่ทำงาน แก้อย่างไร
ถ้า FiveM Script ไม่ทำงาน สิ่งแรกที่ควรทำคือ อย่าเดาและอย่า Restart ซ้ำไปเรื่อย ๆ
ให้เริ่มจากตรวจว่า Resource ถูกพบหรือไม่ มี fxmanifest.lua หรือไม่ จากนั้นใช้
refresh
ensure resource_name
แล้วอ่านข้อความใน Server Console
หาก Resource Start ได้แต่ระบบยังใช้งานไม่ได้ ให้ตรวจต่อที่ Dependency, Framework, Config, Database, Item, Job, Target และ Client F8
ปัญหาส่วนใหญ่สามารถแบ่งได้ง่าย ๆ เป็น
Resource ไม่ถูกโหลด
Dependency ไม่พร้อม
Configuration ไม่ตรง
Database ไม่พร้อม
Framework ไม่ Compatible
Client/Server Script เกิด Error
เมื่อแยกได้ว่าอยู่กลุ่มไหน การแก้จะเร็วขึ้นมาก
สิ่งที่ comsiam แนะนำมากที่สุดคือให้แก้ทีละจุดและทดสอบทุกครั้ง อย่าอัปเดต Framework, Library และ Script หลายตัวพร้อมกันเพียงเพื่อทดลอง เพราะจะทำให้ต้นเหตุซ่อนลึกกว่าเดิม
สำหรับ Production Server ให้ Backup ก่อนแก้ไขเสมอ และถ้า Script เพิ่งเสียหลังการติดตั้งหรืออัปเดต ให้ย้อนตรวจการเปลี่ยนแปลงล่าสุดก่อน เพราะมักเป็นจุดที่พาไปหาสาเหตุได้เร็วที่สุด
Comments
Post a Comment