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 ใช้

  • resources Folder ของ 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.txt

  • Manifest อยู่ระดับ Resource

  • Download Package ถูกตัว

ตรวจ Server

  • ใช้ refresh แล้ว

  • ใช้ ensure ชื่อถูก

  • txAdmin Profile ถูก

  • Server Data Path ถูก

  • File Permission อ่านได้

ตรวจ Config

  • server.cfg ใช้ชื่อ Resource ถูก

  • ไม่มีชื่อเก่าหลัง Rename

  • ตรวจไฟล์ที่ถูก exec

  • Resource ที่ลบแล้วไม่มี 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

Popular posts from this blog

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

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

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