FiveM Script Error แก้อย่างไร? วิธีอ่าน Console Error หา Resource ที่พัง และ Debug Script ให้ตรงจุด
FiveM Script Error สามารถเกิดได้ทั้งตอน FXServer โหลด Resource, ตอน Script เริ่มทำงาน หรือหลังผู้เล่นเข้า Server แล้วใช้งานระบบบางอย่าง โดย Error ที่พบบ่อยมีตั้งแต่ Error parsing script, Failed to load script, Runtime Error, Stack Trace, Resource Error ไปจนถึง Hitch Warning
สิ่งสำคัญที่สุดคือ อย่าเริ่มจาก Restart Server, ล้าง Cache หรือ Reinstall FiveM แบบสุ่ม แต่ให้หาให้ได้ก่อนว่า Error มาจาก Resource ไหน → Script ไฟล์ไหน → Client หรือ Server → บรรทัดไหน → เกิดหลัง Change อะไร
Cfx.re Support ระบุว่า Error parsing script และ Failed to load script บางกรณีสามารถเกิดจาก Server Artifacts ที่ล้าสมัย และแนะนำให้อัปเดต Server ไปยัง Recommended Version ปัจจุบันก่อนทดสอบใหม่.
① FiveM Script Error คืออะไร
Script Error คือข้อผิดพลาดที่เกิดขึ้นกับ Code ภายใน FiveM Resource
Resource สามารถมี
Lua
JavaScript
C#
Client Scripts
Server Scripts
Shared Scripts
โดย fxmanifest.lua เป็นตัวกำหนดว่าไฟล์ใดถูกโหลดฝั่งใด และ FiveM รองรับ Script Loader ตามชนิดไฟล์ เช่น .lua, .js และ .net.dll.
ดังนั้นก่อนแก้ Error ต้องรู้ก่อนว่า Script ที่พังคือประเภทใด
② Error parsing script คืออะไร
ข้อความเช่น
Error parsing script
หมายความว่า FiveM ไม่สามารถ Parse Script นั้นได้สำเร็จ
สาเหตุอาจเกี่ยวข้องกับ Syntax หรือ Environment ที่ใช้โหลด Script และ Cfx.re Support ระบุว่าหนึ่งในสาเหตุที่ควรตรวจคือ Server Artifacts เก่า.
อย่ารีบแก้ Code หลายไฟล์พร้อมกัน
ให้ดู Error เต็มก่อนว่าชี้ไป Resource และไฟล์ใด
③ Failed to load script คืออะไร
ข้อความ
Failed to load script
หมายถึง Script ที่ Resource ต้องการใช้ไม่สามารถถูก Load ได้ตามปกติ
Cfx.re ระบุว่า Error กลุ่มนี้อาจเกิดจาก Server Artifacts ที่ล้าสมัย และแนะนำใช้ Recommended Server Version ปัจจุบัน.
แต่หาก Update แล้วไม่หาย ต้องตรวจ
Manifest → File Path → Script → Dependency
ต่อ
④ อย่า Update Artifacts แล้วคิดว่าจะหายทุก Error
คำแนะนำของ Cfx.re คือ Artifacts เก่า สามารถ เป็นสาเหตุของ Parsing/Loading Errors ไม่ได้หมายความว่า Script Error ทุกประเภทเกิดจาก Artifacts.
ถ้า Error เช่น
attempt to index a nil value
หรือ Runtime Exception เกิดหลัง Script เริ่มทำงานแล้ว
ต้องตรวจ Logic ของ Resource ต่อ
⑤ ดู Error ที่ไหนก่อน
ถ้า Error ฝั่ง Server ให้เปิด
txAdmin → Live Console
Cfx.re ระบุว่า txAdmin มี Live Console พร้อม Log File, Command History และ Search.
ดังนั้น Server Owner ควรใช้ Console เป็นจุดเริ่มต้นของการ Troubleshoot
⑥ FiveM Client Error ดูตรงไหน
FiveM Client มี Console ที่เปิดด้วย F8
Cfx.re ระบุว่า Client Console สามารถใช้ Commands สำหรับ Development และ Debug Resource Issues ได้โดยตรง.
ถ้า Error เกิดเฉพาะผู้เล่น ให้ตรวจ F8 Console ด้วย
⑦ Server Console กับ F8 ต่างกันอย่างไร
Server Console
เน้น Error จาก Server Scripts และ FXServer
F8 Console
เน้น Client-side Resource และ Client Runtime
ดังนั้นถ้า fxmanifest.lua ระบุ
client_script 'client.lua'
ให้ตรวจฝั่ง Client
แต่ถ้าเป็น
server_script 'server.lua'
ให้ตรวจ Server Console
Cfx.re แยก client_script และ server_script เป็นคนละ Runtime Side ใน Resource Manifest.
⑧ Shared Script ต้องตรวจทั้งสองฝั่ง
ถ้า Manifest ใช้
shared_script 'config.lua'
Cfx.re ระบุว่าไฟล์นั้นถูกโหลดทั้ง Client และ Server.
ดังนั้น Shared Script ที่มี Code ซึ่งใช้ได้เฉพาะฝั่งใดฝั่งหนึ่งอาจทำให้เกิดปัญหา
ควรดูทั้ง F8 และ Server Console
⑨ หา Resource Name จาก Error
Error จำนวนมากจะแสดง Path หรือ Resource Name
ตัวอย่างเชิงรูปแบบ:
@my-resource/server/main.lua:42
ให้แยกเป็น
Resource → my-resource
File → server/main.lua
Line → 42
นี่คือข้อมูลที่ควรใช้เริ่ม Debug แทนการแก้ทุก Resource
⑩ หา Line Number ก่อน
หาก Error มีหมายเลขบรรทัด เช่น
server.lua:120
ให้เปิดไฟล์นั้นแล้วไปบรรทัด 120
จากนั้นอ่าน Code รอบๆ อีกประมาณหลายบรรทัด เพราะต้นเหตุอาจเกิดจากค่าที่ถูกส่งเข้ามาจากบรรทัดก่อนหน้า
อย่าแก้เฉพาะตัวอักษรใน Line ที่ Error โดยไม่ดู Context
⑪ Stack Trace คืออะไร
Stack Trace แสดงลำดับการเรียก Function/Code ก่อนเกิด Error
เป้าหมายไม่ใช่อ่านทุกบรรทัด แต่ให้หา
Resource ของเรา
File ของเรา
Function ของเรา
Line Number ของเรา
ก่อน
ใน FiveM Stack Trace สามารถช่วยระบุ Code Path ที่นำไปสู่ Error ได้ และ Cfx.re มีเอกสารสำหรับปรับปรุง/ใช้ข้อมูล Stack Trace ในงาน Debug โดยเฉพาะ.
⑫ อย่าตกใจกับ Stack Trace ยาว
Stack Trace สามารถมีทั้ง Code ของ Runtime และ Resource
ให้เริ่มค้นหา
@ชื่อ-resource/
หรือชื่อ DLL/Script ของคุณ
แล้วไล่จาก Frame ที่เกี่ยวข้องกับ Resource ตัวเองก่อน
วิธีนี้มีประโยชน์กว่าการแก้ Runtime Internal Code ที่คุณไม่ได้เป็นผู้เขียน
⑬ Lua Error ควรดูอะไร
สำหรับ Lua ให้ตรวจ
Syntax
Variable
Table
Function
Argument
Nil Value
Event Data
ก่อน
FiveM ใช้ .lua กับ Lua Script Loader ตาม Resource Manifest.
หาก Error แสดง File และ Line Number ให้เริ่มจากจุดนั้น
⑭ JavaScript Error ควรดูอะไร
FiveM รองรับ JavaScript Resources และ .js ถูก Load ผ่าน JavaScript Runtime ตาม Manifest.
ให้ตรวจ
Undefined Values
Function Calls
Async Logic
Event Arguments
JSON/Data
Stack Trace
และแยกให้ชัดว่า JS นั้นเป็น Client หรือ Server Script
⑮ C# Error ควรดูอะไร
C# Resources สามารถรายงาน Exception และ Stack Trace ได้
Cfx.re ระบุว่า หาก Debug Information ของ C# Build ไม่ถูกตั้งค่า Stack Trace อาจแสดง Line Number เป็น 0 ซึ่งทำให้ตาม Error ได้ยาก.
ดังนั้น Developer C# ควรเปิด Debug Information ให้เหมาะสมตอนกำลัง Debug
⑯ C# Stack Trace ขึ้น :0 หมายถึงอะไร
ถ้าเห็นประมาณ
SomeMethod():0
อาจหมายถึง Debug Symbols ไม่ได้ให้ Line Information ที่ต้องการ
Cfx.re แนะนำ Embedded Debug Information หรือ Portable PDB เพื่อให้ Runtime สามารถแสดง File Path และ Line Number ได้แม่นขึ้น.
นี่เป็นเรื่อง Developer Build ไม่ใช่ปัญหา FiveM Cache ของ Player
⑰ Client Script ไม่ Error แต่ Server มี Error
ให้แก้ฝั่ง Server ก่อน
ตัวอย่าง Resource อาจมี
client_script 'client.lua'
server_script 'server.lua'
Client ทำงานปกติไม่ได้แปลว่า Server Script ปกติ เพราะถูก Load คนละฝั่ง.
⑱ Server Script ปกติ แต่ Player คนหนึ่ง Error
ให้ตรวจ F8 Console ของ Player คนนั้น
หากผู้เล่นอื่นทั้งหมดปกติ มีเหตุผลให้ตรวจ
Client-specific Data
Client Script
Player State
Input ที่ Player คนนั้นส่งเข้า Resource
มากกว่าการ Restart FXServer ทั้งหมด
⑲ ทุกคน Error พร้อมกันหลัง Update Resource
Pattern นี้สำคัญมาก
ก่อน Update → ปกติ
หลัง Update → ทุกคน Error
ให้ย้อนตรวจ Resource ที่เพิ่ง Update ก่อน
อย่าแก้
Network
GTA V
FiveM Client
ของผู้เล่นทุกคนพร้อมกัน
⑳ ย้อน Change ล่าสุดก่อน
หลัก Debug ที่ใช้ได้ดีคือ
อะไรเปลี่ยนก่อน Error เริ่ม?
เช่น
Update Resource
แก้ Config
แก้ Script
เปลี่ยน Framework
Update Artifacts
เปลี่ยน Dependency
ถ้ามี Change ชัดเจน ให้ Compare กับ Version ที่เคยทำงาน
㉑ ติดตั้ง Resource ใหม่แล้ว Error
ให้ Stop Resource ใหม่ก่อน
จากนั้นดูว่า Server กลับมาปกติหรือไม่
ถ้าปกติเมื่อ Resource ถูก Stop ขอบเขตปัญหาจะถูกลดลงทันที
txAdmin รองรับ Start/Stop/Restart Resources แยกจาก Server Instance.
㉒ ไม่จำเป็นต้อง Restart Server ทุกครั้ง
เมื่อ Debug Resource สามารถ Restart เฉพาะ Resource ได้
txAdmin รองรับการ Start/Stop/Restart Resource โดยตรง.
วิธีนี้ลดผลกระทบต่อผู้เล่นและช่วยทดสอบได้เร็วกว่า Restart FXServer ทั้งระบบ
㉓ Manifest ผิดก็ทำให้ Script Error ได้
fxmanifest.lua กำหนดว่า FiveM ต้องโหลดไฟล์อะไร
ตัวอย่าง:
server_script 'server/main.lua'
แต่ไฟล์จริงอยู่
server/server.lua
ก็เป็น Configuration ที่ต้องแก้
Resource Manifest เป็นตัวกำหนด Script Files ที่ต้อง Load ฝั่ง Client/Server.
㉔ ตรวจไฟล์ใน fxmanifest.lua
ดู Entry เช่น
client_scripts {
'client/*.lua'
}
server_scripts {
'server/*.lua'
}
Cfx.re รองรับ Globbing เช่น *.lua และ **/*.lua ใน Manifest Entries ที่รองรับ.
หาก Pattern ไม่ Match File ที่คิด Script อาจไม่ได้ถูก Load ตามต้องการ
㉕ Resource ใช้ Dependency ไม่ครบ
Resource Manifest รองรับ Dependency Requirements รวมทั้ง Resource Dependency, Minimum Server Version, OneSync และ Game Build Requirements.
ดังนั้นถ้า Resource ไม่ทำงานหลังติดตั้ง ให้ตรวจ Manifest/README ว่าต้องมี Resource หรือ Server Requirement อะไรเพิ่มเติม
㉖ Minimum Server Build ไม่ถึง
Manifest สามารถกำหนด Requirement ลักษณะ
dependencies {
'/server:4500'
}
เพื่อ Require Minimum Server Build.
หาก Server เก่าเกินไป Resource อาจไม่ทำงานตามที่ Developer ตั้งไว้
จึงควรใช้ Recommended Server Artifacts ปัจจุบันด้วย
㉗ Update Server Artifacts เมื่อใด
หากพบ
Error parsing script
Failed to load script
Cfx.re Support แนะนำให้อัปเดต Server ไป Latest Recommended Version แล้วทดสอบใหม่ เพราะ Artifacts เก่าสามารถเป็นต้นเหตุได้.
ควร Backup Server Configuration/Resources ก่อนการเปลี่ยนแปลงใหญ่ตามแนวทางการดูแลระบบที่ดี
㉘ อย่าใช้ Artifact เก่าเพราะ “เคยใช้ได้”
Resource ใหม่สามารถพึ่ง Capability ของ Server Build รุ่นใหม่กว่าได้ และ Manifest ยังสามารถกำหนด Minimum Server Version ได้โดยตรง.
ดังนั้น Resource Update ใหม่บน Artifact เก่ามากสามารถสร้าง Compatibility Problem ได้
㉙ Resource Error หลัง Artifacts Update
กลับกัน ถ้า Error เริ่มหลัง Update Server Artifacts ให้ตรวจ
Resource Version
Runtime Compatibility
Deprecated Features
Resource Release Notes
และ Compare Change ก่อน–หลัง
อย่า Roll Back แบบสุ่มโดยไม่มี Backup หรือข้อมูล
㉚ Resource Start ได้แต่ Runtime Error
นี่หมายความว่า
Manifest/Resource Start ผ่าน
แต่ Code เกิด Errorระหว่างทำงาน
ให้ตรวจ
Stack Trace
File
Line
Event
Function
Data ที่ถูกส่งเข้า Function
แทนการแก้ server.cfg
㉛ Error เกิดเฉพาะเมื่อใช้คำสั่งหนึ่ง
ตัวอย่าง:
Server เปิดปกติ
Player ใช้คำสั่ง A → Error
Player ไม่ใช้คำสั่ง → ไม่มี Error
ให้ตรวจ Handler ของคำสั่ง A และ Function ที่ถูกเรียกต่อ
นี่คือการใช้ Trigger Condition ลดขอบเขต Error
㉜ Error เกิดตอน Player Join
ให้ตรวจ Resources ที่ทำงานใน Connection/Spawn Flow
เช่น
Authentication
Character
Framework
Database
Player Initialization
แล้วอ่าน Stack Trace/Console ในช่วงเวลาที่ Player Join
อย่าแก้ Resources ที่ไม่เกี่ยวกับขั้นตอน Join ก่อน
㉝ Error เกิดตอน Player Disconnect
ใช้หลักเดียวกัน
ให้ค้น Logs ตาม Timestamp เดียวกับ Disconnect
txAdmin สามารถบันทึก Server Activity รวมถึง Connections และ Disconnections พร้อมมี Live Console/Logs สำหรับตรวจ Timeline.
㉞ ใช้เวลา Error ช่วยค้น Log
จดเวลา เช่น
18:42:15
จากนั้นเปิด txAdmin Logs แล้วดูช่วงเวลาดังกล่าว
นี่มีประโยชน์มากเมื่อ Server มี Logs หลายพันบรรทัด
ไม่ควรค้นจากชื่อ Error อย่างเดียว
㉟ ใช้ Resource Name Search ใน txAdmin
txAdmin Live Console รองรับ Search.
ถ้า Error มาจาก
my-inventory
ให้ Search ชื่อนี้
แล้วดู
ตอน Start
Warning
Runtime Error
Restart
Stop
ทั้งหมดที่เกี่ยวข้อง
㊱ Error หนึ่งบรรทัดอาจไม่ใช่ต้นเหตุแรก
ตัวอย่างเชิงหลักการ:
Resource A Error
→ Resource B ไม่ได้รับข้อมูล
→ Resource B Error
→ Resource C Error
ถ้าเริ่มแก้จาก Resource C อาจไม่จบ
ให้ค้นหา Error แรกสุดใน Timeline
เพราะ Error ที่ตามมาอาจเป็นผลกระทบต่อเนื่อง
㊲ อย่าปิด Error Logging เพื่อให้ Console สะอาด
ถ้า Console มี Error จำนวนมาก วิธีแก้คือแก้ Resource ไม่ใช่ซ่อนข้อความ
Logs เป็นข้อมูลสำคัญในการระบุ
Resource
File
Line
เวลา
Error Pattern
และ txAdmin ถูกออกแบบให้มี Live Console/Log Search เพื่อช่วยงานนี้.
㊳ Error Spam ทุก Tick ต้องรีบตรวจ
ถ้า Resource Error หลายครั้งต่อวินาที
ให้ Stop Resource ใน Development Environment ก่อน แล้วหา Root Cause
Error Spam สามารถ
ทำให้ Logs ใหญ่มาก
กลบ Error อื่น
แสดงว่า Code Path ถูกเรียกซ้ำผิดปกติ
อย่าปล่อย Resource Error รัวใน Production Server เพียงเพราะ Server ยังเปิดอยู่
㊴ Hitch Warning คือ Script Error หรือไม่
ไม่ใช่ Error แบบเดียวกับ Syntax/Runtime Error
Cfx.re ระบุว่า Hitch Warning หมายถึง Resource หนึ่งทำงานไม่ดีเท่าที่ควร และอาจเกี่ยวข้องกับ SQL Query ที่ช้าหรือ Loop ที่ไม่ได้ Optimize.
ดังนั้นถ้า Server Lag แต่ไม่มี Exception ให้ตรวจ Performance แทน
㊵ Profiler ใช้ทำอะไร
Cfx.re Profiler สามารถช่วยหา บรรทัด Code และ Threads ที่สร้างปัญหา Performance ทั้งฝั่ง Server และ Client.
Profiler เหมาะกับ
Hitch Warning
CPU Usage สูง
Resource ช้า
FPS ลดจาก Resource
ไม่ใช่เครื่องมือหลักสำหรับแก้ Syntax Error ที่ Console บอก Line ชัดอยู่แล้ว
㊶ วิธีเริ่ม Profiler
Cfx.re ระบุว่าเริ่ม Capture ได้ด้วย
profiler record 500
โดยเอกสารใช้ 500 Frames เป็นจุดเริ่มต้นตัวอย่าง.
ตรวจสถานะด้วย
profiler status
จากนั้นสามารถเปิดดู Capture ด้วย
profiler view
ได้.
㊷ Profiler ใช้ได้ทั้ง Client และ Server
Cfx.re ระบุว่า Profiler ใช้ได้ทั้ง
Server Side
Client Side
โดย Client เปิด Console ด้วย F8 ส่วน Server ใช้ Server Console.
ดังนั้นต้อง Capture ฝั่งที่มีปัญหาจริง
㊸ Save Profiler เป็นไฟล์ได้ไหม
ได้
เอกสาร Cfx.re ระบุคำสั่ง
profiler saveJSON filename.json
สำหรับบันทึก Profile.
เหมาะกับ Developer ที่ต้องการนำ Profile ไปตรวจรายละเอียดภายหลัง
㊹ Resource Monitor ใช้เมื่อไหร่
Cfx.re Fact Sheet ระบุว่า Resource Monitor สามารถช่วยดู CPU Time และ Memory Usage ของแต่ละ Resource ฝั่ง Client และใช้
resmon true
เพื่อเปิดได้ใน Environment ที่อนุญาต.
ดังนั้นถ้า Player FPS ลดหลัง Resource ตัวหนึ่งทำงาน Resmon สามารถช่วยจำกัดขอบเขตได้
㊺ อย่าเปิด Developer Mode โดยไม่จำเป็น
Cfx.re ระบุว่า resmon ใน Production Build บางกรณีอาจถูกปฏิเสธและต้องใช้ Developer Mode.
ผู้เล่นทั่วไปไม่จำเป็นต้องเปิด Developer Mode เพียงเพื่อแก้ Script Error พื้นฐาน
Server Developer ควรใช้เครื่องมือที่เหมาะกับ Environment ทดสอบของตน
㊻ Script Error กับ Server Crash ต่างกันอย่างไร
Script Error
Resource/Script เกิดข้อผิดพลาด แต่ FXServer อาจยังทำงานต่อ
Server Crash
FXServer Process หยุดทำงาน
ถ้าเป็น Crash จริง Cfx.re มี Server Debugging Guide สำหรับสร้าง Dump เพื่อวิเคราะห์ Crash เพิ่มเติม.
อย่าใช้วิธี Debug Resource Error กับ Server Crash แบบเดียวกันทั้งหมด
㊼ Resource Error กับ Client Crash ต่างกันอย่างไร
Client Script Error อาจแสดงใน F8 แต่ Client ยังเปิดอยู่
Client Crash คือ FiveM/Game Process ปิดหรือเกิด Crash Dialog
ต้องแยกอาการให้ถูก เพราะ Logs และเครื่องมือที่ต้องดูต่างกัน
㊽ Update Resource แล้ว Script Error
ใช้ Workflow นี้:
Stop Resource
Backup Version ใหม่
เทียบ Config เดิม/ใหม่
ตรวจ Dependency ใหม่
ตรวจ Manifest
ตรวจ Database Migration
Start Resource
อ่าน Error ตั้งแต่บรรทัดแรก
อย่า Merge Config เก่าเข้ากับ Resource ใหม่ทั้งหมดโดยไม่ดูว่ามี Schema/Setting เปลี่ยนหรือไม่
㊾ Resource เก่าใช้กับ Server ใหม่ไม่ได้
เป็นไปได้หาก Resource ใช้ Code หรือ Behavior ที่ล้าสมัย
Resource Manifest Reference มีหลาย Entries ที่ระบุว่า Deprecated และ Cfx.re ปรับ Runtime/Manifest Requirements ตามเวลา.
ดังนั้นควรตรวจว่า Resource ยังได้รับการดูแลและรองรับ Environment ปัจจุบันหรือไม่
㊿ วิธีแก้ FiveM Script Error แบบเร็วที่สุด
ใช้ลำดับนี้:
จด Error เต็ม
ดูว่า Client หรือ Server
หา Resource Name
หา File
หา Line Number
หา Error แรกสุดใน Timeline
ตรวจ Change ล่าสุด
ตรวจ
fxmanifest.luaตรวจ Dependencies
ตรวจ Server Artifacts
Restart เฉพาะ Resource
ทดสอบ Trigger เดิม
ถ้าเป็น Performance ใช้ Profiler
ถ้าเป็น Client Performance ใช้ Resource Monitor ตามความเหมาะสม
เมื่อแก้แล้วตรวจว่า Error ไม่กลับมา
นี่ช่วยลดขอบเขตจาก “FiveM พัง” ให้เหลือ Script/Resource ที่ต้องแก้จริง
ตารางแยก FiveM Script Error
| อาการ | ตรวจอะไรก่อน |
|---|---|
| Error parsing script | Artifact / Syntax / File |
| Failed to load script | Artifact / Manifest / File |
| Resource Start ไม่ได้ | Console / Manifest |
Error มี @resource/file.lua:line | File และ Line |
| Client Error | F8 Console |
| Server Error | txAdmin Console |
| Shared Script Error | Client + Server |
| ทุกคน Errorพร้อมกัน | Server/Shared Resource |
| Player คนเดียว Error | Client-specific |
| Error หลัง Update | Change ล่าสุด |
| Dependency Missing | Manifest / Load Order |
C# Stack Trace :0 | Debug Symbols |
| Hitch Warning | Profiler |
| Resource CPU สูง | Profiler/Resmon |
| FXServer Crash | Server Crash Debugging |
FiveM Error parsing script แก้อย่างไร
เริ่มจากดูว่า Server ใช้ Recommended Artifacts ปัจจุบันหรือไม่ เพราะ Cfx.re Support ระบุว่า Artifacts เก่าเป็นหนึ่งในสาเหตุของ Error parsing script.
จากนั้นตรวจ
Resource → Manifest → Script → Syntax → Dependency
ถ้า Error ระบุ File/Line ให้แก้ตรงจุดนั้นก่อน
FiveM Failed to load script แก้อย่างไร
ใช้ลำดับ:
Artifacts → fxmanifest.lua → File Path → File Exists → Runtime → Dependencies
เพราะ Cfx.re ระบุว่า Failed to Load Script อาจเกี่ยวข้องกับ Artifact Version และ Resource Manifest เป็นตัวกำหนดไฟล์ Script ที่ FiveM ต้องโหลด.
FiveM Script Error ดูบรรทัดไหน
ถ้า Error มีรูปแบบ
@my-resource/server.lua:76
ให้เริ่มจากบรรทัด 76 ของ server.lua
แต่ควรอ่านข้อความก่อนหน้าใน Stack Trace ด้วย เพราะต้นเหตุอาจถูกส่งมาจาก Function ก่อนหน้า
สำหรับ C# หาก Line ขึ้น 0 ให้ตรวจ Debug Information/PDB ตามคำแนะนำ Cfx.re.
FiveM Script Error หลัง Restart Resource
ถ้าก่อน Restart ปกติ แต่ Restart แล้ว Error ให้ดูว่า Resource Initialization Code ทำงานตอนไหน
Resource อาจมี Logic ที่ทำงานเมื่อ Start และข้อมูลบางอย่างอาจยังไม่พร้อม
ให้ดู Console ทันทีหลัง Restart เพื่อหา Error แรก
FiveM Script Error หลัง Restart Server
ถ้าเกิดเฉพาะ Full Server Restart ให้ตรวจ Load Order
Resource A อาจต้อง Start ก่อน Resource B
Manifest รองรับ Dependencies เพื่อกำหนด Requirement ของ Resource ได้.
ดังนั้น Error หลัง Boot แต่ Manual Restart แล้วหายสามารถเป็นสัญญาณว่าควรตรวจ Dependency/Initialization Order
FiveM Script Error แต่ Resource ยังทำงาน
อย่าปล่อยทิ้งไว้เพียงเพราะ Feature บางส่วนยังใช้ได้
Runtime Error อาจเกิดเฉพาะ Code Path บางส่วน เช่น
Player บางคน
Command บางคำสั่ง
Job บางอาชีพ
Event บางเหตุการณ์
ให้แก้ Error ตาม Resource/File/Line ก่อนเปิด Production ต่อ
FiveM Resource Lag แต่ไม่มี Script Error
ให้เปลี่ยนจาก Error Debugging ไป Performance Debugging
Cfx.re ระบุว่า Hitch Warnings สามารถเกิดจาก Resource ที่ทำงานช้า เช่น SQL Query หรือ Loop ที่ไม่ Optimize และ Profiler ช่วยระบุ Code ที่เป็นต้นเหตุได้.
ไม่ควรเพิ่ม CPU Server ก่อนรู้ว่า Code ส่วนไหนสร้าง Load
FiveM txAdmin ช่วย Debug Script อย่างไร
txAdmin มี
Live Console
Log Files
Search
Resource Start/Stop/Restart
CPU/RAM Monitoring
Server Threads Performance
จึงเหมาะมากกับ Workflow Debug Resource.
สูตรใช้งานคือ
Search Resource → ดู Error → Restart Resource → Trigger Error → Compare Logs
Checklist ก่อนประกาศว่า Script Error แก้แล้ว
ตรวจว่า:
Resource Start ผ่าน
Console ไม่มี Error เดิม
F8 ไม่มี Error เดิม
Trigger เดิมไม่ทำให้ Error
Player หลายคนทดสอบได้
Restart Resource แล้วยังปกติ
Restart Server แล้วยังปกติ
Dependencies Start ถูกลำดับ
CPU/Performance ปกติ
Backup Version ที่แก้แล้ว
อย่าทดสอบเพียงครั้งเดียวแล้ว Deploy ทันทีถ้า Error เดิมเกิดเฉพาะบาง Scenario
สรุป FiveM Script Error แก้อย่างไร
วิธีแก้ FiveM Script Error ที่มีประสิทธิภาพที่สุดคือ อ่าน Error ก่อนแก้ Server โดยเริ่มจากระบุว่า Error เกิดฝั่ง Client หรือ Server จากนั้นหา Resource → File → Line Number → Stack Trace → Trigger → Change ล่าสุด
สำหรับ Server Error ให้ใช้ txAdmin Live Console ซึ่ง Cfx.re รองรับ Log, Search และ Resource Management ส่วน Client Error ให้เปิด F8 Console ซึ่ง Cfx.re ระบุว่าใช้ Debug Resource Issues ได้โดยตรง.
หากเป็น Error parsing script หรือ Failed to load script ต้องตรวจ Version ของ FXServer ด้วย เพราะ Cfx.re Support ระบุว่า Server Artifacts ที่ล้าสมัยสามารถเป็นสาเหตุ และแนะนำใช้ Recommended Version ปัจจุบัน.
หาก Resource Start ได้แล้วแต่เกิด Runtime Error ให้ตรวจ File/Line และ Stack Trace ส่วนถ้าเป็น Hitch Warning หรือ Performance Problem ให้ใช้ Profiler เพราะ Cfx.re ระบุว่าสามารถหา Code และ Threads ที่สร้างปัญหาทั้งฝั่ง Client และ Serverได้.
สำหรับ C# Developer ควรตั้ง Debug Information ให้เหมาะสม เพราะ Stack Trace ที่ไม่มี Debug Symbols สามารถแสดง Line เป็น 0 และทำให้ตาม Error ยากขึ้น.
สำหรับผู้อ่าน comsiam ให้จำสูตร “Error → Resource → File → Line → Stack → Change → Fix → Test” และ comsiam แนะนำว่าอย่า Restart หรือ Reinstall แบบเดาสุ่ม เพราะ Error หนึ่งบรรทัดที่อ่านถูกจุดมักให้ข้อมูลมากกว่าการเปลี่ยน Server ทั้งระบบ
Comments
Post a Comment