FiveM Couldn't Find Resource แก้อย่างไร
FiveM ขึ้น Error Couldn't find resource หมายความว่า FXServer ไม่สามารถค้นหา Resource ตามชื่อที่สั่ง start หรือ ensure ได้ โดยสาเหตุที่พบบ่อยที่สุดคือ ชื่อ Resource ผิด, วาง Script ผิดโฟลเดอร์, มีโฟลเดอร์ซ้อน, ไม่มี fxmanifest.lua, ยังไม่ได้ refresh หรือกำลังแก้ Resource อยู่ใน Server Data คนละชุดกับที่ Server ใช้งานจริง
ตัวอย่าง Error
Couldn't find resource my-script
ให้ตรวจตามลำดับนี้ก่อน
ชื่อ Resource
↓
ตำแหน่งโฟลเดอร์
↓
โฟลเดอร์ซ้อนหรือไม่
↓
fxmanifest.lua
↓
refresh
↓
ensure resource_name
↓
server.cfg
↓
Server Data / txAdmin Profile
ส่วนใหญ่ไม่จำเป็นต้องติดตั้ง FXServer ใหม่ และไม่ควรเริ่มจากการล้าง Cache เพราะ Error นี้เกี่ยวข้องกับการค้นหา Resource โดยตรง
① Couldn't Find Resource คืออะไร
FiveM Server ทำงานโดยโหลด Resource จากโฟลเดอร์
resources/
เมื่อเราใช้คำสั่ง
ensure my-script
FXServer จะค้นหา Resource ชื่อ my-script
ถ้าหาไม่พบ จะเกิด Error ประเภท
Couldn't find resource my-script
ดังนั้น Error นี้ต่างจากกรณี
Resource Start แล้วแต่ Script Error
เพราะกรณี Couldn't Find Resource หมายถึง Server ยังไม่สามารถระบุ Resource ที่เรากำลังเรียกได้ตั้งแต่ต้น
② ตรวจชื่อ Resource ก่อนเป็นอันดับแรก
สมมติโฟลเดอร์จริงชื่อ
my-garage
แต่ใน server.cfg เขียน
ensure mygarage
FiveM จะมองเป็นคนละชื่อ
ควรเป็น
ensure my-garage
อีกตัวอย่าง
ชื่อจริง
ox_inventory
แต่เขียน
ensure ox-inventory
ก็ไม่ตรงกัน
ให้ตรวจให้ละเอียดเรื่อง
-_ตัวเลข
ตัวสะกด
Space
ตัวอักษรที่เพิ่มมาในชื่อ ZIP
หลักง่ายที่สุดคือ Copy ชื่อโฟลเดอร์ Resource แล้วนำไปใช้กับ ensure เพื่อลดความผิดพลาดจากการพิมพ์
③ ตรวจว่า Resource อยู่ใน resources หรือไม่
ตามโครงสร้าง FiveM Resource ต้องอยู่ภายใต้โฟลเดอร์ resources ของ Server Data
ตัวอย่างถูกต้อง
server-data/
├── resources/
│ └── my-script/
│ ├── fxmanifest.lua
│ ├── client.lua
│ └── server.lua
└── server.cfg
จากนั้นใช้
ensure my-script
ตัวอย่างที่ผิด
server-data/
├── my-script/
│ └── fxmanifest.lua
└── resources/
แม้ Resource จะมีไฟล์ครบ แต่ถ้าอยู่นอก resources Server ก็จะไม่โหลด Resource ตามโครงสร้างปกติ
④ ปัญหาโฟลเดอร์ซ้อนเป็นสาเหตุยอดนิยม
หลังดาวน์โหลด Script แล้วแตก ZIP อาจได้
my-script/
└── my-script/
├── fxmanifest.lua
├── client.lua
└── server.lua
ถ้านำ Folder ชั้นนอกไปวาง จะกลายเป็น
resources/
└── my-script/
└── my-script/
└── fxmanifest.lua
โครงสร้างนี้ผิดสำหรับ Resource ที่ต้องการเรียกชื่อ my-script
ควรจัดให้เป็น
resources/
└── my-script/
├── fxmanifest.lua
├── client.lua
└── server.lua
วิธีตรวจง่ายที่สุดคือเปิด Folder ที่จะใช้เป็น Resource แล้วดูว่าเห็น
fxmanifest.lua
อยู่ในระดับหลักหรือไม่
⑤ ตรวจ fxmanifest.lua
FiveM Resource ต้องมี Resource Manifest เพื่อให้ Server Parse Resource ได้
ปัจจุบันไฟล์หลักคือ
fxmanifest.lua
ตัวอย่างพื้นฐาน
fx_version 'cerulean'
game 'gta5'
client_script 'client.lua'
server_script 'server.lua'
เอกสาร Cfx.re ระบุว่าแต่ละ Resource Folder ต้องมี fxmanifest.lua หรือ Manifest รุ่นเก่าอย่าง __resource.lua จึงจะถูก Parse เป็น Resource อย่างถูกต้อง
หากไม่มี Manifest อาจพบ Warning ประเภท
does not have a resource manifest
ดังนั้นถ้า ensure หา Resource ไม่พบ ให้ตรวจ Manifest ด้วย
⑥ ชื่อไฟล์ต้องเป็น fxmanifest.lua จริง ๆ
บน Windows บางครั้งเปิดการซ่อนนามสกุลไฟล์ไว้ ทำให้สร้างไฟล์ชื่อ
fxmanifest.lua.txt
แต่ Explorer แสดงเหมือนเป็น
fxmanifest.lua
FiveM จะไม่มองไฟล์ .txt นี้เป็น Manifest ที่ถูกต้อง
ควรเปิดการแสดง File Extensions แล้วตรวจชื่อจริง
ต้องเป็น
fxmanifest.lua
ไม่ใช่
fxmanifest.lua.txt
fxmanifest.txt
FXmanifest.lua.txt
นี่เป็นปัญหาที่มือใหม่สร้าง Resource เองเจอได้บ่อย
⑦ ใช้ refresh หลังเพิ่ม Resource ใหม่
ถ้า FXServer เปิดอยู่ก่อนแล้ว และเพิ่ง Copy Resource เข้าไป Server อาจยังไม่ได้สแกน Resource ใหม่นั้น
ให้ใช้
refresh
ใน Server Console
ตามเอกสาร Cfx.re คำสั่ง refresh จะสแกน Resources Folder ใหม่และอ่าน Resource Manifest เพื่อทำให้ Resource ใหม่พร้อมสำหรับการ Start
จากนั้นลอง
ensure my-script
ขั้นตอนคือ
เพิ่ม Resource
↓
refresh
↓
ensure my-script
สำหรับกรณี Resource ใหม่ นี่ควรเป็นหนึ่งในขั้นตอนแรกที่ทดลอง
⑧ refresh แล้วดูข้อความใน Console
หลังพิมพ์
refresh
อย่ารีบพิมพ์ ensure แล้วข้ามข้อความทั้งหมด
ให้ดูว่า Console มี Warning เกี่ยวกับ Resource หรือไม่
เช่น
does not have a resource manifest
ถ้าพบข้อความนี้ แสดงว่า Server เห็น Folder แล้ว แต่ไม่สามารถ Parse เป็น Resource ที่ถูกต้องได้
ดังนั้นปัญหาอาจไม่ได้อยู่ที่ ensure แต่เป็นโครงสร้าง Resource หรือ Manifest
⑨ ลอง ensure หลัง refresh
หลัง refresh ให้ลอง
ensure my-script
ตามเอกสาร FiveM พฤติกรรมของ ensure คือ
ถ้า Resource ยังไม่ได้ Start → Start
ถ้า Resource ทำงานอยู่ → Restart
ถ้ายังขึ้น
Couldn't find resource my-script
หลัง refresh แล้ว ให้กลับไปตรวจชื่อ Resource, Folder และ Manifest ไม่ควร Restart Server ซ้ำโดยไม่มีการเปลี่ยนแปลงใด ๆ
⑩ start กับ ensure ใช้แก้ปัญหานี้ได้เหมือนกันไหม
สามารถใช้
start my-script
เพื่อ Start Resource ที่หยุดอยู่ได้
หรือ
ensure my-script
แต่ถ้า Server หา Resource ไม่พบ ทั้ง start และ ensure ก็ไม่สามารถแก้ได้
ตัวอย่าง
Couldn't find resource my-script
ปัญหาอยู่ก่อนขั้นตอน Start แล้ว
ดังนั้นการเปลี่ยนจาก
ensure my-script
เป็น
start my-script
ไม่ใช่คำตอบ หากชื่อหรือโครงสร้าง Resource ผิด
⑪ ตรวจ server.cfg
ถ้า Error เกิดตอนเปิด Server ให้ดู server.cfg
อาจมี
ensure my-script
แต่ Resource ถูก Rename หรือถูกลบไปแล้ว
ตัวอย่างเดิมชื่อ
my-script
แต่เปลี่ยน Folder เป็น
my-script-v2
ใน server.cfg ยังเป็น
ensure my-script
Server จึงหา Resource เดิมไม่พบ
หาก Resource ใหม่ต้องใช้ชื่อ
my-script-v2
ก็ต้องแก้ Configuration ให้ตรง แต่ก่อน Rename Resource ควรตรวจ Documentation เพราะ Script บางตัวคาดหวัง Resource Name เดิม
⑫ ตรวจไฟล์ cfg อื่นด้วย
บาง Server ไม่ได้เก็บ ensure ทั้งหมดไว้ใน server.cfg
อาจมี
exec resources.cfg
หรือ
exec framework.cfg
exec jobs.cfg
แล้ว Error มาจากไฟล์เหล่านั้น
ตัวอย่าง
server.cfg
exec resources.cfg
และ resources.cfg
ensure old-script
หากลบ old-script ไปแล้ว Server จะยังพยายาม Start อยู่
จึงควร Search ชื่อ Resource ใน Configuration Files ทั้งหมดที่ถูก exec
⑬ ตรวจ Server Data ให้ถูกชุด
กรณีนี้ทำให้เสียเวลาได้มาก
สมมติมี Server Data สองชุด
C:\FiveM\server-data\
C:\FiveM\test-server-data\
คุณนำ Script ไปใส่
test-server-data/resources/
แต่ FXServer กำลังเปิดจาก
server-data/
ต่อให้ใช้
refresh
กี่ครั้ง Resource ก็ไม่ปรากฏ
ให้ตรวจว่า Command หรือ txAdmin Profile กำลังใช้ Server Data Directory ตัวไหนจริง
นี่เป็นจุดที่ควรตรวจทันทีหาก
Folder ถูก
Manifest ถูก
ชื่อถูก
refresh แล้ว
แต่ Server ยังหา Resource ไม่พบ
⑭ ใช้ txAdmin แล้วต้องตรวจ Profile
ถ้ามีหลาย txAdmin Profile อาจเกิดเหตุการณ์ว่า
Profile A → Production
Profile B → Test Server
แต่คุณ Upload Resource ไปยัง Folder ของ Profile B ขณะที่กำลังเปิด Profile A
ผลคือ FiveM หา Resource ไม่เจอ
ให้ตรวจ
Profile ที่กำลัง Run
Server Data Path
server.cfgที่ Profile ใช้resourcesFolder ของ Profile นั้น
อย่าอาศัยเพียงชื่อ Folder ใน File Manager เพราะ Server Hosting บางระบบมี Config หลายชุด
⑮ Resource อยู่ใน Category ได้หรือไม่
ได้
FiveM รองรับ Folder Category ที่อยู่ในวงเล็บเหลี่ยม
ตัวอย่าง
resources/
└── [jobs]/
├── policejob/
│ └── fxmanifest.lua
├── ambulancejob/
│ └── fxmanifest.lua
└── mechanicjob/
└── fxmanifest.lua
Resource ที่มีอยู่จริงคือ
policejob
ambulancejob
mechanicjob
ส่วน
[jobs]
เป็น Category
สามารถใช้
ensure [jobs]
เพื่อจัดการทั้ง Category ได้
หรือ
ensure policejob
เพื่อ Start ราย Resource
⑯ อย่าสับสน Category กับ Resource
จากโครงสร้าง
[jobs]/
└── policejob/
└── fxmanifest.lua
policejob คือ Resource
[jobs] คือ Category
ถ้าพยายามใช้ชื่อ Folder อื่นที่ไม่ตรงกับ Resource จริง อาจหาไม่พบ
Category สามารถซ้อนกันได้ตามโครงสร้างที่ FiveM รองรับ แต่ Resource จริงยังต้องเป็น Folder ที่มี Resource Manifest
⑰ Folder ที่มี [ ] ไม่ใช่ Resource เสมอไป
ตัวอย่าง
resources/
└── [standalone]/
└── my-script/
└── fxmanifest.lua
ไม่ควรย้าย fxmanifest.lua ไปไว้ตรง
[standalone]/fxmanifest.lua
เพียงเพราะต้องการให้ Category ทำงาน
Category มีไว้จัด Resource หลายตัว ไม่จำเป็นต้องมี Manifest ของตัวเอง
Resource คือ
my-script
และต้องมี
my-script/fxmanifest.lua
⑱ Download จาก GitHub แล้ว Resource หาไม่เจอ
GitHub Repository บางโปรเจกต์ไม่ได้มี Resource พร้อมใช้งานอยู่ที่ Root Folder เสมอไป
ตัวอย่างอาจได้
project-main/
├── source/
├── docs/
├── package.json
└── resources/
└── my-script/
└── fxmanifest.lua
ถ้านำ
project-main/
ทั้ง Folder ไปวางใน FiveM resources อาจไม่ใช่ Resource ที่ถูกต้อง
ต้องอ่าน README หรือ Release Instructions ว่า Folder ไหนเป็น Resource จริง
หลักสำคัญคือค้นหา
fxmanifest.lua
และดูโครงสร้างของ Project ก่อนติดตั้ง
⑲ อย่าใช้ชื่อ ZIP เป็นชื่อ Resource โดยอัตโนมัติ
สมมติดาวน์โหลดแล้วได้
ox_lib-3.30.0.zip
หลังแตกอาจเป็น
ox_lib-3.30.0/
แต่ Script อื่นอาจอ้าง Resource Name
ox_lib
หาก Documentation ระบุให้ตั้งชื่อ Folder เป็น ox_lib ก็ควรใช้ชื่อนั้น
เพราะ Dependency อาจเรียก
dependency 'ox_lib'
หรือ Resource อื่นอาจอ้างชื่อโดยตรง
ดังนั้น Version Number ที่ GitHub หรือเว็บไซต์ดาวน์โหลดเติมใน Folder อาจต้องเอาออกตาม Installation Guide
⑳ Resource ถูก Rename แล้วหาไม่เจอ
ตัวอย่างเดิม
my_phone
แล้วเปลี่ยนเป็น
cool-phone
แต่ server.cfg ยังใช้
ensure my_phone
ก็เกิด Couldn't Find Resource
นอกจากนี้ Resource อื่นอาจเรียก
my_phone
ผ่าน Dependency หรือ Export
ดังนั้นการ Rename Resource ควรทำเมื่อรู้ว่า Script รองรับ ไม่ควร Rename ทุก Script เพื่อจัดชื่อ Server ให้สวย
㉑ Resource Name มี Space ควรทำอย่างไร
การตั้งชื่อ Resource ควรใช้ชื่อที่เรียบง่าย เช่น
my-script
my_script
policejob
แทนชื่อแบบ
My Police Script New Version
ชื่อ Folder ที่มี Space หรือ Character แปลกทำให้ Configuration และ Integration จัดการยากขึ้นโดยไม่จำเป็น
หากผู้พัฒนากำหนดชื่อ Resource มาแล้ว ควรใช้ชื่อที่แนะนำ
㉒ Resource อยู่ใน Folder แต่ไม่มี Manifest
ตัวอย่าง
resources/
└── my-script/
├── README.md
├── source/
└── package.json
แต่ไม่มี
fxmanifest.lua
นี่อาจหมายถึงคุณ Download Source Project ที่ต้อง Build ก่อน ไม่ใช่ Release พร้อมใช้
โดยเฉพาะ Resource ที่ใช้
TypeScript
React
Vue
C#
Build Tools
อาจต้อง Build ก่อนจึงได้ Resource Package ที่ FiveM สามารถใช้งานได้
ควรอ่าน Documentation ของโปรเจกต์ ไม่ควรสร้าง Manifest ขึ้นมาเองแบบเดา
㉓ มี fxmanifest.lua แต่ FiveM ยังไม่เห็น
ให้ตรวจว่าไฟล์อยู่ในระดับ Resource จริงหรือไม่
ผิด
resources/
└── my-script/
└── src/
└── fxmanifest.lua
หาก my-script เป็น Folder ที่คุณต้องการ Start แต่ Manifest อยู่ใน src
FiveM อาจตีความโครงสร้างไม่ตรงกับที่คาดไว้
ถ้า Resource จริงคือ src คุณอาจต้องใช้ Folder นั้นตาม Documentation
โครงสร้างทั่วไปควรเป็น
resources/
└── my-script/
└── fxmanifest.lua
㉔ Manifest ชื่อผิดแม้ต่างแค่ตัวเดียว
ตรวจชื่อ
fxmanifest.lua
ให้ถูกต้อง
ตัวอย่างผิด
fxmanifest.lau
fxmanfiest.lua
fx_manifest.lua
manifest.lua
FiveM ต้องการชื่อ Resource Manifest ที่รองรับตามรูปแบบที่กำหนด
ถ้า Download Script จาก Source ที่เชื่อถือได้แล้ว Manifest หายหรือชื่อผิด ควรตรวจว่าแตก Package ถูก Folder หรือไม่ก่อนแก้เอง
㉕ Resource เก่าใช้ __resource.lua ได้หรือไม่
เอกสาร Cfx.re ยังกล่าวถึง
__resource.lua
ในฐานะ Manifest แบบเก่า
แต่สำหรับ Resource ใหม่ควรใช้
fxmanifest.lua
หากเป็น Script เก่ามาก ควรตรวจ Compatibility กับ Server ปัจจุบันก่อนนำมาใช้ Production
ไม่ควรเปลี่ยนแค่ชื่อ
__resource.lua
เป็น
fxmanifest.lua
โดยไม่ตรวจ Syntax และโครงสร้างภายใน เพราะ Manifest สองยุคอาจมี Directive หรือรูปแบบที่ต้องปรับตามด้วย
㉖ Error หลังย้าย Resource ไป Category ใหม่
สมมติเดิม
resources/my-script/
แล้วย้ายเป็น
resources/[custom]/my-script/
ตามหลัก FiveM การอยู่ภายใน Category สามารถทำได้
แต่ถ้าหลังย้ายแล้วหาไม่เจอ ให้ตรวจ
Folder ซ้อนเพิ่มผิดหรือไม่
Manifest ยังอยู่ระดับ Resource หรือไม่
File Permissions
Server Data ที่แก้ถูกหรือไม่
refreshแล้วหรือไม่
จากนั้นใช้
refresh
ensure my-script
อีกครั้ง
㉗ File Permission ทำให้เกิดปัญหาได้หรือไม่
บน Linux Server หรือ Hosting บางประเภท File Permission และ Ownership ที่ผิดอาจทำให้ Server ไม่สามารถอ่านไฟล์ตามที่คาดหวังได้
หาก
Path ถูก
Manifest ถูก
Resource อยู่ถูก Server Data
refresh แล้ว
แต่ Resource ยังไม่ถูกอ่าน ให้ตรวจ Permission ผ่านระบบ Hosting หรือผู้ดูแล Server
ไม่ควรตั้ง Permission แบบเปิดกว้างที่สุดโดยไม่จำเป็นเพียงเพื่อทดลอง เพราะสร้างความเสี่ยงด้านความปลอดภัย
㉘ ตัวพิมพ์เล็ก-ใหญ่ต้องระวังโดยเฉพาะ Linux
Windows มักไม่เข้มงวดกับ Case ของชื่อไฟล์เท่าระบบ Linux บางแบบ
ดังนั้นชื่อ
MyScript
กับ
myscript
อาจสร้างปัญหาเมื่อย้าย Server จาก Windows ไป Linux หรือ Hosting อื่น
แนวทางที่ดีคือใช้ชื่อ Resource แบบตัวพิมพ์เล็กสม่ำเสมอ เช่น
my-script
และอ้างชื่อให้ตรงทุกจุด
㉙ Resource ลบไปแล้วแต่ยังขึ้น Couldn't Find Resource
ถ้าคุณตั้งใจลบ Resource แล้ว แต่ตอนเปิด Server ยังขึ้น
Couldn't find resource old-script
แสดงว่ายังมี Configuration พยายาม Start Resource เดิม
Search คำว่า
old-script
ใน
server.cfg
resources.cfg
framework.cfg
jobs.cfg
หรือไฟล์ .cfg ที่ถูก exec
เมื่อพบ
ensure old-script
ให้ลบหรือ Comment
# ensure old-script
ถ้าไม่ต้องการ Resource นั้นแล้ว
㉚ Resource เปลี่ยนชื่อหลัง Update
บาง Project เปลี่ยนโครงสร้างหรือชื่อ Resource ระหว่าง Version
สมมติเวอร์ชันเก่าชื่อ
old-resource
เวอร์ชันใหม่ชื่อ
new-resource
แต่ server.cfg ยังสั่ง
ensure old-resource
จึงเกิด Error
หลัง Update Script ควรอ่าน
Changelog
Upgrade Guide
Folder Structure
Resource Name
Dependencies
เสมอ
㉛ Script Pack มีหลาย Resource ต้องติดตั้งอย่างไร
บาง Package ไม่ใช่ Resource เดียว
ตัวอย่าง
my-pack/
├── core/
│ └── fxmanifest.lua
├── jobs/
│ └── fxmanifest.lua
└── ui/
└── fxmanifest.lua
Resource จริงอาจเป็น
core
jobs
ui
ไม่ใช่ my-pack
ควรจัดตาม Documentation ของ Developer
ถ้าสั่ง
ensure my-pack
แต่ Folder my-pack ไม่มี Resource Manifest ของตัวเอง ก็อาจไม่ใช่ Resource ที่ Start ได้ตามที่คิด
㉜ ตรวจ Resource Name จาก Console หลัง refresh
หลังใช้
refresh
ให้สังเกตว่า Resource ที่ต้องการถูกตรวจพบหรือไม่
หากไม่พบเลย ให้กลับไปที่ระดับ File System
ตรวจ
Path
Folder
Manifest
Server Data
ก่อนตรวจ Framework หรือ Database
เพราะ FiveM ยังไม่รู้จัก Resource ด้วยซ้ำ ดังนั้น ESX, QBCore, Qbox หรือ SQL ยังไม่ใช่ประเด็นในขั้นนี้
㉝ Dependency กับ Couldn't Find Resource ต่างกันอย่างไร
สอง Error นี้อาจดูคล้ายกันแต่ควรแยก
Couldn't Find Resource
Server หา Resource ที่เราระบุไม่พบ
ตัวอย่าง
Couldn't find resource my-script
Missing Dependency
Server พบ Resource หลัก แต่ Resource นั้นต้องการ Resource อื่นที่ไม่มีหรือไม่พร้อม
ตัวอย่าง
my-script
↓
dependency ox_lib
↓
ox_lib ไม่มี
กรณีแรกให้ตรวจ Folder/Name/Manifest
กรณีที่สองให้ตรวจ Dependency
การแยกสองกลุ่มนี้ช่วยให้ไม่เสียเวลาแก้ผิดจุด
㉞ fxmanifest Error กับ Couldn't Find Resource ต่างกันอย่างไร
หาก Server พบ Folder แต่ Manifest มีปัญหา อาจมีข้อความเกี่ยวกับ
resource manifest
หรือ Parsing Error
นั่นหมายความว่า Server เริ่มมองเห็น Folder แล้ว
แต่ถ้าขึ้น
Couldn't find resource
ให้เริ่มตรวจว่าตัว Resource ถูก Discover หรือไม่ก่อน
ลำดับ Debug ที่ดีคือ
Server เห็น Folder?
↓
Server Parse Manifest ได้?
↓
Resource Start ได้?
↓
Script ทำงาน?
อย่าข้ามขั้น
㉟ ไม่ควรล้าง Cache เพื่อแก้ Couldn't Find Resource เป็นอันดับแรก
Error นี้มักเกิดจาก
ชื่อผิด
Folder ผิด
Manifest ไม่มี
Server Data ผิด
ยังไม่ได้ refresh
การล้าง Cache ไม่ได้แก้สิ่งเหล่านี้โดยตรง
ให้เริ่มจาก
resources/
fxmanifest.lua
refresh
ensure
ก่อน
หากแก้โครงสร้างถูกต้องแล้ว Server จะสามารถ Discover Resource ได้โดยไม่ต้องใช้วิธีแก้แบบสุ่ม
㊱ ไม่ควรสร้าง fxmanifest.lua แบบมั่วเพื่อให้ Error หาย
ถ้า Download Resource แล้วไม่มี Manifest อย่ารีบสร้าง
fx_version 'cerulean'
game 'gta5'
แล้วถือว่าเสร็จ
เพราะ Script อาจต้องประกาศ
client_scripts
server_scripts
shared_scripts
files
ui_page
dependencies
data_file
เพิ่มเติม
Resource อาจถูก FiveM มองเห็นหลังสร้าง Manifest แต่ใช้งานไม่ได้
ควรหา Release Package หรือ Documentation ที่ถูกต้องก่อน
㊲ ไม่ควร Rename Framework Resource โดยไม่จำเป็น
Resource หลัก เช่น Framework, Library หรือ Inventory อาจถูก Resource อื่นอ้างชื่อไว้โดยตรง
ถ้า Rename
ox_lib
เป็น
my-ox-lib
Script ที่อ้าง
ox_lib
อาจมีปัญหา
ดังนั้นการจัด Folder ให้สวยไม่ควรแลกกับการทำลาย Resource Name ที่ Ecosystem ใช้ร่วมกัน
㊳ วิธีแก้ Couldn't Find Resource แบบเร็วที่สุด
หากต้องการตรวจแบบสั้น ให้ทำตามนี้
ขั้นที่ 1
ดูชื่อใน Error
Couldn't find resource my-script
ขั้นที่ 2
ตรวจว่ามี
resources/my-script/
หรือไม่
ขั้นที่ 3
ตรวจว่าใน Folder มี
fxmanifest.lua
ขั้นที่ 4
ตรวจว่าไม่มี Folder ซ้อน
ผิด
my-script/my-script/fxmanifest.lua
ขั้นที่ 5
ใช้
refresh
ขั้นที่ 6
ใช้
ensure my-script
ขั้นที่ 7
ถ้ายังไม่เจอ ตรวจ Server Data / txAdmin Profile
ขั้นที่ 8
ถ้า Error เกิดตอน Boot ให้ค้นชื่อ Resource ใน .cfg ทุกไฟล์
เพียง 8 ขั้นนี้ครอบคลุมสาเหตุที่พบบ่อยมากที่สุด
㊴ Checklist FiveM Couldn't Find Resource
ตรวจ Folder
Resource อยู่ใน
resourcesชื่อ Folder ถูก
ไม่มี Folder ซ้อน
ไม่ได้วางผิด Server Data
Category ถูกต้อง
ตรวจ Manifest
มี
fxmanifest.luaชื่อไฟล์ถูกจริง
ไม่ใช่
.lua.txtManifest อยู่ระดับ Resource
Download Package ถูกตัว
ตรวจ Server
ใช้
refreshแล้วใช้
ensureชื่อถูกtxAdmin Profile ถูก
Server Data Path ถูก
File Permission อ่านได้
ตรวจ Config
server.cfgใช้ชื่อ Resource ถูกไม่มีชื่อเก่าหลัง Rename
ตรวจไฟล์ที่ถูก
execResource ที่ลบแล้วไม่มี
ensureค้าง
หากผ่านทั้งหมดแล้ว FiveM ควรสามารถ Discover Resource ได้ หรืออย่างน้อย Error จะเปลี่ยนจาก Couldn't Find Resource ไปเป็น Error ที่เจาะจงกว่า ซึ่งช่วยให้ Debug ขั้นถัดไปง่ายขึ้น
สรุป FiveM Couldn't Find Resource แก้อย่างไร
ถ้า FiveM ขึ้น
Couldn't find resource my-script
ให้เริ่มจากตรวจ ชื่อ Resource และโครงสร้าง Folder ก่อนเรื่องอื่น
โครงสร้างที่ควรเห็นคือ
resources/
└── my-script/
└── fxmanifest.lua
จากนั้นใช้
refresh
ensure my-script
ถ้ายังหาไม่พบ ให้ตรวจว่า FXServer หรือ txAdmin กำลังใช้ Server Data Folder ชุดเดียวกับที่คุณนำ Script ไปวางจริงหรือไม่
หาก Error เกิดหลัง Rename หรือ Update Script ให้ตรวจ server.cfg และไฟล์ .cfg ที่ถูก exec ว่ายังเรียก Resource Name เก่าอยู่หรือไม่
สิ่งที่ comsiam แนะนำคืออย่าเริ่มด้วยการล้าง Cache, Reinstall FiveM หรือสร้าง Manifest แบบเดา เพราะ Error Couldn't Find Resource มักเป็นปัญหาระดับ Path → Name → Manifest → Resource Discovery ซึ่งตรวจได้ตรงจุดกว่ามาก
สำหรับ Server ที่มี Resource จำนวนมาก comsiam แนะนำให้ตั้งชื่อ Resource อย่างเป็นระบบและหลีกเลี่ยงการ Rename Framework หรือ Library โดยไม่จำเป็น เพราะ Resource อื่นอาจอ้างชื่อเหล่านั้นผ่าน Dependency, Export หรือ Config และทำให้เกิด Error เพิ่มตามมาได้
Comments
Post a Comment