FiveM Missing Dependency แก้อย่างไร
FiveM ขึ้น Missing Dependency หมายความว่า Resource ที่กำลังจะ Start ต้องพึ่งพา Resource หรือเงื่อนไขบางอย่าง แต่สิ่งที่ต้องการนั้น ไม่มี, FiveM หาไม่เจอ, ยังไม่ Start หรือ Server ไม่ผ่าน Requirement ที่ Resource กำหนด
ตัวอย่างเช่น
Missing dependency ox_lib for resource my-script
หรือ Resource อาจกำหนดใน fxmanifest.lua
dependency 'ox_lib'
หมายความว่า my-script ต้องการ ox_lib ให้พร้อมก่อนจึงจะสามารถทำงานตามที่ผู้พัฒนากำหนดได้
วิธีแก้แบบรวดเร็วคือ
อ่านข้อความ Missing Dependency
↓
ดูว่าขาด Resource อะไร
↓
ตรวจว่า Resource นั้นติดตั้งแล้วหรือไม่
↓
ตรวจชื่อ Resource
↓
ตรวจ fxmanifest.lua
↓
refresh
↓
ensure Dependency
↓
ensure Script หลัก
↓
ตรวจ Console อีกครั้ง
สิ่งสำคัญคือ อย่าลบ dependency ออกจาก fxmanifest.lua เพียงเพื่อให้ Error หาย เพราะถ้า Script ใช้ Dependency นั้นจริง Resource อาจ Start ผ่านแต่ระบบภายในจะ Error ในภายหลัง
① FiveM Dependency คืออะไร
Dependency คือ Resource หรือ Requirement ที่ Resource อื่นต้องพึ่งพา
ตัวอย่างง่าย ๆ
my-garage
↓
ต้องใช้
ox_lib
หรือ
my-phone
↓
Framework
↓
Inventory
↓
Database
FiveM รองรับการประกาศ Dependency ใน fxmanifest.lua โดยตรง
ตัวอย่าง
dependency 'ox_lib'
ถ้ามีหลายตัวสามารถเขียนเป็น
dependencies {
'ox_lib',
'oxmysql'
}
ตามเอกสาร Cfx.re การประกาศ dependency หมายถึง Resource ที่กำหนดไว้ต้องถูกโหลดก่อน Resource ปัจจุบัน
② Missing Dependency เกิดจากอะไร
สาเหตุที่พบบ่อย ได้แก่
ยังไม่ได้ติดตั้ง Dependency
Dependency อยู่ผิด Folder
ชื่อ Resource ไม่ตรง
มี Folder ซ้อน
Dependency ไม่มี
fxmanifest.luaServer ยังไม่ได้
refreshDependency ตัวนั้นเอง Start ไม่ได้
ดาวน์โหลด Package ผิด
Rename Resource
Resource ถูกลบไปแล้ว
Update Script แล้วมี Dependency ใหม่
Server ไม่ผ่าน Runtime Requirement
ดังนั้นคำว่า Missing Dependency ไม่ได้หมายความว่า Script หลักเสียเสมอไป
ปัญหามักอยู่กับสิ่งที่ Script หลักต้องใช้
③ อ่าน Error ก่อนว่า Script ต้องการอะไร
สมมติ Console ขึ้น
Missing dependency ox_lib for resource my-script
ข้อมูลสำคัญคือ
Resource ที่มีปัญหา = my-script
Dependency ที่ขาด = ox_lib
ดังนั้นอย่าเริ่มแก้ my-script ก่อน
ให้ตรวจ
resources/ox_lib/
ก่อน
นี่เป็นหลักสำคัญในการ Debug FiveM
ถ้า Error บอกชื่อ Dependency มาแล้ว ให้แก้ Dependency นั้นก่อน Resource ลูก
④ ตรวจว่าติดตั้ง Dependency แล้วหรือยัง
สมมติ Script ต้องใช้
ox_lib
ควรมี Resource อยู่ใน Server
ตัวอย่าง
resources/
├── ox_lib/
│ └── fxmanifest.lua
└── my-script/
└── fxmanifest.lua
หรือจัดไว้ใน Category
resources/
└── [ox]/
├── ox_lib/
│ └── fxmanifest.lua
└── my-script/
└── fxmanifest.lua
สิ่งสำคัญคือ Resource ox_lib ต้องถูก FiveM ตรวจพบ
ถ้าไม่มีอยู่เลย ก็ต้องติดตั้ง Dependency ตาม Documentation ของ Script ก่อน
⑤ มี Folder แล้วแต่ยัง Missing Dependency
การเห็น Folder ไม่ได้แปลว่า FiveM เห็น Resource
ตัวอย่าง
resources/
└── ox_lib/
└── ox_lib/
└── fxmanifest.lua
นี่คือปัญหา Folder ซ้อน
FiveM อาจไม่ได้ Parse Resource ที่ชื่อ ox_lib ตามที่คาดไว้
ควรเป็น
resources/
└── ox_lib/
└── fxmanifest.lua
ดังนั้นให้เข้าไปใน Folder Dependency แล้วตรวจว่า fxmanifest.lua อยู่ระดับหลักของ Resource หรือไม่
⑥ ตรวจชื่อ Resource ให้ตรง
ถ้า Script กำหนด
dependency 'ox_lib'
FiveM ก็คาดหวัง Dependency ชื่อ
ox_lib
หาก Download มาแล้ว Folder เป็น
ox_lib-main
หรือ
ox_lib-3.0
อาจไม่ตรงกับชื่อที่ Script และ Resource อื่นคาดหวัง
ถ้า Documentation ของ Dependency ระบุให้ตั้ง Folder เป็น
ox_lib
ก็ควรใช้ชื่อนั้น
อย่า Rename Core Dependency โดยไม่จำเป็น
⑦ ระวังชื่อจาก GitHub ZIP
กรณี Download Repository เป็น ZIP อาจได้ชื่อประมาณ
project-main
หรือ
ox_lib-main
ซึ่งอาจไม่ใช่ Resource Name ที่ระบบต้องการ
ก่อนนำเข้า Server ให้ตรวจ README หรือ Installation Guide ว่าต้อง Rename Folder หรือใช้ Release Package แบบใด
ตัวอย่าง
ox_lib-main
↓
ตรวจ Documentation
↓
อาจต้องใช้ชื่อ
ox_lib
Resource หลักหลายตัวถูก Script อื่นอ้างด้วยชื่อโดยตรง การเปลี่ยนชื่อจึงมีผลต่อ Dependency และ Export ได้
⑧ ใช้ refresh หลังติดตั้ง Dependency
ถ้า Server เปิดอยู่ก่อนแล้ว และเพิ่งนำ Dependency เข้า resources ให้ใช้
refresh
จากนั้นลอง
ensure ox_lib
แล้วค่อย
ensure my-script
ลำดับตัวอย่าง
refresh
ensure ox_lib
ensure my-script
refresh ทำให้ FXServer สแกน Resources Folder และ Resource Manifest ใหม่
ถ้าเพิ่ง Copy Dependency เข้ามาแต่ไม่ได้ Refresh Resource อาจยังไม่ถูกค้นพบใน Session ปัจจุบัน
⑨ Dependency ต้อง Start ก่อน Script หลักหรือไม่
โดยหลัก Dependency ที่ถูกกำหนดไว้ควรพร้อมก่อน Resource ที่พึ่งพามัน
ตัวอย่าง
ensure ox_lib
ensure my-script
ถ้า Script ใช้ oxmysql เพิ่มด้วย อาจเป็น
ensure oxmysql
ensure ox_lib
ensure my-script
แต่ลำดับจริงต้องดู Documentation ของ Script และ Framework ที่ใช้งาน
หลักจำง่ายคือ
สิ่งที่ถูกเรียกใช้
↓
ต้องพร้อมก่อน
↓
สิ่งที่เรียกใช้งานมัน
⑩ Dependency มีอยู่แต่ Start ไม่สำเร็จ
สมมติ Server มี
resources/ox_lib/
ครบ
แต่เมื่อสั่ง
ensure ox_lib
ตัว ox_lib เอง Error และไม่สามารถทำงานได้
จากนั้น
ensure my-script
ก็อาจมีปัญหาตาม
กรณีนี้ต้องแก้ Error ของ ox_lib ก่อน
ลำดับคือ
Dependency Error
↓
แก้ Dependency
↓
Dependency Start สำเร็จ
↓
ค่อย Start Script หลัก
อย่าแก้ Resource ลูกก่อน Core Dependency
⑪ หลาย Script Missing Dependency พร้อมกันต้องทำอย่างไร
สมมติ Console ขึ้น
Script A → ox_lib
Script B → ox_lib
Script C → ox_lib
Script D → ox_lib
อย่าแก้ Script A, B, C และ D ทีละตัว
Root Cause อาจมีเพียง
ox_lib
ตัวเดียว
ให้ตรวจ Dependency ร่วมก่อน
นี่เป็นหลักที่มีประโยชน์มากสำหรับ FiveM Server ขนาดใหญ่
Error จำนวนมาก
↓
หา Common Dependency
↓
แก้ Core ตัวเดียว
↓
Resource ลูกอาจกลับมาทำงานทั้งหมด
⑫ Missing ox_lib แก้อย่างไร
ถ้า Error ระบุ ox_lib ให้ตรวจ
resources/ox_lib/
ว่ามีจริงหรือไม่
จากนั้นตรวจ
resources/ox_lib/fxmanifest.lua
แล้วใช้
refresh
ensure ox_lib
ตรวจ Console ว่า ox_lib Start สำเร็จหรือไม่
จากนั้นจึง
ensure resource_name
Script ที่ต้องใช้ ox_lib บางตัวอาจกำหนดใน Manifest เช่น
shared_script '@ox_lib/init.lua'
ถ้าชื่อ Resource หรือโครงสร้างไม่ถูกต้อง Script ก็สามารถมีปัญหาได้
⑬ Missing oxmysql แก้อย่างไร
ถ้า Script ต้องใช้ oxmysql ต้องตรวจทั้ง Resource และ Database
เริ่มจาก
resources/oxmysql/
จากนั้นใน server.cfg อาจมี
ensure oxmysql
ก่อน Script ที่ใช้ Database
แต่การที่ oxmysql Start ได้ไม่ได้หมายความว่า Database Connection ถูกต้องเสมอไป
ควรตรวจ Console ของ oxmysql ด้วย
ถ้า oxmysql มีปัญหา Resource ที่ต้อง Query Database จำนวนมากอาจ Error ตามกัน
⑭ Missing Framework Dependency
Script บางตัวต้องใช้ Framework เช่น
ESX
QBCore
Qbox
ตัวอย่าง Resource อาจอ้าง Core Resource
es_extended
qb-core
qbx_core
ถ้า Framework ยังไม่ Start หรือชื่อไม่ตรง Script อาจไม่สามารถ Initialize ได้
ตรวจว่า Framework ที่ Script รองรับตรงกับ Server หรือไม่
ตัวอย่าง
Script = QBCore Only
Server = ESX
กรณีนี้การติดตั้ง qb-core เพิ่มเพียงเพื่อให้ Dependency Error หาย ไม่ใช่วิธีแก้ที่ถูกต้อง เพราะ Server ไม่ควรมี Framework หลักหลายตัวปะปนกันโดยไม่มีการออกแบบรองรับ
ควรใช้ Script เวอร์ชันที่รองรับ Framework ของ Server
⑮ QBCore Script บน Qbox ต้องตรวจอะไร
Qbox มีระบบ Compatibility สำหรับส่วนหนึ่งของ QBCore ecosystem แต่ไม่ควรถือว่า QB Script ทุกตัวจะทำงานได้ 100% โดยไม่ตรวจสอบ
ถ้า QBCore Script แจ้ง Dependency ที่เกี่ยวกับ
qb-core
ขณะที่ Server ใช้ Qbox ให้ตรวจ Documentation ของ Script และ Qbox ก่อน
Script บางตัวอาจรองรับ Qbox ผ่าน Compatibility Layer
บางตัวมี Qbox Version แยก
บางตัวต้องแก้ Bridge
และบางตัวอาจไม่รองรับเลย
อย่าติดตั้ง Core Framework ซ้ำเพียงเพื่อกำจัด Error โดยไม่เข้าใจผลกระทบ
⑯ Dependency ผ่าน Config ต่างจาก Manifest Dependency
Dependency ไม่ได้ถูกประกาศใน fxmanifest.lua ทุกตัว
Script บางตัวใช้ Config เช่น
Config.Inventory = 'ox_inventory'
Config.Target = 'ox_target'
Resource อาจ Start ได้แม้ ox_inventory หรือ ox_target ไม่มี แต่ Feature บางส่วนจะใช้งานไม่ได้
จึงมีสองกรณีที่ควรแยก
Hard Dependency
กำหนดใน Manifest และจำเป็นสำหรับ Resource Startup
Integration Dependency
ระบบภายในต้องใช้ตาม Configuration แต่ Resource อาจ Start ได้ก่อน
ดังนั้นแม้ไม่มีข้อความ Missing Dependency ก็ยังควรอ่าน Requirements ของ Script
⑰ ตรวจ fxmanifest.lua ของ Script หลัก
เปิด
my-script/fxmanifest.lua
แล้วค้นหา
dependency
หรือ
dependencies
ตัวอย่าง
dependencies {
'ox_lib',
'oxmysql',
'some-resource'
}
จากนั้นตรวจทีละตัวว่า
ติดตั้งหรือยัง
↓
FiveM มองเห็นหรือไม่
↓
Start สำเร็จหรือไม่
นี่เป็นวิธีที่เร็วมากในการทำรายการ Requirement พื้นฐานของ Resource
⑱ dependency กับ dependencies ต่างกันอย่างไร
FiveM รองรับทั้งการประกาศ Dependency เดียว
dependency 'my-resource'
และหลาย Dependency
dependencies {
'resource-a',
'resource-b'
}
ความหมายหลักเหมือนกัน คือ Resource ปัจจุบันต้องการ Resource ที่ระบุให้โหลดก่อน
ดังนั้นถ้าเจอรูปแบบใดรูปแบบหนึ่งใน fxmanifest.lua ไม่ต้องตกใจ
ให้ตรวจ Resource ที่อยู่ในรายการทั้งหมด
⑲ อย่าลบ dependency เพื่อให้ Resource Start
สมมติ Manifest มี
dependency 'ox_lib'
แต่ Server ไม่มี ox_lib
บางคนอาจแก้เป็น
-- dependency 'ox_lib'
แล้วลอง Start ใหม่
วิธีนี้อาจทำให้ขั้นตรวจ Requirement บางส่วนหายไป แต่เมื่อ Code เรียก Function ของ ox_lib จริงก็อาจเกิด
No such export
nil value
SCRIPT ERROR
ตามมา
ดังนั้นควรแก้ต้นเหตุคือ ติดตั้งและทำให้ Dependency ทำงาน ไม่ใช่ซ่อน Requirement
⑳ Runtime Dependency ไม่ได้มีแค่ Resource
FiveM รองรับ Dependency ใน fxmanifest.lua ที่ใช้กำหนด Runtime Constraint ได้ด้วย
ตัวอย่างเช่น
dependencies {
'/server:4500',
'/onesync',
'/gameBuild:h4'
}
แนวคิดคือ Resource สามารถกำหนด Requirement เช่น
Server Build ขั้นต่ำ
OneSync
Game Build
Server Policy
Native บางตัว
ดังนั้น Error เรื่อง Dependency บางครั้งไม่ได้หมายถึง “ขาด Script”
อาจหมายถึง Environment ของ Server ไม่ตรง Requirement
㉑ /server Dependency คืออะไร
ตัวอย่าง
dependency '/server:4500'
หมายความว่า Resource ต้องการ Server Build ขั้นต่ำตามที่กำหนด
ถ้า FXServer เก่าเกินไป การแก้ที่ถูกต้องคือ
ตรวจ Server Version
↓
Backup
↓
Update FXServer
↓
ทดสอบ Resource
ไม่ควรลบ
/server:4500
จาก Manifest เพียงเพื่อให้ Resource ผ่านการตรวจ เพราะ Code อาจต้องใช้ความสามารถที่มีใน Server Build ใหม่จริง ๆ
㉒ /onesync Dependency คืออะไร
Resource สามารถกำหนด Requirement ว่าต้องใช้ State Awareness/OneSync
ตัวอย่าง
dependency '/onesync'
ถ้า Server Environment ไม่ตรง Requirement Resource อาจไม่สามารถทำงานได้
กรณีนี้ควรตรวจ Configuration ของ Server และ Documentation ของ Resource
อย่าลบ Requirement ออกโดยไม่รู้ว่า Script ใช้ OneSync ในส่วนใด
㉓ /gameBuild Dependency คืออะไร
บาง Script, Map หรือระบบอาจต้องใช้ Game Build ขั้นต่ำ
ตัวอย่างเชิงโครงสร้าง
dependency '/gameBuild:h4'
ถ้า Server ตั้ง Game Build ต่ำกว่า Resource ต้องการ ก็อาจไม่ผ่าน Requirement
ควรตรวจ
Resource Documentation
Game Build Requirement
sv_enforceGameBuild
ก่อนแก้
โดยเฉพาะ Resource ที่ใช้ Content, Native หรือ Asset จาก GTA V Update ใหม่
㉔ Dependency Version เก่าเกินไป
FiveM Manifest สามารถกำหนด Resource Dependency แต่ Third-party Script อาจมี Requirement เรื่อง เวอร์ชัน เพิ่มเติมใน Documentation
ตัวอย่าง
Requires ox_lib รุ่นที่รองรับ API ชุดนี้
Server อาจมี ox_lib อยู่แล้ว จึงไม่ขึ้น Missing Dependency แบบตรง ๆ แต่ Script ยัง Error เพราะ API ไม่ตรง
อาการที่อาจพบคือ
No such export
attempt to call a nil value
ดังนั้นเมื่อ Dependency “มีแล้ว” แต่ยังใช้ไม่ได้ ให้ตรวจ Version Compatibility ต่อ
㉕ Update Script แล้ว Missing Dependency
ถ้าก่อน Update Script ใช้งานปกติ แต่ Version ใหม่ขึ้น Missing Dependency ให้เปิด Changelog ก่อน
Version ใหม่อาจเพิ่ม Requirement เช่น
v1
↓
Framework + Database
v2
↓
Framework + Database + Library
ถ้านำ v2 มาทับโดยไม่อ่าน Requirements Resource ก็อาจ Start ไม่ได้
วิธีที่ถูกต้องคือ
อ่าน Changelog
↓
ตรวจ Dependencies ใหม่
↓
ติดตั้ง Dependency
↓
จัด Start Order
↓
Update Script
ไม่ใช่ Downgrade แบบสุ่มทันที
㉖ Update Dependency แล้ว Script พัง
ปัญหากลับกันก็เกิดได้
ตัวอย่าง
Script A ใช้ Library รุ่นเก่า
↓
Update Library
↓
API เปลี่ยน
↓
Script A Error
แม้ Resource Dependency จะ “มีอยู่” แต่ Compatibility อาจเปลี่ยน
หาก Error เริ่มหลัง Update Dependency ให้ตรวจ
Changelog ของ Dependency
Breaking Changes
Version ที่ Script รองรับ
Export/API ที่เปลี่ยน
Script Update ใหม่
อย่า Update Core Dependency หลายตัวพร้อมกันบน Production Server
㉗ Start Order แก้ Missing Dependency ได้หรือไม่
บางกรณีได้ โดยเฉพาะ Dependency ที่มีอยู่แล้วแต่ถูกเรียกผิดลำดับ
ตัวอย่างไม่เหมาะสม
ensure my-script
ensure ox_lib
ควรเป็น
ensure ox_lib
ensure my-script
แต่ถ้า Resource ไม่มีอยู่เลย การเปลี่ยนลำดับไม่ได้ช่วย
จึงต้องแยกก่อนว่า
ไม่มี Resource
หรือ
มี Resource แต่ยังไม่พร้อม
㉘ Category ทำให้ Start Order สับสนได้
สมมติ
resources/
├── [core]/
│ └── framework/
└── [scripts]/
└── my-script/
แล้ว server.cfg
ensure [scripts]
ensure [core]
ถ้า Script ใน [scripts] ต้องใช้ Core ใน [core] อาจเกิดปัญหาตอน Startup
ควรจัด Dependency Group ให้ชัดเจน
ตัวอย่างแนวคิด
ensure [core]
ensure [libraries]
ensure [scripts]
แต่ต้องตรวจ Resource ภายในแต่ละ Category ด้วย ไม่ควรเชื่อว่าชื่อ Category สามารถจัด Dependency ให้อัตโนมัติ
㉙ Missing Dependency หลัง Rename Resource
สมมติเดิมมี
ox_lib
แล้ว Rename เป็น
my_ox_lib
แต่ Script ยังประกาศ
dependency 'ox_lib'
FiveM ก็จะมองว่า ox_lib ไม่มี
นี่เป็นเหตุผลที่ไม่ควร Rename Framework, Library และ Core Resource โดยไม่มีความจำเป็น
ถ้าเพิ่ง Rename แล้ว Error เริ่มเกิด ให้คืน Resource Name เดิมเพื่อทดสอบก่อน
㉚ Missing Dependency หลังย้าย Server
ถ้าย้าย Server จากเครื่องเก่าไปเครื่องใหม่แล้ว Resource จำนวนมาก Missing Dependency ให้ตรวจว่า Copy File มาครบหรือไม่
บางครั้ง Backup อาจมีเฉพาะ
[jobs]
[custom]
แต่ลืม
[libraries]
[standalone]
[ox]
หรือ Resource Core บางตัว
ให้เปรียบเทียบ resources ระหว่าง Server เก่ากับ Server ใหม่
รวมทั้งตรวจ
server.cfg
Database
Resource Version
ด้วย
㉛ Dependency อยู่ใน Server แต่ FiveM หาไม่เจอ
ให้กลับไปตรวจ Resource Discovery
ตัวอย่าง
resources/
└── ox_lib/
└── ox_lib/
└── fxmanifest.lua
หรือ
resources/
└── ox_lib/
└── fxmanifest.lua.txt
ทั้งสองกรณีอาจทำให้ Resource ไม่ถูก Parse ตามที่คาดหวัง
ให้ตรวจ
Folder
Manifest
Resource Name
Server Data Path
แล้วใช้
refresh
ก่อนทดสอบใหม่
㉜ Dependency อยู่ผิด txAdmin Profile
ถ้ามี Test Server และ Production Server ให้ระวังมาก
ตัวอย่าง
Production Profile
→ server-data-prod
Test Profile
→ server-data-test
คุณอาจติดตั้ง Dependency ใน
server-data-test/resources
แต่ Server ที่กำลัง Run คือ Production
ผลคือ Script หลักยัง Missing Dependency
ตรวจ Server Data Path ที่ txAdmin Profile ใช้จริงก่อนแก้ Resource
㉝ อย่าติดตั้ง Dependency ซ้ำหลายชุด
ตัวอย่างไม่ควรเกิด
resources/
├── ox_lib/
├── [core]/ox_lib/
└── [scripts]/ox_lib-old/
การมี Resource หลาย Version หรือหลาย Copy ทำให้ Server Configuration และการ Update สับสน
ควรมี Resource ที่ใช้งานจริงอย่างชัดเจนหนึ่งชุดตามโครงสร้างที่ระบบต้องการ
โดยเฉพาะ Core Library และ Database Resource
㉞ Missing Dependency กับ No Such Export ต่างกันอย่างไร
สอง Error นี้เกี่ยวข้องกันแต่ไม่เหมือนกัน
Missing Dependency
Resource ที่ต้องใช้ไม่มีหรือไม่ผ่าน Requirement
Resource A
↓
ต้องการ Resource B
↓
B ไม่มี/ไม่พร้อม
No Such Export
Resource B อาจมีและ Start แล้ว แต่ Function/Export ที่ Resource A เรียกไม่มี
Resource A
↓
เรียก Export X จาก B
↓
B ไม่มี Export X
กรณี No Such Export มักต้องตรวจ Version/API เพิ่ม
ดังนั้นอย่าแก้สอง Error นี้ด้วยวิธีเดียวกันทุกครั้ง
㉟ Missing Dependency กับ Couldn't Find Resource ต่างกันอย่างไร
Couldn't Find Resource
FiveM หา Resource ที่คุณสั่ง Start ไม่เจอ
ensure my-script
↓
my-script ไม่พบ
Missing Dependency
FiveM พบ my-script แล้ว แต่ my-script ต้องการ Resource อื่น
my-script พบแล้ว
↓
ต้องใช้ ox_lib
↓
ox_lib ไม่พร้อม
ดังนั้น
Couldn't Find Resource → ตรวจ Resource หลัก
Missing Dependency → ตรวจ Resource ที่ Resource หลักพึ่งพา
การแยกสองกรณีนี้ช่วยลดเวลาหาปัญหาได้มาก
㊱ วิธีแก้ Missing Dependency แบบเร็วที่สุด
สมมติ Error คือ
Missing dependency ox_lib for resource my-script
ทำตามนี้
ขั้นที่ 1
ตรวจ
resources/ox_lib/
ขั้นที่ 2
ตรวจ
resources/ox_lib/fxmanifest.lua
ขั้นที่ 3
ถ้าไม่มี ox_lib ให้ติดตั้งจากแหล่งที่ผู้พัฒนาระบุ
ขั้นที่ 4
ใช้
refresh
ขั้นที่ 5
ใช้
ensure ox_lib
ขั้นที่ 6
ตรวจว่า ox_lib Start สำเร็จ
ขั้นที่ 7
ใช้
ensure my-script
ขั้นที่ 8
ตรวจ Error ใหม่
ถ้า Error เปลี่ยนไป ให้แก้ Error ตัวใหม่ตามสาเหตุ ไม่ควรกลับไปแก้ Dependency เดิมหากมันทำงานแล้ว
㊲ ถ้ามี Dependency หลายชั้นต้องแก้จากไหน
บางระบบมีลักษณะ
Script A
↓
ต้องใช้ Script B
↓
Script B ต้องใช้ Library C
↓
Library C ต้องใช้ Requirement D
ถ้า A Start ไม่ได้ ให้ลงไปแก้จากส่วนล่างสุดที่ล้มเหลวก่อน
ตัวอย่าง
A Missing B
B Missing C
C ไม่ผ่าน Requirement
ต้องแก้ C หรือ Requirement ของ C ก่อน
จากนั้น
C พร้อม
↓
B พร้อม
↓
A พร้อม
นี่คือเหตุผลที่ Error แรกใน Console มีความสำคัญมาก
㊳ ไม่ควร Download Dependency แบบสุ่ม
ถ้า Script ต้องใช้ Dependency ชื่อหนึ่ง อย่า Search แล้วโหลด Version แรกที่เจอโดยไม่ดู Source
ควรใช้
Official Repository
Official Documentation
Developer ที่ Script ระบุ
Release ที่ Compatible
เพราะ Resource ที่มีชื่อเหมือนกันแต่เป็น Fork คนละตัวอาจใช้ API ไม่เหมือนกัน
และ Resource จากแหล่งที่ไม่รู้จักมีความเสี่ยงด้านความปลอดภัย โดยเฉพาะ Server-side Code
㊴ Checklist FiveM Missing Dependency
ตรวจ Error
รู้ชื่อ Resource หลัก
รู้ชื่อ Dependency ที่ขาด
Copy Error เต็มไว้แล้ว
ตรวจ Dependency
Dependency มีใน
resourcesFolder ไม่ซ้อน
ชื่อ Resource ถูก
มี
fxmanifest.luaDownload Package ถูกตัว
Version รองรับ
ตรวจ Server
refreshแล้วDependency Start สำเร็จ
Start Order ถูก
server.cfgถูกtxAdmin Profile ถูก
ตรวจ Framework
Script รองรับ Framework ที่ใช้
ไม่ติดตั้ง Framework ซ้ำเพื่อแก้ Error
Bridge/Compatibility ถูกต้อง
ตรวจ Runtime Requirement
Server Build ตรง
OneSync ตรง
Game Build ตรง
Policy/Native Requirement ตรงถ้ามี
หลังแก้
Dependency ไม่มี Error
Resource หลัก Start
Server Console ไม่มี Error ต่อเนื่อง
F8 ไม่มี Client Error สำคัญ
Feature จริงใช้งานได้
Restart Server แล้ว Startup ยังถูกต้อง
สรุป FiveM Missing Dependency แก้อย่างไร
FiveM Missing Dependency หมายความว่า Resource หลัก ต้องพึ่งพา Resource หรือ Requirement อื่นที่ยังไม่พร้อม
ตัวอย่าง
dependency 'ox_lib'
หมายความว่า Resource ต้องการ ox_lib ให้โหลดก่อน
ถ้าขึ้น
Missing dependency ox_lib
ให้ตรวจ
resources/ox_lib/
↓
fxmanifest.lua
↓
refresh
↓
ensure ox_lib
↓
ensure script หลัก
ถ้ามี Resource อยู่แล้วแต่ยัง Error ให้ตรวจชื่อ Resource, Folder ซ้อน, Resource Manifest, Start Order และ Version Compatibility
อย่าลบ dependency ออกจาก fxmanifest.lua เพื่อให้ข้อความ Error หาย เพราะนั่นเพียงซ่อน Requirement แต่ไม่ได้ทำให้ Code ที่ต้องใช้ Dependency สามารถทำงานได้
สิ่งที่ comsiam แนะนำคือ เมื่อหลาย Script Error พร้อมกันให้หา Dependency ร่วมก่อน เช่น Framework, ox_lib หรือ oxmysql เพราะการแก้ Core Resource เพียงตัวเดียวอาจทำให้ Error ของ Resource ลูกหลายตัวหายพร้อมกัน
และสำหรับ Production Server comsiam แนะนำให้อัปเดต Dependency ทีละตัวพร้อม Backup และทดสอบ Script ที่พึ่งพามันก่อนเสมอ เพราะ Library หรือ Framework เพียงตัวเดียวอาจถูกใช้งานโดย Resource จำนวนมากทั่วทั้ง Server
Comments
Post a Comment