FiveM fxmanifest.lua คืออะไร? วิธีสร้าง Resource Manifest สำหรับมือใหม่แบบละเอียด
fxmanifest.lua คือไฟล์ Resource Manifest ของ FiveM ใช้บอก FXServer ว่า Resource หนึ่งประกอบด้วยอะไร ต้องโหลด Script ตัวไหน ทำงานฝั่ง Client หรือ Server ใช้ไฟล์อะไร มี Dependencies อะไร และ Resource รองรับเกมใด
Cfx.re ระบุว่า fxmanifest.lua ต้องอยู่ภายในโฟลเดอร์ของ Resource และเป็นไฟล์ Lua ที่ทำงานใน Runtime แยกจาก Lua Scripts ภายใน Resource โดยใช้รูปแบบกึ่ง Declarative สำหรับกำหนด Metadata.
สำหรับมือใหม่ หากสร้าง Resource แล้ว FiveM ขึ้นว่า does not have a resource manifest, Resource ไม่ขึ้นใน txAdmin, ensure แล้ว Start ไม่ได้ หรือ Script ไม่ทำงาน สิ่งแรกๆ ที่ควรตรวจคือ ชื่อไฟล์และเนื้อหาใน fxmanifest.lua
① fxmanifest.lua คืออะไร
fxmanifest.lua เป็นไฟล์ที่อธิบาย Resource ให้ FXServer เข้าใจ เช่น
Resource นี้ใช้ FiveM หรือ RedM
ใช้ Client Scripts อะไร
ใช้ Server Scripts อะไร
มี Shared Scripts หรือไม่
ต้องส่งไฟล์อะไรให้ Client
มี Dependencies อะไร
ใช้ NUI หรือไม่
เป็น Map Resource หรือไม่
มี Data Files อะไร
Cfx.re ระบุว่า Resource Manifest ปัจจุบันใช้ชื่อ fxmanifest.lua ส่วนรูปแบบเก่าคือ __resource.lua.
② fxmanifest.lua อยู่ตรงไหน
ไฟล์นี้ต้องอยู่ ภายใน Folder หลักของ Resource
ตัวอย่าง:
resources/
└── helloWorld/
├── fxmanifest.lua
└── client.lua
Cfx.re ระบุว่า Resources ถูกโหลดจาก Folder resources/ ใน Server Data Directory และ Resource แต่ละ Folder ต้องมี Manifest จึงจะถูก Parse เป็น Resource อย่างถูกต้อง.
③ ตัวอย่าง fxmanifest.lua แบบง่ายที่สุด
สำหรับ FiveM Lua Resource พื้นฐานสามารถเริ่มจาก:
fx_version 'cerulean'
game 'gta5'
author 'YourName'
description 'My FiveM resource'
version '1.0.0'
client_script 'client.lua'
รูปแบบนี้สอดคล้องกับตัวอย่าง Creating Scripts ปัจจุบันของ Cfx.re.
④ fx_version 'cerulean' คืออะไร
fx_version กำหนดชุด Functionality ที่ Resource รองรับ
Cfx.re Resource Manifest Reference ระบุว่า FXv2 Resource Version ปัจจุบันคือ cerulean.
จึงพบรูปแบบนี้บ่อย:
fx_version 'cerulean'
สำหรับ Resource ใหม่ควรอ้างอิง Documentation ปัจจุบันแทน Copy Manifest เก่าจาก Internet
⑤ game 'gta5' คืออะไร
คำสั่ง
game 'gta5'
ระบุว่า Resource นี้ทำงานกับ FiveM
Cfx.re กำหนดค่า Game API Set เช่น
gta5→ FiveMrdr3→ RedMcommon→ ใช้ API ทั่วไปที่ไม่เจาะจงเกม
ไว้ใน Resource Manifest Reference.
ดังนั้น Resource FiveM ทั่วไปจะใช้ gta5
⑥ games {} ต่างจาก game อย่างไร
ถ้า Resource รองรับหลาย Game API Sets สามารถใช้รูปแบบ:
games { 'rdr3', 'gta5' }
ตัวอย่าง Manifest อย่างเป็นทางการของ Cfx.re ใช้รูปแบบนี้เพื่อประกาศหลาย Game Sets.
แต่ Resource ที่สร้างสำหรับ FiveM เพียงอย่างเดียวสามารถใช้:
game 'gta5'
ได้
⑦ author คืออะไร
ใช้ใส่ข้อมูลผู้สร้าง Resource เช่น
author 'YourName'
เป็น Metadata ของ Resource
Cfx.re ใช้ author, description และ version ในตัวอย่าง Resource Manifest อย่างเป็นทางการ.
⑧ description คืออะไร
ใช้กำหนดคำอธิบาย Resource
ตัวอย่าง:
description 'Simple vehicle management resource'
ช่วยให้ Developer หรือ Server Owner เปิด Resource แล้วเข้าใจหน้าที่ได้ง่ายขึ้น
Cfx.re รองรับ description เป็น Metadata ของ Resource Manifest.
⑨ version คืออะไร
สามารถกำหนด Version ของ Resource เช่น
version '1.0.0'
Cfx.re ใช้รูปแบบ Version Metadata นี้ในตัวอย่าง Manifest.
สำหรับ Resource ที่พัฒนาเอง การเปลี่ยน Version ตาม Release ช่วยติดตามว่า Server กำลังใช้ Resource รุ่นใด
⑩ client_script คืออะไร
client_script กำหนด Script ที่ต้องทำงานฝั่ง FiveM Client
ตัวอย่าง:
client_script 'client.lua'
Cfx.re ระบุว่า client_script โหลด Script ฝั่ง Client และจะเพิ่มไฟล์นั้นเข้า Resource Packfile โดยอัตโนมัติ.
⑪ client_scripts ใช้หลายไฟล์อย่างไร
ถ้ามีหลาย Client Scripts สามารถใช้:
client_scripts {
'client/main.lua',
'client/menu.lua',
'client/vehicle.lua'
}
Resource Manifest รองรับรูปแบบ Table และตัวอย่างทางการแสดงการใช้ client_scripts หลายไฟล์.
⑫ server_script คืออะไร
ใช้กำหนด Script ที่ทำงานฝั่ง Server
ตัวอย่าง:
server_script 'server.lua'
Cfx.re ระบุว่า server_script โหลด Script ฝั่ง Server และรองรับ Globbing เช่นเดียวกับ Client Script.
⑬ server_scripts ใช้หลายไฟล์ได้ไหม
ได้
ตัวอย่าง:
server_scripts {
'server/main.lua',
'server/database.lua',
'server/commands.lua'
}
เหมาะกับ Resource ที่แยก Code เป็นหลายไฟล์แทนเขียนทุกอย่างใน server.lua
⑭ shared_script คืออะไร
shared_script ใช้กับ Script ที่ต้องโหลด ทั้งฝั่ง Client และ Server
ตัวอย่าง:
shared_script 'config.lua'
Cfx.re ระบุว่า Shared Script จะถูกโหลดทั้งสองฝั่งและถูกเพิ่มเข้า Resource Packfile ด้วย.
จึงมักใช้กับ Config หรือ Code ที่ทั้งสองฝั่งต้องใช้ร่วมกัน
⑮ shared_scripts ใช้หลายไฟล์อย่างไร
ตัวอย่าง:
shared_scripts {
'shared/config.lua',
'shared/constants.lua'
}
เหมาะกับ Resource ที่มี Shared Configuration หลายส่วน
แต่ต้องระวังไม่เก็บข้อมูลลับใน Shared Script เพราะไฟล์ที่ถูกส่งไป Client ไม่ควรถูกใช้เป็นที่เก็บ Secret ฝั่ง Server
⑯ Client Script กับ Server Script ต่างกันอย่างไร
จำง่ายๆ:
Client Script
ทำงานบนเครื่องผู้เล่น
Server Script
ทำงานบน FXServer
Shared Script
โหลดทั้ง Client และ Server
การแยกนี้สำคัญมาก เพราะ Resource ที่ประกาศ Script ผิดฝั่งอาจทำงานไม่ถูกต้อง แม้ชื่อไฟล์จะถูกก็ตาม.
⑰ fxmanifest.lua เป็น Lua Script ปกติหรือไม่
ตัวไฟล์ใช้ Syntax ของ Lua แต่ Cfx.re ระบุว่า Manifest ทำงานใน Runtime แยกจาก Lua Scripts ของ Resource และถูกออกแบบเป็นรูปแบบ semi-declarative metadata definition.
ดังนั้นหน้าที่หลักคือ อธิบาย Resource ไม่ใช่เอา Gameplay Logic ทั้งหมดมาเขียนใน Manifest
⑱ fxmanifest.lua ใช้กับ JavaScript ได้ไหม
ได้
แม้ Resource จะเขียน Gameplay Script ด้วย JavaScript ตัว Manifest ก็ยังชื่อ
fxmanifest.lua
Cfx.re ระบุในคู่มือ JavaScript ว่า Manifest ยังคงเป็น Lua แม้ Resource Scripts จะเขียนด้วย JavaScript.
ตัวอย่าง:
fx_version 'cerulean'
game 'gta5'
client_script 'client.js'
server_script 'server.js'
⑲ fxmanifest.lua ใช้กับ C# ได้ไหม
ได้เช่นกัน
Resource Manifest Reference ระบุ Script Handler ตามนามสกุล รวมทั้ง .net.dll สำหรับ .NET Assemblies และ .js สำหรับ JavaScript.
ดังนั้น Manifest ไม่ได้จำกัด Resource ให้เขียน Lua เท่านั้น
⑳ files {} คืออะไร
files ใช้เพิ่มไฟล์เข้า Resource Packfile เพื่อให้ Client สามารถดาวน์โหลดไฟล์เหล่านั้นเมื่อ Resource ถูกโหลด
Cfx.re ระบุ file/files เป็น Manifest Entry สำหรับไฟล์ที่จะถูกส่งไป Client.
ตัวอย่าง:
files {
'html/index.html',
'html/style.css',
'html/app.js'
}
㉑ files กับ client_script ต่างกันอย่างไร
client_script บอก FiveM ว่าไฟล์นั้นเป็น Script ที่ต้อง Execute ฝั่ง Client
ส่วน files ใช้ประกาศไฟล์ที่ต้องรวมอยู่ใน Resource Packfile แต่ไม่ได้หมายความว่าทุกไฟล์ต้องถูก Execute เป็น Script
นี่สำคัญมากกับ
NUI
HTML
CSS
Images
Metadata
Assets บางประเภท
㉒ ui_page คืออะไร
หาก Resource ใช้ NUI สามารถกำหนดหน้า UI เช่น:
ui_page 'html/index.html'
files {
'html/index.html',
'html/style.css',
'html/app.js'
}
Cfx.re ระบุว่า ui_page ใช้กำหนด NUI Page และหากเป็น Local File ไฟล์นั้นรวมถึง Dependencies ต้องถูกอ้างผ่าน files.
㉓ ui_page ใช้ URL ได้ไหม
Resource Manifest Reference ระบุว่า ui_page รองรับ Absolute URL ได้ด้วย.
แต่สำหรับ Resource ที่ใช้ Local NUI ทั่วไปควรจัดไฟล์ HTML/CSS/JS ใน Resource ให้เป็นระบบและประกาศใน files อย่างถูกต้อง
㉔ NUI เปิดไม่ได้ควรตรวจอะไร
ตรวจ:
ui_pageชื่อไฟล์
Path
filesHTML Dependencies
Browser/Client Console Errors
ถ้า ui_page ชี้ไป html/index.html แต่ไฟล์ไม่มีจริง Resource UI ย่อมไม่สามารถโหลดได้ตามที่ตั้งไว้
㉕ dependency คืออะไร
dependency ใช้กำหนดว่า Resource อื่นต้องถูกโหลดก่อน Resource ปัจจุบัน
ตัวอย่าง:
dependency 'myresource-base'
Cfx.re ระบุว่า Dependency Resource จะต้องโหลดก่อน Resource ปัจจุบัน.
㉖ dependencies ใช้หลายตัวอย่างไร
ตัวอย่าง:
dependencies {
'resource_a',
'resource_b',
'resource_c'
}
เหมาะกับ Resource ที่พึ่ง Framework หรือ Base Resource หลายตัว
หาก Dependency ที่ต้องการไม่พร้อม Resource ปัจจุบันอาจไม่สามารถทำงานได้ตามที่ออกแบบไว้
㉗ dependency กำหนดขั้นต่ำของ Server Build ได้ไหม
ได้
Cfx.re รองรับ Constraint Syntax เช่น:
dependencies {
'/server:4500'
}
เพื่อกำหนด Minimum Server Build Requirement.
นอกจากนี้ยังมี Constraint ประเภทอื่น เช่น OneSync, Policy และ Game Build ตาม Resource Manifest Reference.
㉘ dependency ตรวจ OneSync ได้ไหม
ได้
Resource สามารถใช้ Constraint:
dependency '/onesync'
เพื่อระบุ Requirement เกี่ยวกับ State Awareness/OneSync ตาม Manifest Reference.
เหมาะกับ Resource ที่ออกแบบมาให้ทำงานภายใต้ Environment ที่ต้องใช้ OneSync
㉙ Globbing คืออะไร
Resource Manifest รองรับ Pattern สำหรับเลือกหลายไฟล์ใน Entry บางประเภท
ตัวอย่าง:
client_scripts {
'client/*.lua'
}
หรือ
client_scripts {
'**/*.lua'
}
Cfx.re ระบุ Pattern เช่น *.lua, dir/*.dll, **/*.lua และ **/cl_*.lua ในระบบ Globbing.
㉚ *.lua กับ **/*.lua ต่างกันอย่างไร
ตัวอย่างตาม Cfx.re:
*.lua
เลือกไฟล์ Lua ในระดับ Folder ปัจจุบัน
**/*.lua
สามารถ Match ไฟล์ Lua ลงไปใน Subdirectories ได้ด้วย.
จึงควรเลือก Pattern ให้ตรงโครงสร้าง Resource จริง
㉛ ใช้ Globbing ทุกอย่างดีไหม
ไม่จำเป็นเสมอไป
Resource ขนาดเล็กการระบุชื่อไฟล์ตรงๆ เช่น
client_scripts {
'client/main.lua',
'client/menu.lua'
}
ทำให้อ่านง่ายและรู้ลำดับไฟล์ชัดกว่า
Globbing เหมาะเมื่อโครงสร้าง Resource มีไฟล์จำนวนมากและ Developer เข้าใจ Pattern ที่ใช้
㉜ data_file คืออะไร
data_file ใช้เพิ่ม Data File ชนิดต่างๆ เข้า Game Extra Content System
Cfx.re ระบุว่า Data File เป็น Manifest Entry ที่อ้างไฟล์สำหรับโหลดเข้าสู่ระบบ Extra Content ของเกม.
พบได้มากใน Resources เช่น
รถ
Handling
Audio
Game Metadata
㉝ ตัวอย่าง data_file สำหรับรถ FiveM
ตัวอย่างเชิงโครงสร้าง:
files {
'data/vehicles.meta',
'data/handling.meta'
}
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
Cfx.re Resource Manifest Reference แสดงการใช้ data_file คู่กับ files และรองรับหลาย Data File Types.
ต้องใช้ Data File Type ให้ตรงกับไฟล์จริง
㉞ this_is_a_map คืออะไร
สำหรับ Map Resource สามารถกำหนด:
this_is_a_map 'yes'
Cfx.re ระบุว่า Entry นี้ใช้ Mark Resource ว่าเป็น GTA Map และจะ Reload Map Storage เมื่อ Resource ถูกโหลด.
จึงพบได้บ่อยใน Resource แผนที่
㉟ server_only คืออะไร
หาก Resource ทำงานเฉพาะฝั่ง Server สามารถใช้:
server_only 'yes'
Cfx.re ระบุว่า server_only จะ Mark Resource ว่าเป็น Server-only และหยุดไม่ให้ Client ดาวน์โหลดสิ่งต่างๆ ของ Resource นั้น.
เหมาะกับ Resource ที่ไม่มี Client Files ที่ต้องส่งออกไป
㊱ loadscreen คืออะไร
Resource Manifest รองรับ:
loadscreen 'html/loadscreen.html'
สำหรับกำหนด HTML Loading Screen ของเกม และไฟล์ที่เกี่ยวข้องต้องถูกจัด Resource อย่างถูกต้อง.
จึงสามารถสร้าง Loading Screen เป็น Resource แยกได้
㊲ loadscreen_manual_shutdown คืออะไร
ถ้าใช้:
loadscreen_manual_shutdown 'yes'
Cfx.re ระบุว่าจะป้องกัน Loading Screen NUI จากการปิดอัตโนมัติหลังโหลด Game Data เพื่อให้ Resource ควบคุมเวลาปิดเองได้.
ไม่จำเป็นต้องใช้กับ Loading Screen ทุกแบบ
㊳ lua54 'yes' ยังต้องใส่ไหม
ปัจจุบันไม่จำเป็นแล้ว
Resource Manifest Reference ของ Cfx.re ระบุว่า lua54 ถูก Deprecated และไม่จำเป็นต้องเปิด เพราะตั้งแต่ มิถุนายน 2025 Lua 5.3 ถูกเลิกใช้และ Lua Scripts ทั้งหมดใช้ Lua 5.4 แล้ว.
ดังนั้น Resource ใหม่ไม่ควร Copy:
lua54 'yes'
เพียงเพราะ Tutorial เก่าใส่มา
㊴ ทำไม Tutorial FiveM เก่ายังมี lua54
เพราะในอดีตต้อง Opt-in เพื่อใช้ Lua 5.4
แต่ Documentation ปัจจุบันระบุว่า Setting นี้ Deprecated แล้ว.
นี่เป็นตัวอย่างชัดเจนว่าทำไม FiveM Server Owner ควรตรวจ Official Documentation ปัจจุบันก่อน Copy Manifest เก่า
㊵ FiveM ปัจจุบันใช้ Lua อะไร
Cfx.re ระบุว่า FiveM ใช้ CfxLua ซึ่งเป็น Lua 5.4 ที่มีการปรับแต่งเพิ่มเติม.
ดังนั้น Resource Lua รุ่นใหม่ควรตรวจ Compatibility กับ Lua 5.4 แทนการพึ่ง Behavior ของ Lua รุ่นเก่า
㊶ node_version คืออะไร
Resource Manifest ปัจจุบันรองรับ:
node_version '22'
สำหรับเลือก Node.js Version ของ Server Scripting Runtime
Cfx.re ระบุ Version ที่มีใน Manifest Reference คือ 16 ซึ่งเป็น Default และ 22.
Resource JavaScript ควรเลือก Version เมื่อมีเหตุผลด้าน Compatibility จริง
㊷ __resource.lua คืออะไร
__resource.lua คือ Resource Manifest Format รุ่นเก่า
Cfx.re ระบุว่าปัจจุบันควรใช้ fxmanifest.lua และ fx_version แทน Resource Manifest Version แบบเก่า.
Resource เก่าที่ใช้ __resource.lua อาจยังพบได้ แต่ Server Console สามารถเตือนว่า Format นั้น Deprecated.
㊸ เปลี่ยน __resource.lua เป็น fxmanifest.lua แค่เปลี่ยนชื่อได้ไหม
ไม่ควรคิดว่าเปลี่ยนชื่ออย่างเดียวพอทุกกรณี
Cfx.re ระบุว่าสามารถเปลี่ยนไปใช้ fxmanifest.lua และปรับโครงสร้างภายในเพื่อ Compatibility ได้.
ดังนั้น Resource เก่าควรตรวจ Directive เดิมและ Migration ให้ถูก ไม่ใช่ Rename แล้วหวังว่าจะทำงานทันที
㊹ Resource ไม่มี fxmanifest.lua จะเกิดอะไร
Cfx.re ระบุว่า Resource Folder ที่ไม่มี Manifest สามารถแสดง Warning:
does not have a resource manifest (fxmanifest.lua)
และหากไม่ได้ตั้งใจให้ Folder นั้นไม่มี Manifest ควรตรวจชื่อไฟล์ให้ถูกต้อง.
นี่เป็น Error ที่มือใหม่เจอบ่อยมาก
㊺ FiveM มองไม่เห็น fxmanifest.lua
ตรวจ:
ชื่อไฟล์ต้องเป็น
fxmanifest.luaไม่ใช่
fxmanifest.lua.txtอยู่ Root Folder ของ Resource
Resource อยู่ใต้
resources/File Syntax ไม่มีปัญหา
ใช้ Reload/Refresh Resource List
Cfx.re Getting Started ให้สร้าง client.lua และ fxmanifest.lua ภายใน Resource Folder โดยตรง.
㊻ Resource อยู่ผิด Folder
โครงสร้างที่ถูกควรเป็น:
resources/
└── myresource/
├── fxmanifest.lua
├── client.lua
└── server.lua
ไม่ควรเป็น:
resources/
└── myresource/
└── myresource/
├── fxmanifest.lua
└── client.lua
หาก Server กำลังมอง Folder ชั้นนอกเป็น Resource แต่ Manifest อยู่ลึกอีกชั้น อาจทำให้ Resource ไม่ถูก Parse ตามที่คาด
Cfx.re ระบุว่า Resource Folder แต่ละตัวต้องมี Manifest อยู่ใน Resource Folder นั้น.
㊼ เพิ่ม Resource แล้วต้อง Refresh อย่างไร
Official Creating Scripts Guide ปัจจุบันให้เปิด txAdmin In-game Menu แล้วไปที่
Resources → Reload & Refresh
จากนั้นค้นหา Resource และกด Start.
จึงไม่จำเป็นต้อง Restart FXServer ทุกครั้งที่เพิ่ม Resource ขนาดเล็กเพื่อทดสอบ
㊽ Start Resource ผ่าน txAdmin ได้ไหม
ได้
Cfx.re Getting Started ให้ค้นหา Resource จาก Resource List แล้วกด Start เพื่อเปิด Script ตัวอย่าง.
หลัง Start สามารถตรวจ FiveM F8 Console หรือ Server Console ตามประเภท Script เพื่อดูผลลัพธ์
㊾ fxmanifest.lua Syntax ผิดจะเกิดอะไร
Resource อาจไม่ถูกโหลดหรืออาจแสดง Error ใน Server Console
เมื่อเกิดปัญหาให้ตรวจ Change ล่าสุด เช่น
Quote หาย
Comma ผิด
{}ไม่ครบชื่อไฟล์ผิด
Path ผิด
อย่าเพิ่ม Code ต่ออีกหลายบรรทัดก่อนแก้ Manifest ให้ Parse ได้ก่อน
㊿ Checklist fxmanifest.lua สำหรับมือใหม่
ก่อน Start Resource ให้ตรวจ:
ไฟล์ชื่อ
fxmanifest.luaอยู่ Root Resource Folder
ใช้
fx_version 'cerulean'ใช้
game 'gta5'สำหรับ FiveMClient Scripts อยู่จริง
Server Scripts อยู่จริง
Shared Scripts อยู่จริง
filesPath ถูกต้องNUI มี
ui_pageและ Files ครบDependencies ถูกต้อง
Data Files ใช้ Type ถูก
Map Resource ใช้ Configuration ที่เหมาะสม
ไม่จำเป็นต้องใส่
lua54 'yes'ใน Resource ใหม่Resource ถูก Reload/Refresh
ดู Console หลัง Start
ข้อมูลหลักเหล่านี้สอดคล้องกับ Resource Manifest Reference และ Creating Scripts Guide ปัจจุบันของ Cfx.re.
ตารางคำสั่ง fxmanifest.lua สำคัญ
| Entry | หน้าที่ |
|---|---|
fx_version | กำหนด FX Resource Version |
game | กำหนด Game API Set |
author | ผู้สร้าง Resource |
description | คำอธิบาย |
version | Version Resource |
client_script | Script ฝั่ง Client |
server_script | Script ฝั่ง Server |
shared_script | Script ทั้ง Client/Server |
files | ไฟล์ใน Resource Packfile |
ui_page | หน้า NUI |
data_file | Game Data File |
dependency | Resource Requirement |
this_is_a_map | Mark เป็น Map Resource |
server_only | Resource ฝั่ง Server เท่านั้น |
loadscreen | Loading Screen |
node_version | เลือก Node.js Runtime |
Entry เหล่านี้ถูกกำหนดอยู่ใน Resource Manifest Reference ของ Cfx.re.
ตัวอย่าง fxmanifest.lua Client + Server + Shared
fx_version 'cerulean'
game 'gta5'
author 'YourName'
description 'Example FiveM resource'
version '1.0.0'
shared_script 'config.lua'
client_scripts {
'client/main.lua',
'client/menu.lua'
}
server_scripts {
'server/main.lua',
'server/commands.lua'
}
โครงสร้างนี้ใช้ Entry มาตรฐานที่ Cfx.re รองรับ ได้แก่ shared_script, client_script และ server_script.
ตัวอย่าง fxmanifest.lua สำหรับ NUI
fx_version 'cerulean'
game 'gta5'
ui_page 'html/index.html'
files {
'html/index.html',
'html/style.css',
'html/app.js'
}
client_script 'client.lua'
Cfx.re ระบุว่า Local ui_page และ Dependencies ต้องอ้างผ่าน files.
ตัวอย่าง fxmanifest.lua สำหรับ Map
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
this_is_a_map ใช้ Mark Resource ว่าเป็น GTA Map Resource.
Resource Map จริงอาจมี Files และ Configuration เพิ่มตามประเภท Assets ที่ใช้
ตัวอย่าง fxmanifest.lua สำหรับ Server-only Resource
fx_version 'cerulean'
game 'gta5'
server_only 'yes'
server_script 'server.lua'
Cfx.re ระบุว่า server_only ป้องกันไม่ให้ Clients ดาวน์โหลดข้อมูลของ Resource นั้น.
เหมาะกับ Resource ที่มี Logic ฝั่ง Server เพียงอย่างเดียว
FiveM fxmanifest.lua ไม่ทำงานแก้อย่างไร
ใช้ลำดับนี้:
ชื่อไฟล์ → ตำแหน่ง → Syntax → File Path → Refresh → Start → Console
อย่าเริ่มจาก Reinstall FXServer
ถ้า Server ขึ้น Warning ว่า Resource ไม่มี Manifest ให้ตรวจก่อนว่าไฟล์เป็น fxmanifest.lua จริงและอยู่ใน Resource Folder ที่ถูกต้องตามโครงสร้าง Cfx.re.
FiveM fxmanifest.lua ต้องมี lua54 ไหม
ไม่ต้องสำหรับ Resource ใหม่ในปัจจุบัน
Cfx.re ระบุชัดว่า lua54 ถูก Deprecated และตั้งแต่เดือนมิถุนายน 2025 Lua Scripts ทั้งหมดใช้ Lua 5.4 แล้ว.
ดังนั้น Manifest แบบใหม่สามารถใช้:
fx_version 'cerulean'
game 'gta5'
โดยไม่ต้องเพิ่ม:
lua54 'yes'
FiveM fxmanifest.lua กับ server.cfg ต่างกันอย่างไร
จำง่ายๆ:
server.cfg
กำหนดว่า Server ต้องเปิด Resource อะไร และกำหนดค่าระดับ FXServer
fxmanifest.lua
บอกว่า Resource ตัวนั้นประกอบด้วยอะไร
ตัวอย่าง:
ใน server.cfg
ensure myresource
ส่วนใน myresource/fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
client_script 'client.lua'
Cfx.re แยก Resource Directory/Manifest และการ Start Resources ออกจากกันตามโครงสร้างนี้.
FiveM Resource ไม่ขึ้นใน txAdmin แก้อย่างไร
ตรวจว่า Resource อยู่ใต้ resources/ และมี fxmanifest.lua
จากนั้น Reload & Refresh Resource List ตาม Official Creating Scripts Guide แล้วค้นหา Resource อีกครั้ง.
ถ้ายังไม่ขึ้น ให้ดู Server Console หา Manifest หรือ Folder Error
FiveM Resource Start แล้วไม่มีอะไรเกิดขึ้น
ต้องดูว่า Resource มี Script ฝั่งไหน
ถ้า Manifest มี:
client_script 'client.lua'
ให้ดู F8 Console ฝั่ง Client
ถ้ามี:
server_script 'server.lua'
ให้ดู Server Console
การรู้ว่า Script ทำงานฝั่งไหนช่วยให้ Debug ถูกที่ตั้งแต่แรก.
FiveM fxmanifest.lua เขียนด้วย Notepad ได้ไหม
ได้ในแง่ที่เป็น Text/Lua File แต่ควรใช้ Text Editor ที่แสดง
Syntax Highlighting
File Extensions
Line Numbers
ได้ชัดเจน
Official Cfx.re Creating Scripts Guide ปัจจุบันใช้ Visual Studio Code ในตัวอย่างการสร้าง fxmanifest.lua.
ข้อสำคัญกว่าชื่อ Editor คืออย่าเผลอบันทึกเป็น fxmanifest.lua.txt
FiveM fxmanifest.lua ควรใช้ Template จากไหน
สำหรับ Resource ใหม่ควรเริ่มจาก Official Cfx.re Documentation มากกว่าดาวน์โหลด Manifest สำเร็จรูปจากแหล่งที่ไม่ทราบที่มา
Template พื้นฐานที่ปลอดภัยในการเริ่มเรียนรู้คือ:
fx_version 'cerulean'
game 'gta5'
author 'YourName'
description 'My resource'
version '1.0.0'
client_script 'client.lua'
ซึ่งสอดคล้องกับ Creating Scripts Guide ปัจจุบัน.
จากนั้นเพิ่ม server_script, files, ui_page, dependency หรือ data_file เฉพาะเมื่อ Resource ต้องใช้จริง
สรุป FiveM fxmanifest.lua คืออะไร
fxmanifest.lua คือ Resource Manifest หลักของ FiveM ที่อยู่ภายใน Resource Folder และกำหนด Metadata รวมถึง Client Scripts, Server Scripts, Shared Scripts, Files, NUI, Data Files และ Dependencies ของ Resource นั้น.
สำหรับ Resource FiveM ใหม่ โครงสร้างพื้นฐานควรเริ่มจาก fx_version 'cerulean' และ game 'gta5' แล้วเพิ่ม Scripts หรือ Files ตามที่ Resource ใช้งานจริง โดย Official Creating Scripts Guide ปัจจุบันใช้โครงสร้างดังกล่าวกับ Resource ตัวอย่างโดยตรง.
หาก Resource ไม่ถูกตรวจพบ ให้เช็กว่า Resource อยู่ใต้ resources/, Manifest ชื่อ fxmanifest.lua ถูกต้อง และไม่ได้เผลอบันทึกเป็นไฟล์ .txt เพราะ Cfx.re ระบุว่า Resource Folder ต้องมี Manifest จึงจะถูก Parse เป็น Resource อย่างถูกต้อง.
อีกจุดที่สำคัญในปี 2026 คือ ไม่จำเป็นต้องใส่ lua54 'yes' แล้ว เพราะ Cfx.re ระบุว่า Directive นี้ Deprecated และ Lua Scripts ทั้งหมดเปลี่ยนมาใช้ Lua 5.4 ตั้งแต่เดือนมิถุนายน 2025.
สำหรับผู้อ่าน comsiam ให้จำสูตร “server.cfg สั่งให้ Resource เปิด ส่วน fxmanifest.lua บอกว่า Resource มีอะไร” และ comsiam แนะนำให้เริ่ม Manifest แบบเล็กที่สุดก่อน แล้วเพิ่ม Client, Server, NUI, Files และ Dependencies ทีละส่วน เพราะ Debug ง่ายกว่าการ Copy fxmanifest.lua ขนาดใหญ่จาก Resource อื่นมาทั้งไฟล์
Comments
Post a Comment