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.lua

  • Server ยังไม่ได้ refresh

  • Dependency ตัวนั้นเอง 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 มีใน resources

  • Folder ไม่ซ้อน

  • ชื่อ Resource ถูก

  • มี fxmanifest.lua

  • Download 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

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด