FiveM Resource Started แต่ใช้งานไม่ได้ แก้อย่างไร

FiveM Resource ขึ้นว่า Started resource แต่เข้าเกมแล้วใช้งานไม่ได้ เป็นปัญหาที่ทำให้หลายคนสับสน เพราะดูจาก Server Console เหมือน Script เปิดสำเร็จแล้ว แต่เมื่อเข้าเกมกลับไม่มี Menu, Marker, Target, NPC หรือระบบที่ควรทำงาน

ตัวอย่างเช่น Console แสดง

Started resource my-script

แต่เมื่อเข้าเกมกลับพบว่า

  • กดใช้งานไม่ได้

  • Menu ไม่เปิด

  • Marker ไม่ขึ้น

  • NPC ไม่ Spawn

  • Target ไม่ขึ้น

  • Command ใช้ไม่ได้

  • Inventory ไม่ทำงาน

  • Database ไม่บันทึก

  • Job ใช้ระบบไม่ได้

  • UI ไม่แสดง

  • ไม่มี Error ชัดเจนใน Server Console

สิ่งสำคัญที่ต้องเข้าใจคือ Resource Started ไม่ได้แปลว่า Script ทุกส่วนทำงานสมบูรณ์

FiveM สามารถ Start Resource ได้สำเร็จ แต่ Client Script, Framework Integration, Database, Config หรือระบบภายใน Resource ยังสามารถเกิดปัญหาภายหลังได้

แนวทางตรวจที่แนะนำคือ

Resource Started
↓
ดู Server Console ต่อ
↓
ตรวจ F8 ฝั่ง Client
↓
ตรวจ Framework
↓
ตรวจ Dependency
↓
ตรวจ Config
↓
ตรวจ Job / Item / Permission
↓
ตรวจ Database
↓
ตรวจ Target / Inventory / UI
↓
ทดสอบ Feature จริง

① Started resource หมายความว่าอะไร

เมื่อ Console แสดง

Started resource my-script

โดยพื้นฐานหมายความว่า FiveM ได้เข้าสู่กระบวนการ Start Resource นั้นแล้ว

FiveM มี Event สำหรับ Resource Lifecycle เช่น onResourceStart และฝั่ง Client มี onClientResourceStart ซึ่งจะเกิดขึ้นเมื่อ Resource เริ่มทำงาน

แต่ข้อความนี้ไม่ได้รับประกันว่า Logic ทุกส่วนภายใน Script จะทำงานได้ถูกต้องตลอดเวลา

ตัวอย่าง

Resource Start สำเร็จ
↓
Client โหลด Script
↓
ผู้เล่นกดเปิด Garage
↓
Script เรียก Export ของ Inventory
↓
Export ไม่มี
↓
เกิด Error

ตอน Server Boot Resource อาจดูปกติ แต่ Error จะเกิดก็ต่อเมื่อผู้เล่นเรียก Feature นั้น

นี่เป็นเหตุผลว่าทำไม คำว่า Started จึงไม่เท่ากับ Tested

② หลังเห็น Started Resource ต้องอ่าน Console ต่อ

อย่าหยุดอ่านทันทีเมื่อเห็น

Started resource my-script

ให้ดูข้อความหลังจากนั้นด้วย

อาจพบ

SCRIPT ERROR
No such export
attempt to index a nil value
Table doesn't exist
Unknown column

บาง Script จะ Initialize สำเร็จก่อน แล้วจึงเริ่มเรียก Framework, Database หรือ Dependency

ตัวอย่าง

Started resource garage

ผ่านไปไม่กี่บรรทัด

SCRIPT ERROR: @garage/server/main.lua:...

กรณีนี้ Resource Start แล้วจริง แต่ Logic ภายในเกิด Error

ดังนั้นต้องอ่าน Console ตั้งแต่ก่อน Start ไปจนถึงหลัง Start ของ Resource นั้น

③ ตรวจ F8 เพราะ Error อาจเกิดฝั่ง Client

นี่เป็นจุดที่สำคัญมาก

ถ้า Server Console ไม่มี Error แต่ระบบในเกมไม่ทำงาน ให้เข้า FiveM แล้วกด

F8

เพื่อเปิด Client Console

จากนั้นทดลอง Feature อีกครั้ง

ตัวอย่าง

เปิด F8
↓
ปิด F8
↓
เดินไปจุด Garage
↓
กด E
↓
ไม่มีอะไรเกิดขึ้น
↓
เปิด F8
↓
ดู Error ล่าสุด

Client Error มักเกี่ยวข้องกับอาการอย่าง

  • Marker ไม่ขึ้น

  • Target ไม่ขึ้น

  • Menu ไม่เปิด

  • UI ไม่แสดง

  • NPC ไม่ Spawn

  • Animation ไม่ทำงาน

  • Interaction ไม่มี

  • Keybind กดไม่ได้

ดังนั้นถ้าเห็น

Started resource my-script

ใน Server Console แล้วคิดว่า Script ไม่มี Error อาจพลาดปัญหาฝั่ง Client ได้

④ ตรวจว่า Client Script ถูกโหลดจริงหรือไม่

เปิด

fxmanifest.lua

แล้วดูว่า Client File ถูกประกาศหรือไม่

ตัวอย่าง

client_script 'client.lua'

หรือ

client_scripts {
    'client/*.lua'
}

จากนั้นตรวจว่าไฟล์มีอยู่จริง

ตัวอย่าง Manifest ระบุ

client_script 'client.lua'

แต่ Resource จริงเป็น

client/
└── main.lua

ก็ไม่ตรงกัน

ควรเป็น

client_script 'client/main.lua'

หรือ

client_scripts {
    'client/*.lua'
}

ถ้า Client Script ไม่ถูกโหลด Resource อาจยัง Start ได้ แต่ระบบที่ผู้เล่นต้องมองเห็นหรือโต้ตอบอาจไม่ทำงาน

⑤ ตรวจ Server Script ด้วย

หลักเดียวกันใช้กับ Server Script

ตัวอย่างใน fxmanifest.lua

server_scripts {
    'server/*.lua'
}

ถ้าไฟล์ Server ไม่ถูกโหลด ระบบบางอย่างอาจหาย เช่น

  • Database

  • Money

  • Player Data

  • Item

  • Callback

  • Server Event

  • Permission

  • Job Logic

ตัวอย่างเช่น Menu ฝั่ง Client เปิดได้ แต่กดซื้อของแล้วไม่มีอะไรเกิดขึ้น เพราะ Server-side Logic ไม่ทำงาน

จึงต้องแยกว่า

UI เปิดไม่ได้

กับ

UI เปิดได้ แต่ Action ไม่ทำงาน

เป็นปัญหาคนละส่วน

⑥ ตรวจ Dependency ถึงแม้ Resource จะ Started

Resource บางตัวสามารถ Start ได้ แต่ Feature บางส่วนอาจต้องใช้ Dependency เพิ่ม

ตัวอย่าง Script อาจต้องใช้

ox_lib
oxmysql
ox_target
Framework
Inventory
Notification

บาง Dependency อาจประกาศใน Manifest

dependency 'ox_lib'

แต่บาง Integration อาจถูกเลือกผ่าน Config แทน และไม่ได้เป็น Hard Dependency

ตัวอย่าง

Config.Target = 'ox_target'

ถ้า ox_target ไม่ทำงาน Script อาจ Start ได้ แต่ Interaction ไม่ขึ้น

หรือ

Config.Inventory = 'ox_inventory'

ถ้า Inventory ไม่ตรง ระบบ Item อาจใช้ไม่ได้

ดังนั้น Resource Started แล้วก็ยังต้องตรวจ Dependency และ Integration อยู่

⑦ ตรวจ Start Order

Script สามารถ Start ได้ในบางสถานการณ์ แต่ Initialize ไม่สมบูรณ์เพราะ Resource ที่ต้องใช้ยังไม่พร้อม

ตัวอย่างไม่เหมาะสม

ensure my-script
ensure ox_lib

ถ้า my-script เรียก ox_lib ตั้งแต่ตอน Initialization

ควรเป็น

ensure ox_lib
ensure my-script

หรือหากมี Database

ensure oxmysql
ensure ox_lib
ensure my-script

ลำดับจริงขึ้นอยู่กับ Resource

หลักสำคัญคือ

Resource ที่ถูกเรียกใช้
↓
ต้องพร้อมก่อน
↓
Resource ที่เรียกมัน

ถ้า Script ใช้ ESX, QBCore หรือ Qbox ต้องตรวจลำดับของ Framework ด้วย

⑧ Resource ใช้ Framework ไม่ตรง

นี่เป็นสาเหตุใหญ่มากของอาการ

Started แล้ว แต่ใช้ไม่ได้

สมมติ Script สร้างสำหรับ

QBCore

แต่ Server ใช้

ESX

Resource อาจไม่ได้ Crash ทันที แต่เมื่อพยายามเรียก Player Data หรือ Job ระบบจึงล้มเหลว

Script ที่รองรับหลาย Framework อาจมี Config เช่น

Config.Framework = 'esx'

หรือ

Config.Framework = 'qb'

หรือ

Config.Framework = 'qbox'

ต้องตั้งให้ตรง

อย่าคิดว่า Script ที่เขียนว่า “FiveM Script” จะใช้กับ Framework ทุกตัวได้โดยอัตโนมัติ

⑨ Auto Detect Framework ก็ผิดได้

Script รุ่นใหม่จำนวนหนึ่งมี Auto Detection

เช่นตรวจว่ามี Resource

es_extended
qb-core
qbx_core

หรือไม่

แต่ Auto Detection อาจมีปัญหาเมื่อ

  • Rename Resource

  • ใช้ Framework Fork

  • Start Order ผิด

  • ใช้ Version ไม่รองรับ

  • มี Framework เก่าค้างอยู่

  • มี Resource หลายตัวที่ทำให้ตรวจผิด

หาก Script มี Config ให้เลือก Framework เอง การตั้งแบบ Explicit อาจช่วยลดความสับสนได้ แต่ต้องยึด Documentation ของ Script เป็นหลัก

⑩ ตรวจ config.lua ทั้งไฟล์

Resource Started แต่ใช้ไม่ได้จำนวนมากเกิดจาก Config

อย่าตรวจเฉพาะ

Config.Framework

ควรตรวจทั้งไฟล์

ค่าที่พบบ่อย เช่น

Framework
Inventory
Target
Notification
Language
Job
Item
Coordinates
Distance
Permission
Debug
Keybind

ตัวอย่าง

Config.Job = 'police'

แต่ Server ใช้ Job

lspd

ผู้เล่นจึงไม่ผ่านเงื่อนไข

Script ทำงานปกติ เพียงแต่ไม่มีผู้เล่นที่เข้าเงื่อนไข

จากมุมมองผู้ใช้งานจึงดูเหมือน Script เสีย

⑪ Job ผิดทำให้ระบบไม่แสดง

สมมติ Police Script Start สำเร็จ แต่ตำรวจเปิด Locker ไม่ได้

ตรวจ

Config.Job = 'police'

จากนั้นตรวจ Player Data ว่า Job จริงคืออะไร

อาจพบว่าใช้

police

ถูกต้อง แต่ผู้เล่นยัง

Off Duty

หรือ Grade ต่ำกว่าที่ Config กำหนด

จึงต้องตรวจเพิ่ม

  • Job Name

  • Job Grade

  • Duty

  • Boss Grade

  • Permission

ระบบอาชีพมักไม่ได้ตรวจเพียงชื่อ Job อย่างเดียว

⑫ Item ไม่มี ทำให้บางระบบเหมือนใช้งานไม่ได้

Script อาจ Start ปกติ แต่ต้องใช้ Item ที่ Server ยังไม่มี

ตัวอย่าง Repair Script ต้องใช้

repairkit

แต่ Inventory ไม่มี Item นี้

ผู้เล่นจึงเปิดหรือใช้ Feature ไม่ได้

ตรวจ Documentation ว่าต้องเพิ่ม Item เช่น

repairkit
lockpick
radio
phone
fishing_rod

หรือไม่

และต้องระวังชื่อ

repairkit

กับ

repair_kit

ถือเป็นคนละชื่อ

⑬ Inventory Integration ผิด

Inventory เป็น Dependency ที่เชื่อมกับ Script จำนวนมาก

Script อาจมี

Config.Inventory = 'ox_inventory'

แต่ Server ใช้ Inventory ระบบอื่น

อาการอาจเป็น

  • เปิด Stash ไม่ได้

  • Give Item ไม่ได้

  • Remove Item ไม่ได้

  • Shop ไม่เปิด

  • Trunk ใช้ไม่ได้

  • Item ไม่ถูกตรวจพบ

Resource ยังสามารถแสดง Started ได้ เพราะ Error เกิดก็ต่อเมื่อ Function Inventory ถูกเรียก

ให้ตรวจว่า Script รองรับ Inventory ที่ใช้อยู่จริงหรือไม่

⑭ Target ไม่ขึ้นแม้ Resource Started

ถ้า Script ใช้ ox_target หรือ Target System อื่น แล้วไม่มี Target ขึ้น ให้ตรวจ

Target Resource ทำงานหรือไม่

เช่น

ensure ox_target

Config เลือก Target ถูกหรือไม่

ตัวอย่าง

Config.Target = 'ox_target'

Start Order

Target ควรพร้อมก่อน Script ที่เรียกใช้งาน หาก Resource นั้นต้องการเช่นนั้น

Job Requirement

Target บางจุดปรากฏเฉพาะ Job

Distance

ระยะ Interaction อาจสั้นมาก

Zone / Model

Script อาจกำหนด Model หรือ Coordinates ผิด

F8

Client Error จะช่วยบอกได้มากที่สุด

⑮ Marker ไม่ขึ้นตรวจอะไร

ถ้า Resource เป็น Script แบบ Marker ไม่ใช่ Target ให้ตรวจ

  • Client Script ถูกโหลดหรือไม่

  • Coordinates ถูกหรือไม่

  • Z Coordinate ถูกหรือไม่

  • Draw Distance

  • Job Requirement

  • Config เปิด Marker หรือไม่

  • Client Error

  • Thread ทำงานหรือไม่

ตัวอย่าง Coordinates

vector3(100.0, 200.0, 30.0)

ถ้า Map หรือ MLO ถูกเปลี่ยน จุดจริงอาจอยู่คนละตำแหน่ง

Script จึงทำงาน แต่ Marker อยู่ที่อื่น

⑯ NPC ไม่ Spawn

ถ้า Resource Started แต่ NPC ไม่ปรากฏ ให้ตรวจ

  • Client Error

  • Ped Model

  • Model Name

  • Coordinates

  • Heading

  • Spawn Function

  • Streaming

  • Distance

  • Config Enable NPC

  • Resource Version

บาง Script Spawn NPC เฉพาะเมื่อผู้เล่นเข้าใกล้พื้นที่

จึงไม่ควรสรุปว่า NPC ต้องปรากฏทันทีหลัง Resource Start

ลองไปยัง Coordinates ที่กำหนดแล้วตรวจ F8

⑰ Menu ไม่เปิด

Menu ไม่เปิดมีหลายต้นเหตุ

เช่น Script ใช้

ox_lib
qb-menu
ESX Menu
Custom NUI

ถ้า Library หรือ Menu Resource ไม่พร้อม UI ก็ไม่เปิด

ตรวจ

F8

ทันทีหลังพยายามเปิด Menu

ถ้า Script ใช้ ox_lib ให้ตรวจว่ามีการติดตั้งและ Start Resource ตาม Documentation

ถ้าใช้ Framework Menu ให้ตรวจ Version และ Compatibility

⑱ UI หรือ NUI ไม่ขึ้น

Resource ที่มี HTML UI อาจใช้

ui_page 'html/index.html'

พร้อมกำหนด Files

files {
    'html/index.html',
    'html/style.css',
    'html/script.js'
}

ถ้า UI ไม่ขึ้นให้ตรวจ

  • ui_page Path

  • HTML มีจริง

  • CSS/JS มีจริง

  • Build Folder มีหรือไม่

  • Resource Package สมบูรณ์หรือไม่

  • F8 Error

  • NUI Callback

  • Front-end ถูก Build แล้วหรือไม่

Script บางโปรเจกต์บน GitHub มี Source Front-end แต่ไม่ได้รวม Production Build

หาก Download ผิด Package Resource อาจ Start ได้แต่ UI ไม่สามารถแสดงได้

⑲ Script มี Command แต่ใช้ไม่ได้

ถ้า Documentation บอกว่ามี Command เช่น

/garage

แต่ใช้ไม่ได้ ให้ตรวจ

  • Command ถูก Register หรือไม่

  • Client/Server Script ที่ Register Command ถูกโหลดหรือไม่

  • Permission

  • Job

  • ACE

  • Config Enable Command

  • Command Name

บาง Script เปลี่ยน Command ใน Config ได้

ตัวอย่าง

Config.Command = 'mygarage'

ดังนั้น Command จริงอาจไม่ใช่ชื่อใน Tutorial เก่า

⑳ Keybind กดแล้วไม่มีอะไรเกิดขึ้น

ถ้า Script ใช้ปุ่ม เช่น

E
F1
F2
F6

แล้วกดไม่ทำงาน ให้ตรวจ

  • Keybind ถูกเปลี่ยนหรือไม่

  • Command ที่ Bind ยังมีอยู่หรือไม่

  • Player อยู่ใน Zone หรือไม่

  • Job ผ่านเงื่อนไขหรือไม่

  • Client Script ทำงานหรือไม่

  • F8 มี Error หรือไม่

FiveM Resource บางตัวใช้ระบบ Key Mapping ทำให้ผู้เล่นสามารถเปลี่ยนปุ่มเองได้

ดังนั้นอย่าฟันธงว่า Script เสียเพียงเพราะปุ่มที่คู่มือเก่าระบุใช้ไม่ได้

㉑ Database ไม่พร้อม

Resource ที่เกี่ยวกับข้อมูลอาจ Start ได้ก่อนที่จะเจอ Database Error จริงตอนมี Query

ตัวอย่าง

Garage Started
↓
ผู้เล่นเปิด Garage
↓
Script Query Database
↓
Table ไม่มี
↓
Error

จึงเกิดอาการ

Resource Started
แต่ Garage ไม่ขึ้น

ให้ตรวจ Server Console ตอนผู้เล่นกดใช้งาน

Error ที่ควรดู เช่น

Table doesn't exist
Unknown column
SQL Error

ตรวจว่า

  • Import SQL แล้ว

  • Migration ครบ

  • Database ถูกตัว

  • Table มี

  • Column ครบ

  • oxmysql ทำงาน

㉒ oxmysql มีปัญหา

ถ้า Resource ใช้ Database ผ่าน oxmysql ให้ตรวจว่า oxmysql ทำงานก่อน

ตัวอย่าง

ensure oxmysql
ensure my-script

ถ้า Database Connection มีปัญหา Script อาจยัง Start แต่ Feature ที่ต้องอ่านหรือเขียน Database จะล้มเหลว

ถ้าพบว่า Phone, Garage, Banking และ Housing มีปัญหาพร้อมกัน ควรตรวจ Database Layer ก่อนจะสรุปว่า Script หลายตัวเสียพร้อมกัน

㉓ SQL Import แล้วแต่ยังใช้งานไม่ได้

การมี Table ไม่ได้หมายความว่า Schema ตรงกับ Script Version

ตัวอย่าง Script Version ใหม่ต้องการ

garage_type

แต่ Database Table รุ่นเก่ายังไม่มี Column นี้

อาจขึ้น

Unknown column

ดังนั้นต้องตรวจ

Script Version
↔
Database Schema

โดยเฉพาะหลังอัปเดต Script

ถ้ามี

migration.sql
update.sql

ให้ทำตาม Update Guide ของ Developer

㉔ No Such Export

Resource Started แต่เมื่อลองใช้งานขึ้น

No such export

มักเกิดเมื่อ Resource เรียก Function จาก Resource อื่นแต่ Export นั้นไม่พบ

ตรวจ

  • Resource เป้าหมาย Start หรือไม่

  • ชื่อ Resource ถูกหรือไม่

  • Export Name ถูกหรือไม่

  • Version Compatible หรือไม่

  • API เปลี่ยนหรือไม่

  • Start Order ถูกหรือไม่

ตัวอย่าง

Phone
↓
เรียก Inventory Export
↓
Inventory Version ใหม่ไม่มี Export เดิม
↓
Phone Error

ในกรณีนี้ Restart Phone ซ้ำ ๆ ไม่แก้ปัญหา ต้องแก้ Compatibility

㉕ Event หรือ Callback ไม่ทำงาน

Script สามารถ Start ได้ครบ แต่ Flow ขาดตรง Event หรือ Callback

ตัวอย่าง

Client กดปุ่ม
↓
ส่ง Event
↓
Server รับ
↓
ตรวจ Player Data
↓
ส่ง Callback กลับ
↓
เปิด Menu

ถ้าขั้นใดขั้นหนึ่ง Error ผู้เล่นอาจเห็นเพียงว่า “กดแล้วเงียบ”

ให้ตรวจทั้ง

F8
+
Server Console

พร้อมกัน

โดยเฉพาะหลัง Update Framework หรือ Script เพราะ Event/Callback API อาจเปลี่ยน

㉖ Permission ทำให้ดูเหมือน Script เสีย

ระบบ Admin หรือ Job บางตัวอาจมี Resource Started ปกติ แต่ User ไม่มีสิทธิ์ใช้

Script อาจตรวจ

ACE Permission
Framework Group
Job
Grade
Identifier
Discord Role

ตัวอย่าง Admin ใช้งานได้ แต่ Player ทั่วไปใช้ไม่ได้

กรณีนี้ Script อาจทำงานถูกต้องทุกอย่าง

ควรตรวจ Permission ก่อนแก้ Code

㉗ Script ใช้ได้กับ Admin แต่ไม่ได้กับตำรวจ

ให้ตรวจเงื่อนไข Job

เช่น

Config.AllowedJob = 'police'

และ Grade

Config.MinGrade = 2

ผู้เล่น Grade 1 จึงใช้ไม่ได้

หรือ Script อาจต้อง

On Duty

จึงจะแสดง Interaction

ก่อนสรุปว่า Script Error ให้ทดสอบ Account ที่ตรง Requirements ทุกข้อก่อน

㉘ Resource Started แต่ผู้เล่นเก่ามองไม่เห็น Script

บางกรณี Resource ถูก Start หลังผู้เล่นเข้า Serverไปแล้ว

Script อาจต้องมี Initialization ที่ทำงานตอน Player Load หรือ Resource Start

หาก Developer เขียนระบบ Initialization ไม่ครอบคลุมทุก Lifecycle การ Restart Resource กลางเกมอาจทำให้ผู้เล่นบางคนไม่ได้ State ที่ต้องการ

ลอง

Reconnect

เพื่อทดสอบว่าอาการต่างกันหรือไม่

ถ้า Reconnect แล้วใช้งานได้ แต่ Hot Restart แล้วไม่ได้ อาจเป็นปัญหา Initialization/Lifecycle ของ Script

กรณีนี้ควรแจ้ง Developer เพราะการบังคับให้ผู้เล่น Reconnect ทุกครั้งไม่ใช่วิธีแก้ที่ดีในระยะยาว

㉙ Resource Restart แล้วใช้ไม่ได้ แต่ Restart Server แล้วได้

อาการนี้อาจชี้ไปที่ Initialization หรือ Dependency State

ตัวอย่าง Script ต้องโหลดข้อมูลบางอย่างเฉพาะตอน Server Boot แต่ไม่ได้รองรับ Resource Restart อย่างสมบูรณ์

ให้ตรวจ

  • onResourceStart

  • Player Initialization

  • Framework Ready Event

  • Cached Data

  • Database Initialization

  • Dependency State

ถ้าเป็น Third-party Script ควรตรวจ Documentation ว่ารองรับ Hot Restart หรือไม่

Resource สำคัญบางชนิดไม่เหมาะกับการ Restart ขณะมีผู้เล่นออนไลน์

㉚ Restart Server แล้ว Script ใช้ไม่ได้ แต่ ensure ใหม่แล้วได้

อาการนี้มักชี้ไปทาง Start Order

ตัวอย่างตอน Boot

ensure my-script
ensure ox_lib

ตอน my-script Start Library ยังไม่พร้อม

หลัง Server เปิดเสร็จคุณพิมพ์

ensure my-script

อีกครั้ง

คราวนี้ ox_lib พร้อมแล้ว Script จึงใช้งานได้

วิธีแก้ควรจัด Startup Order

ensure ox_lib
ensure my-script

ไม่ใช่สั่ง ensure ใหม่ด้วยมือทุกครั้งหลัง Server เปิด

㉛ Resource Started แต่เฉพาะบาง Feature ใช้ไม่ได้

นี่เป็นข้อมูลที่ช่วย Debug ได้มาก

ตัวอย่าง

Garage Menu เปิดได้
รถออกได้
แต่เก็บรถไม่ได้

แสดงว่า Resource ไม่ได้เสียทั้งหมด

ควรเจาะเฉพาะ Workflow “Store Vehicle”

หรือ

Phone เปิดได้
Contacts ใช้ได้
แต่ Calls ไม่ทำงาน

ให้ตรวจระบบ Calls และ Dependency ที่เกี่ยวข้อง

อย่า Reinstall Script ทั้งตัวทันที เพราะสามารถทำลาย Config ที่ถูกต้องอยู่แล้ว

㉜ Script ใช้ได้บางคน บางคนใช้ไม่ได้

ถ้า Script ใช้ได้สำหรับผู้เล่น A แต่ไม่ได้สำหรับผู้เล่น B โอกาสที่ Resource Start มีปัญหาจะลดลง

ให้ตรวจข้อมูลเฉพาะ Player เช่น

  • Job

  • Grade

  • Permission

  • Character Data

  • Inventory

  • Identifier

  • Metadata

  • Duty

  • Stored Data

ตัวอย่าง Player A เป็น

police grade 4

Player B เป็น

police grade 0

ระบบอาจกำหนดขั้นต่ำ Grade 2

Script จึงทำงานถูกต้อง ไม่ใช่ Resource Error

㉝ Script ใช้ได้จนกระทั่ง Update

ถ้า Version เดิมทำงานแต่ Version ใหม่ Resource ยัง Started แต่ Feature หาย ให้ตรวจ

Changelog
Config
Dependency
Framework Support
SQL Migration
Exports
Events
UI Build

อย่านำ Config เก่าทับของใหม่ทั้งไฟล์โดยอัตโนมัติ

ตัวอย่าง Version ใหม่เพิ่ม

Config.Target = 'ox_target'

แต่คุณใช้ Config เก่าที่ไม่มีค่าใหม่

Script อาจ Initialize ไม่ครบ

ควรเปรียบเทียบ Config เก่ากับใหม่แล้ว Merge ทีละค่า

㉞ Script ใช้ไม่ได้หลังเปลี่ยน QBCore เป็น Qbox

ถ้าเพิ่ง Migration Framework แล้ว Resource Started แต่ Script บางตัวใช้ไม่ได้ ต้องตรวจ Compatibility เป็นรายตัว

Qbox มี Compatibility กับ QBCore ecosystem หลายส่วน แต่ไม่ได้หมายความว่า Third-party QB Script ทุกตัวจะทำงานได้โดยไม่มีการตรวจสอบ

จุดที่ควรตรวจ ได้แก่

  • Core Object

  • Player Data

  • Jobs

  • Money

  • Callbacks

  • Events

  • Exports

  • Inventory

  • Metadata

Script ที่มี Qbox Version หรือ Bridge โดยตรงควรใช้ Integration ที่ Developer รองรับ

㉟ Script ใช้ไม่ได้หลังเปลี่ยน Inventory

ถ้า Resource Started แต่ Shop, Stash หรือ Item หายหลังเปลี่ยน Inventory นี่เป็นสัญญาณว่า Integration ไม่ตรง

ตรวจ

Config.Inventory

รวมถึง

  • Item Functions

  • Add/Remove Item

  • Metadata

  • Stash

  • Trunk

  • Shop

  • Export

ถ้าหลาย Script พังพร้อมกันหลังเปลี่ยน Inventory ให้แก้ Inventory Integration ก่อน ไม่ควร Reinstall Script ทุกตัว

㊱ Script ใช้ไม่ได้หลังเปลี่ยน ox_target

หลักเดียวกันใช้กับ Target

ถ้า Server เปลี่ยนจาก Target A เป็น ox_target แต่ Script ยัง Config แบบเก่า Interaction ก็อาจหายทั้งหมด

ตรวจ

Config
Bridge
Exports
Target Zones
Entity Target
Dependencies

และดู F8 ขณะเข้าใกล้จุดที่ควรมี Target

㊲ ต้องล้าง Cache หรือไม่

ไม่ควรล้าง Cache เป็นขั้นตอนแรก

ถ้า Resource Started แต่ Console บอก

No such export

ต้องแก้ Export/Compatibility

ถ้าบอก

Table doesn't exist

ต้องแก้ Database

ถ้า Job ผิดก็ต้องแก้ Job

การล้าง Cache ไม่สามารถแก้ปัญหาเหล่านี้ได้

ควรอ่าน Error ก่อนเสมอ

㊳ ใช้ Debug Mode ถ้ามี

ตรวจ Config ว่า Script มี

Config.Debug = false

หรือไม่

หาก Documentation อนุญาต สามารถเปิด

Config.Debug = true

ชั่วคราว

Debug Mode อาจช่วยแสดง

  • Zone

  • Coordinates

  • Framework

  • Events

  • Callback

  • Target

  • Player Data

ทำให้เห็นว่า Script ทำงานถึงขั้นไหนแล้ว

หลังแก้ปัญหาเสร็จควรตั้งค่ากลับตามคำแนะนำของ Developer

㊴ ใช้ print ช่วยทดสอบ Flow

หากเป็น Script ที่แก้ Source ได้ สามารถใช้ Debug Output แบบง่าย ๆ

ตัวอย่าง Client

print('Client loaded')

หรือ

print(Config.Framework)

หากกด F8 แล้วเห็น

Client loaded

อย่างน้อยเรารู้ว่า Client File ถูก Execute

ฝั่ง Server ก็ใช้ print() เพื่อดู Server Console ได้

อย่างไรก็ตาม อย่า Print Password, Token หรือ Secret ลง Console

และควรลบ Debug Output ที่ไม่จำเป็นหลังแก้เสร็จ

㊵ วิธีทดสอบว่า Resource ทำงานจริง

อย่าทดสอบแค่ข้อความ

Started resource

ให้ทดสอบ Workflow จริง

สมมติเป็น Garage

เข้า Garage
↓
Menu เปิด
↓
โหลดรายชื่อรถ
↓
นำรถออก
↓
เก็บรถ
↓
Database Update
↓
Reconnect
↓
ข้อมูลยังถูกต้อง

ถ้าเป็น Phone

เปิด Phone
↓
Contacts
↓
Message
↓
Call
↓
Database Save
↓
Reconnect

ถ้าเป็น Job

เข้า Duty
↓
ใช้ Interaction
↓
รับ Item
↓
ทำงาน
↓
รับเงิน
↓
ตรวจ Database/Player Data

นี่จึงเป็นการยืนยันว่า Resource ใช้งานได้จริง

㊶ วิธีแก้แบบเร็วเมื่อ Started แต่ใช้งานไม่ได้

ใช้ลำดับนี้

ขั้นที่ 1

ดู Server Console หลัง Resource Start

ขั้นที่ 2

เข้าเกมกด

F8

ขั้นที่ 3

ทดลอง Feature ที่เสีย

ขั้นที่ 4

ดู Error ที่เกิดทันที

ขั้นที่ 5

ตรวจ

Framework
Dependency
Config

ขั้นที่ 6

ตรวจ

Job
Item
Permission
Target
Inventory

ขั้นที่ 7

ถ้าเกี่ยว Database ให้ตรวจ

oxmysql
SQL
Table
Column
Migration

ขั้นที่ 8

ถ้าไม่มี Error ให้เปิด Debug Mode ตาม Documentation

ขั้นที่ 9

แก้ทีละจุด

ขั้นที่ 10

Restart Resource แล้วทดสอบใหม่

㊷ Checklist Resource Started แต่ใช้งานไม่ได้

Resource

  • Resource ขึ้น Started

  • ไม่มี Error หลัง Start

  • fxmanifest.lua โหลดไฟล์ครบ

  • Client Script ถูกโหลด

  • Server Script ถูกโหลด

Client

  • ตรวจ F8 แล้ว

  • Marker ทำงาน

  • Target ทำงาน

  • Menu ทำงาน

  • UI ทำงาน

  • Keybind ถูก

Framework

  • Framework ถูกตัว

  • Version รองรับ

  • Player Data โหลด

  • Job ถูก

  • Grade ถูก

  • Duty ถูก

Dependency

  • Dependency ครบ

  • Dependency Start สำเร็จ

  • Start Order ถูก

  • Export มีจริง

ระบบอื่น

  • Inventory ตรง

  • Target ตรง

  • Notification ตรง

  • Item มี

  • Permission ถูก

Database

  • oxmysql ทำงาน

  • SQL Import แล้ว

  • Table มี

  • Column ครบ

  • Migration ตรง Version

หลังแก้

  • Restart Resource

  • ทดสอบ F8

  • ตรวจ Server Console

  • ทดสอบ Workflow ทั้งระบบ

  • Reconnect

  • Restart Server

  • ทดสอบใหม่อีกครั้ง

สรุป FiveM Resource Started แต่ใช้งานไม่ได้ แก้อย่างไร

ถ้า FiveM ขึ้น

Started resource my-script

แต่ Script ใช้งานไม่ได้ อย่าสรุปว่า Resource ไม่มีปัญหาเพียงเพราะ Start สำเร็จ

คำว่า Started บอกว่ากระบวนการเริ่ม Resource ผ่านแล้ว แต่ Logic ภายในอาจเกิด Error ภายหลังได้ โดยเฉพาะเมื่อผู้เล่นเรียก Menu, Target, Database, Inventory, Event หรือ Export

จุดที่ควรตรวจมากที่สุดคือ

Server Console
F8
Framework
Dependency
Config
Job / Grade
Inventory
Target
Database
Exports / Events

ถ้า Server Console ไม่มี Error แต่ระบบในเกมไม่ทำงาน ให้ตรวจ F8 เป็นอันดับแรก เพราะ Client-side Error จำนวนมากไม่ปรากฏใน Server Console

ถ้า Script ใช้งานได้หลังสั่ง ensure ใหม่ แต่ใช้ไม่ได้หลัง Restart Server ให้สงสัยเรื่อง Start Order

ถ้า Script ใช้งานได้เฉพาะบางคน ให้ตรวจ Job, Grade, Permission และ Player Data

ถ้าหลาย Resource เสียพร้อมกัน ให้มองหา Dependency ร่วม เช่น Framework, ox_lib, oxmysql, Inventory หรือ Target ก่อน

แนวทางของ comsiam คืออย่า Reinstall Script ทันทีเมื่อเห็นอาการ Started แต่ใช้งานไม่ได้ เพราะหลายครั้งตัว Resource ถูกติดตั้งถูกแล้ว ปัญหาอยู่ที่ Integration หรือ Configuration เพียงจุดเดียว

สำหรับ Server RP ที่มี Script จำนวนมาก comsiam แนะนำให้ Debug จาก Workflow ที่เสียจริง เช่น “เปิด Menu ไม่ได้” หรือ “เก็บรถไม่ได้” แล้วตรวจ Error ที่เกิด ณ จุดนั้น วิธีนี้แม่นยำกว่าการแก้ Resource ทั้งตัว และช่วยรักษาระบบส่วนที่ยังทำงานปกติเอาไว้

Comments

Popular posts from this blog

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

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

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