วิธีเพิ่มเสื้อผ้าเข้า FiveM Server

การเพิ่ม เสื้อผ้า Custom หรือ Add-on Clothes เข้า FiveM Server ไม่ควรทำด้วยการ Copy ไฟล์เข้า resources แล้วหวังว่าเสื้อจะปรากฏใน Clothing Menu ทันที เพราะระบบจริงแบ่งเป็นอย่างน้อย 3 ส่วน ได้แก่ Clothing Asset, FiveM Resource และ Clothing Script/Menu

FiveM Server โหลด Content ผ่านระบบ Resources โดยแต่ละ Resource สามารถประกอบด้วย Scripts และ Streaming Assets และ Resource ที่ถูกต้องต้องมี fxmanifest.lua อยู่ที่ Resource Root เพื่อให้ FXServer Parse ได้.

บทความนี้จาก comsiam จะพาทำตั้งแต่ตรวจไฟล์เสื้อ วาง Resource ให้ถูก ใช้ refresh และ ensure ไปจนถึงตรวจ Component, Drawable, Texture และ Collection เมื่อเสื้อเข้า Server แล้วแต่ไม่ปรากฏในเมนู

ก่อนเพิ่มเสื้อผ้า FiveM ต้องเข้าใจอะไร

โครงสร้างโดยรวมคือ

Clothing Pack
↓
FiveM Resource
↓
Server โหลด Resource
↓
Ped ได้ Clothing Content
↓
Clothing Menu อ่านรายการ
↓
ผู้เล่นเลือก Drawable / Texture

ถ้าขั้นใดขั้นหนึ่งมีปัญหา อาจเกิดอาการ Resource Start สำเร็จแต่ผู้เล่นยังไม่เห็นเสื้อใหม่

① Backup Server ก่อนเพิ่มเสื้อผ้า

ก่อนติดตั้งให้ Backup อย่างน้อย

server.cfg
resources/[clothes]/
Clothing Script
Outfit Database

โดยเฉพาะถ้าจะ Merge Pack เดิมกับ Pack ใหม่

วิธีที่ปลอดภัยกว่าคือเพิ่ม Pack ใหม่เป็น Resource แยกก่อน แล้วทดสอบให้ทำงาน จากนั้นค่อยพิจารณา Merge

② แตก ZIP เสื้อผ้าก่อน

หลังดาวน์โหลด Clothing Pack อย่านำ ZIP ไปวางใน resources โดยตรง

แตกไฟล์ก่อนแล้วหา Resource Root

สิ่งสำคัญคือ Folder ที่มี

fxmanifest.lua

FiveM กำหนดว่า Resource Folder ต้องมี Resource Manifest เพื่อให้ถูก Parse เป็น Resource อย่างถูกต้อง.

③ หา Resource Root ให้ถูก

ปัญหาที่พบบ่อยคือ Folder ซ้อน

เช่น

police_clothes/
└── police_clothes/
    ├── fxmanifest.lua
    └── stream/

Resource จริงคือ Folder ชั้นที่มี fxmanifest.lua

ถ้าเอาชั้นนอกไปวางแล้วสั่ง

ensure police_clothes

Server อาจหา Manifest ไม่ถูกต้อง

④ fxmanifest.lua คืออะไร

fxmanifest.lua คือ Resource Manifest ของ FiveM ใช้กำหนด Metadata, Scripts, Files และ Requirements ของ Resource.

ตัวอย่าง Manifest ขั้นพื้นฐานอาจเริ่มจาก

fx_version 'cerulean'
game 'gta5'

แต่ อย่าเขียน Manifest ใหม่ทับของ Clothing Pack ถ้ามีของเดิมอยู่แล้ว

ใช้ของ Creator ก่อน

⑤ อย่าลบ fxmanifest.lua ของผู้สร้าง

Clothing Resource บาง Pack อาจมี Configuration เพิ่มเติมใน Manifest เช่น

  • Files

  • Dependencies

  • Game Build Requirement

  • Policy Requirement

  • Client Scripts

Resource Manifest ปัจจุบันรองรับ dependency และ Constraints อย่าง /gameBuild: หรือ /policy:subdir_file_mapping โดย Cfx.re ระบุ subdir_file_mapping ว่าเกี่ยวข้องกับ clothing support.

ดังนั้นอย่าลบ Manifest เดิมแล้วแทนด้วยไฟล์สั้น ๆ เพียงเพื่อให้ Resource Start

⑥ โฟลเดอร์ stream คืออะไร

FiveM Resource สามารถประกอบด้วย Streaming Assets ซึ่งเป็น Content ที่ Client โหลดจาก Resource.

Clothing Pack จำนวนมากจึงมีโครงสร้างลักษณะ

custom_clothes/
├── fxmanifest.lua
└── stream/

แต่ให้รักษา Directory Structure ที่ Creator ให้มาเป็นหลัก

⑦ ตัวอย่างการจัด Resource เสื้อผ้า

สามารถจัด Category เช่น

resources/
└── [clothes]/
    ├── police_clothes/
    │   ├── fxmanifest.lua
    │   └── stream/
    │
    ├── ems_clothes/
    │   ├── fxmanifest.lua
    │   └── stream/
    │
    └── gang_clothes/
        ├── fxmanifest.lua
        └── stream/

FiveM รองรับ Folder ที่อยู่ใน [brackets] เป็น Category และ Resources ที่อยู่ภายในสามารถถูก Start แยกกันได้.

⑧ ตั้งชื่อ Resource ให้อ่านง่าย

ควรใช้ชื่อเช่น

police_clothes
ems_clothes
gang_red_clothes
city_fashion

หลีกเลี่ยงชื่อ

new
new2
final
final_final
pack

เพราะเมื่อ Server มี Clothing Pack จำนวนมาก การหา Pack ที่ทำให้เสื้อเพี้ยนจะยากขึ้น

⑨ Copy Resource เข้า resources

ตัวอย่าง

server-data/
└── resources/
    └── [clothes]/
        └── police_clothes/

และตรวจให้แน่ใจว่า

police_clothes/fxmanifest.lua

มีอยู่จริง

FiveM โหลด Resources จาก resources/ ใน Server Data Directory.

⑩ เพิ่ม Resource แล้วต้อง Restart Server ไหม

ไม่จำเป็นต้อง Restart Server ทั้งเครื่องทุกครั้ง

FiveM มีคำสั่ง

refresh

สำหรับ Rescan resources Folder และโหลด Resource Manifests ใหม่ ทำให้ Resource ที่เพิ่งเพิ่มสามารถถูก Start ได้.

ดังนั้นหลัง Copy Resource ใหม่สามารถใช้

refresh

ก่อน

⑪ หลัง refresh ใช้ ensure

จากนั้นใช้

ensure police_clothes

Cfx.re ระบุว่า ensure จะ Start Resource หากยังไม่ได้ Start และ Restart Resource หากกำลังทำงานอยู่แล้ว.

Workflow จึงเป็น

refresh
ensure police_clothes

⑫ refresh กับ ensure ต่างกันอย่างไร

refresh

refresh

สแกน Resource Folders และ Manifests ใหม่.

ensure

ensure resource_name

ทำให้ Resource นั้นอยู่ในสถานะ Started โดย Start หรือ Restart ตามสถานะปัจจุบัน.

จึงไม่ใช่คำสั่งเดียวกัน

⑬ เพิ่มใน server.cfg

ถ้าต้องการให้ Clothing Resource Start ทุกครั้งเมื่อ Server เปิด ให้เพิ่มใน Configuration ตามโครงสร้าง Server ของคุณ เช่น

ensure police_clothes
ensure ems_clothes
ensure gang_clothes

FiveM Resources สามารถถูก Start แยกตามชื่อ Resource และ ensure รองรับ Resource Name โดยตรง.

⑭ สามารถ ensure ทั้ง Category ได้ไหม

ได้

Server Commands ของ FiveM ระบุว่า ensure รองรับ Category Names ด้วย.

ดังนั้นถ้ามี

[clothes]

ที่มีเฉพาะ Resources ที่ต้องการ Start จริง อาจใช้ Category Management ได้

อย่างไรก็ตาม Server Production ควรจัด Category ให้เป็นระเบียบก่อนใช้วิธีนี้

⑮ Resource Started แล้วเสื้อจะขึ้นทันทีไหม

ไม่เสมอ

การ Start สำเร็จหมายความว่า Resource ถูกโหลดในระดับ FiveM Resource แต่ยังต้องตรวจว่า

Ped Model
Collection
Component
Drawable
Texture
Clothing Menu

มองเห็น Content นั้นถูกหรือไม่

ดังนั้นข้อความ

Started resource police_clothes

ไม่ได้ยืนยันว่า Clothing Menu Integration สมบูรณ์แล้ว

⑯ เข้า Server แล้วควรทำอะไร

หลัง Resource Started ให้เข้า Server แล้วเปิด Clothing Menu ที่ใช้งานอยู่

ตรวจทีละประเภท เช่น

Tops
Torso
Undershirts
Legs
Shoes
Accessories

จากนั้นเลื่อนไปยังรายการท้าย ๆ หรือ Collection ที่เพิ่งเพิ่มตามวิธีที่ Clothing Script รองรับ

⑰ Component คืออะไร

เสื้อผ้า Ped แบ่งออกเป็น Components และ FiveM มี Native สำหรับเปลี่ยน Ped Component Variation

โครงสร้างคือ

Ped
↓
Component
↓
Drawable
↓
Texture

Cfx.re Collection Documentation ยืนยันว่า Drawable Components ถูกจัดเก็บเป็น Collections และสามารถอ้างได้ทั้ง Global และ Collection-based Index.

⑱ Tops อยู่ Component ไหน

ในระบบ Ped Variation ของ GTA V/FiveM เสื้อด้านนอกถูกจัดอยู่ใน Component Variation ที่ Clothing Scripts ใช้ควบคุมร่วมกับ Components อื่น เช่น Torso, Legs และ Shoes

สิ่งสำคัญกว่าการจำเลขเพียงอย่างเดียวคือ Clothing Menu ต้อง Apply Component + Drawable + Texture ให้กับ Ped ที่ถูกต้อง

⑲ Drawable คืออะไร

Drawable คือ Variation หลักภายใน Component

เช่น

Tops
├── Drawable 0
├── Drawable 1
├── Drawable 2
└── ...

Custom Shirt ใหม่จึงอาจปรากฏเป็น Drawable เพิ่มใน Component/Collection ตาม Asset Structure ที่ใช้

⑳ Texture คืออะไร

Drawable หนึ่งสามารถมีหลาย Texture Variations

เช่น

Police Shirt
├── Texture 0 = Black
├── Texture 1 = Blue
├── Texture 2 = Supervisor
└── Texture 3 = SWAT

ดังนั้นถ้าเสื้อขึ้นแล้วแต่สีหรือ Logo ไม่ตรง อย่ารีบสรุปว่า Resource เสีย

ตรวจ Texture Variation ก่อน

㉑ Male กับ Female ต้องตรวจแยก

Clothing Data ผูกกับ Ped/Collection Structure

ถ้า

Male → ขึ้น
Female → ไม่ขึ้น

ให้ตรวจ Asset สำหรับ Female แยก

อย่าใช้ Drawable Index ของ Ped หนึ่งกับอีก Ped โดยคิดว่าจะตรงกันอัตโนมัติ

Collection APIs ของ FiveM ทำงานในบริบทของ Ped และ Collections ที่ Ped นั้นมี.

㉒ Add-on Clothes กับ Replace Clothes ต้องแยกก่อนติดตั้ง

ถ้า Pack เป็น Add-on จะเพิ่ม Custom Content/Collection ตามโครงสร้างของ Pack

ถ้าเป็น Replace จะมีแนวคิดแทน Assets/Variations ที่มีอยู่

อย่าใช้วิธีติดตั้งหรือ Merge เหมือนกันโดยไม่อ่านรายละเอียดของ Pack

㉓ Collection คืออะไร

Cfx.re ระบุว่า GTA V Ped Drawable Components และ Props ถูกเก็บใน Named Groups ที่เรียกว่า Collections.

ภาพรวม

Base Collection
DLC Collection
Custom Collection A
Custom Collection B

แต่ละ Collection มี Drawables ของตัวเอง

㉔ ทำไม Collection สำคัญกับ Add-on Clothes

เพราะ Custom Clothes สามารถถูกจัดอยู่ใน Custom Collections

และ Cfx.re ระบุว่าหลัง GTA Title Update มี Official DLC Collection ใหม่เพิ่มเข้ามา ทำให้ Global Index ของ Custom Collections สามารถเลื่อน แต่ Local Index ภายใน Collection ยังคงที่.

นี่มีผลโดยตรงกับ Saved Outfit

㉕ Global Index คืออะไร

Global Index คือการนับ Drawable ต่อจาก Collections ทั้งหมด

เช่น

Collection A
0
1
2

Collection B
3
4
5

ถ้า GTA เพิ่ม Drawables ก่อน Collection B ตำแหน่ง Global ของ B สามารถเลื่อนได้ตามระบบที่ Cfx.re อธิบาย.

㉖ Local Index คืออะไร

Local Index เริ่มนับใหม่ภายในแต่ละ Collection

เช่น

police_collection
├── 0
├── 1
├── 2
└── 3

Cfx.re ระบุว่า Collection-based indexes ถูกออกแบบให้ Stable หลัง Title Updates.

สำหรับ Server ใหม่จึงควรพิจารณา Architecture นี้หาก Clothing Script รองรับ

㉗ เสื้อขึ้นคนละตัวหลัง GTA Update ทำอย่างไร

ก่อน Reinstall Pack ให้ตรวจว่า Clothing Script บันทึก Global Drawable Index หรือไม่

เพราะ Cfx.re ระบุว่าการเพิ่ม Official DLC Collections ใน Title Update สามารถ Shift Global Index ของ Custom Collections ได้.

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

ก่อน Update
Drawable 150 = Police Shirt

หลัง Update
Drawable 150 = Item อื่น

โดยไฟล์เสื้อเดิมอาจยังอยู่ครบ

㉘ Collection-based Natives ช่วยอะไร

FiveM มี Collection-based APIs สำหรับ

  • Components

  • Props

  • ตรวจ Collections

  • แปลง Global ↔ Local Index

  • Apply Component จาก Collection

และ Cfx.re ระบุว่า APIs ชุดนี้มีสำหรับ GTAV ฝั่ง Client.

จุดเด่นคือใช้

Collection Name
+
Local Drawable Index

แทนการอ้าง Global Index อย่างเดียว

㉙ Clothing Menu เก่าอาจไม่รองรับ Collection ใหม่

เป็นไปได้

Resource เสื้อผ้าสามารถ Stream Content สำเร็จ แต่ Clothing Menu อาจมี Logic จำกัดจำนวน Drawable หรือใช้ระบบ Index แบบเก่า

ถ้า Item ไม่ปรากฏใน Menu แต่ Resource Start ปกติ ให้ตรวจ Clothing Script Integration ต่อ ไม่ใช่ติดตั้ง Asset ซ้ำอย่างเดียว

㉚ วิธีแยกว่า Asset หรือ Menu มีปัญหา

ทดสอบตามลำดับ

Resource Started?
↓
Ped มี Collection/Drawable ใหม่?
↓
สามารถ Apply Asset ได้?
↓
Clothing Menu แสดง Asset หรือไม่?

ถ้า Asset Apply ได้แต่ Menu ไม่แสดง ปัญหามีแนวโน้มอยู่ที่ Menu/Index Logic มากกว่าตัว Clothing Resource

㉛ เสื้อขึ้นแต่แขนหาย

ตรวจ Combination ของ

Top
Torso
Undershirt

ก่อน

เสื้อตัวใหม่อาจต้องใช้ Torso/Arms Variation ที่สัมพันธ์กัน

อย่าแก้ Resource Manifest หากตัวเสื้อขึ้นแล้วแต่ Body Combination ผิด

㉜ เสื้อทะลุตัว

ถ้าเสื้อขึ้นแต่

  • แขนทะลุ

  • ตัวทะลุ

  • เสื้อด้านในโผล่

  • Geometry แตกตอน Animation

ควรตรวจ Asset, Weighting และ Clothing Combination

การ refresh หรือ ensure ซ้ำจะไม่แก้ Mesh ที่สร้างไม่เหมาะกับ Ped

㉝ Texture เสื้อไม่ขึ้น

ถ้ารูปทรงเสื้อถูกแต่เป็นสีผิดหรือ Texture หาย ให้ตรวจ

Texture Variation
Texture Asset
Material

ก่อน

อย่าคิดว่า Drawable เสียเพียงเพราะ Texture ไม่ถูก

㉞ หมวกไม่ขึ้นแต่เสื้อขึ้น

Components และ Props เป็นคนละกลุ่มของ Ped Clothing Data และ Collection-based APIs ของ FiveM รองรับทั้ง Drawable Components และ Props.

ดังนั้นถ้า Clothing Pack มีหมวกหรือแว่น ต้องตรวจ Prop Handling ใน Menu ด้วย

㉟ Outfit เดิมเพี้ยนหลังเพิ่ม Pack ใหม่

อย่ารีบลบ Pack ใหม่

ตรวจ

  • Global Index

  • Custom Collection

  • Clothing Menu Cache/Data

  • Saved Outfit IDs

  • Asset Conflict

โดยเฉพาะ Server ที่อ้าง Custom Clothes ด้วย Global Index เนื่องจาก Index Structure เป็นจุดที่ Cfx.re เตือนเรื่องการ Shift หลัง Title Updates.

㊱ เพิ่ม Pack แล้วเสื้อเก่าหาย

ทำ A/B Test

Old Pack ON
New Pack OFF

จากนั้น

Old Pack OFF
New Pack ON

แล้ว

Old Pack ON
New Pack ON

ถ้าแต่ละ Pack เดี่ยวปกติแต่เปิดพร้อมกันเสีย ให้ตรวจ Asset/Collection/Naming Conflict

㊲ อย่า Merge Pack ตั้งแต่ครั้งแรก

ช่วงติดตั้งครั้งแรกควรใช้

police_pack
ems_pack
gang_pack

เป็น Resources แยก

FiveM Resources สามารถ Start, Stop และ Restart แยกจากกันได้ จึงเหมาะกับการ Isolation Test.

เมื่อทุก Pack ทำงานแล้วจึงค่อยตัดสินใจว่าจำเป็นต้อง Merge จริงหรือไม่

㊳ Copy แล้วกด Replace ทั้งหมดอันตราย

หากสอง Packs มีไฟล์ชื่อเหมือนกันแต่ Content คนละตัว การกด Replace อาจลบ Asset เดิมไป

ดังนั้นก่อน Merge ต้องตรวจอย่างน้อย

Filename
Collection
Male/Female
Component
Texture
Manifest

การลดจำนวน Folder ไม่คุ้มกับการทำ Clothing Pack เดิมเสีย

㊴ subdir_file_mapping คืออะไร

Resource Manifest ของ FiveM รองรับ Policy Constraint

/policy:subdir_file_mapping

และเอกสาร Cfx.re ระบุว่า Policy นี้เกี่ยวข้องกับ clothing support.

หาก Clothing Pack ของ Creator กำหนด Dependency/Policy นี้ไว้ อย่าลบออกจาก Manifest เพียงเพื่อให้ Resource Start

㊵ Game Build สำคัญกับ Clothing Pack ไหม

Resource Manifest สามารถกำหนด Minimum Game Build ผ่าน Constraint รูปแบบ

/gameBuild:...

ได้.

ดังนั้นหาก Creator ระบุ Game Build Requirement ควรตรวจ Server Build Configuration ให้ตรง แทนการแก้ Asset Files แบบสุ่ม

㊶ อย่าเพิ่ม gameBuild เองถ้า Creator ไม่ได้ระบุ

การบังคับ Game Build เป็นการตัดสินใจระดับ Server ไม่ใช่วิธีทำให้เสื้อขึ้นโดยอัตโนมัติ

ถ้า Resource Start แต่ Clothes ไม่แสดง ให้ตรวจ Ped/Collection/Menu ก่อน

อย่าเปลี่ยน Build ทั้ง Serverเพียงเพราะ Clothing Item หนึ่งตัวมีปัญหา

㊷ ต้องแก้ fxmanifest.lua เองไหม

ถ้า Pack มี Manifest ทำงานอยู่แล้ว ไม่ต้องแก้

ควรแก้เฉพาะเมื่อ

  • Creator ระบุให้แก้

  • คุณเข้าใจ Dependency

  • กำลังพัฒนา Resource เอง

  • มี Error ที่ชี้ไป Manifest จริง

Resource Manifest มีหน้าที่มากกว่าแค่ทำให้ Folder Start ได้.

㊸ lua54 'yes' ต้องเพิ่มไหม

Resource Manifest Documentation ปัจจุบันระบุว่า lua54 ถูก Deprecated แล้ว และ Lua 5.4 เป็นค่าใช้งานทั่วไปใน FiveM ปัจจุบัน

ดังนั้นการเพิ่ม lua54 'yes' ไม่ใช่วิธีทำให้ Clothing Assets โหลด และไม่ควรใส่เพียงเพราะเห็นจาก Tutorial เก่า.

㊹ Clothes Resource ไม่มี Script ได้ไหม

ได้ในหลักการ เพราะ FiveM Resource สามารถประกอบด้วย Streaming Assets ได้ ไม่จำเป็นต้องมี Client/Server Script ทุก Resource.

ดังนั้น Clothing Asset Resource อาจมีเพียง Manifest และ Assets ตามโครงสร้างของ Pack

ส่วน Clothing Menu อยู่ Resource อื่น

㊺ เสื้อผ้ากับ Clothing Menu ควรแยก Resource ไหม

เป็นแนวทางที่มีประโยชน์

ตัวอย่าง

custom_clothes/
clothing_menu/
character_system/

ช่วยให้เมื่อ Item ไม่ขึ้นสามารถแยกได้ว่า

Asset Problem

หรือ

Menu Problem

Resources ของ FiveM สามารถจัดการแยกกันได้.

㊻ Clothing Pack ต้องมี Database ไหม

ตัว Asset เองไม่จำเป็นต้องมี Database

Database มักเกี่ยวกับ

  • Saved Outfit

  • Character Appearance

  • Job Uniform

  • Clothing Shop Purchase

ซึ่งเป็นหน้าที่ของ Clothing/Character System

ดังนั้นอย่าหา SQL File ในทุก Clothing Asset Pack แล้วสรุปว่า Pack ไม่สมบูรณ์หากไม่มี

㊼ ต้อง Import SQL ทุก Pack ไหม

ไม่

หากเป็น Asset-only Pack อาจไม่มี SQL ใด ๆ

ให้ Import SQL เฉพาะเมื่อ Documentation ของ Clothing Script/Pack ระบุจริง

การ Import SQL แบบสุ่มเสี่ยงทำ Database Schema ปัจจุบันเสีย

㊽ เสื้อผ้า Add-on ต้อง Restart Clothing Menu ไหม

หาก Menu สร้างรายการ Clothing ตอน Resource Start การ Restart Menu อาจจำเป็นตาม Architecture ของ Script

แต่ FiveM ไม่มี Rule กลางว่าทุก Clothing Menu ต้อง Restart

เริ่มจาก

refresh
ensure clothes_resource

ตาม Resource Commands ก่อน.

จากนั้นทำตาม Documentation ของ Menu ที่ใช้

㊾ ใช้ restart ต่างจาก ensure อย่างไร

restart resourceName จะ Restart Resource หาก Resource นั้น Started อยู่ ส่วน ensure resourceName จะ Start ถ้ายังหยุด หรือ Restart ถ้า Started แล้ว.

ดังนั้นสำหรับการติดตั้ง Resource ใหม่ ensure มักสะดวกกว่า

㊿ วิธีติดตั้งแบบสั้นที่สุด

ขั้นตอนหลักคือ

① Backup

② แตก Clothing Pack

③ หา Folder ที่มี fxmanifest.lua

④ นำ Resource เข้า resources/[clothes]/

⑤ รักษาโครงสร้างของ Creator

⑥ Console:
   refresh

⑦ Console:
   ensure resource_name

⑧ เพิ่ม ensure ใน server.cfg

⑨ เข้าเกมด้วย Ped Model ที่ถูกต้อง

⑩ เปิด Clothing Menu

⑪ ตรวจ Component / Collection / Drawable / Texture

⑫ ทดสอบ Outfit และ Animation

ส่วน refresh, ensure, Resource Root และ Manifest เป็นกลไกมาตรฐานของ FiveM Resources ตามเอกสาร Cfx.re.

51. ถ้า Server แจ้งหา Resource ไม่เจอ

ตรวจ

Folder อยู่ใน resources หรือไม่
ชื่อ ensure ตรง Folder หรือไม่
Folder ซ้อนหรือไม่
มี fxmanifest.lua หรือไม่

Cfx.re ระบุว่า Resource ที่ไม่มี Manifest ที่ถูกต้องจะมี Warning และไม่ถูก Parse เป็น Resource ตามปกติ.

52. ถ้า Server แจ้ง Resource Start แต่ไม่มีเสื้อใหม่

ตรวจต่อ

Ped Model
Collection
Component
Drawable
Texture
Menu Integration

อย่าทำ refresh ซ้ำสิบครั้ง เพราะ Server รู้จัก Resource แล้ว

ปัญหาอยู่ Layer ถัดไป

53. ถ้าเสื้อมีใน Male แต่ไม่มี Female

ตรวจว่า Resource มี Asset สำหรับ Female จริงหรือไม่ และ Menu กำลัง Query Collections/Variations ของ Ped Female หรือไม่

Cfx.re Collection APIs อ่าน Collections ในบริบทของ Ped และรองรับการ Query Collection/Drawable Information โดยตรง.

54. ถ้าเสื้อใหม่อยู่เลขท้ายมาก

ถ้า Clothing Menu ใช้ Global Index เสื้อ Custom อาจปรากฏหลัง Base Game และ Official DLC Collections เพราะ Cfx.re ระบุว่า Custom Collections ถูกเพิ่มต่อท้าย Official Collections ในระบบ Global Index.

แต่อย่ายึด Global Number เป็น Identifier ระยะยาวโดยไม่เข้าใจผลของ Title Updates

55. ถ้า Update แล้วเลขเสื้อเปลี่ยน

นี่คือเหตุผลสำคัญที่ควรพิจารณา Collection-based System

Cfx.re ระบุว่า Local Index ภายใน Collection ยังคง Stable หลัง Title Update แม้ Global Index ของ Custom Collections จะ Shift.

สำหรับระบบ Outfit ขนาดใหญ่ นี่ช่วยลด Migration ในอนาคตได้มาก

56. วิธีทดสอบเสื้อหลังติดตั้ง

อย่าทดสอบแค่ยืนเฉย ๆ

ทดสอบ

เดิน
วิ่ง
กระโดด
นั่งรถ
ยกแขน
ถืออาวุธ
Emote
Crouch

แล้วตรวจ

  • Clipping

  • Arms

  • Torso

  • Texture

  • Props

  • Outfit Save/Load

เพราะเสื้อที่ดูปกติใน Menu อาจมี Mesh/Combination Problem ระหว่าง Animation

57. ทดสอบ Save Outfit

หลังเลือกเสื้อใหม่

Save Outfit
↓
เปลี่ยนชุด
↓
Load Outfit เดิม
↓
Reconnect Server
↓
Load อีกครั้ง

เพื่อยืนยันว่า Clothing Database เก็บ

Drawable
Texture
Collection

ตาม Architecture ที่ Script ต้องการ

โดยเฉพาะระบบที่กำลังเปลี่ยนไปใช้ Collection-based Index

58. ทดสอบหลัง Restart Server

อย่าให้ผ่านเฉพาะตอนใช้

refresh
ensure

จาก Console

Restart Server จริงหนึ่งครั้งแล้วตรวจว่า server.cfg Start Clothing Resource ครบ

เพราะ Resource ที่ไม่ได้ถูกใส่ใน Startup Configuration อาจทำงานตอนทดสอบ แต่หายหลัง Server Restart

59. ทดสอบหลังเปลี่ยน Game Build

หลัง GTA/FiveM Title Update หรือเปลี่ยน Game Build ควร Regression Test

Male Clothes
Female Clothes
Props
Saved Outfits
Job Uniforms
Clothing Shops

โดยเฉพาะระบบที่ยังพึ่ง Global Index เพราะ Cfx.re ระบุว่าตำแหน่ง Custom Global Drawables/Props สามารถเปลี่ยนหลัง Title Updates.

60. Checklist เพิ่มเสื้อผ้า FiveM Server

ก่อนถือว่าติดตั้งเสร็จ ตรวจรายการนี้

☐ Backup แล้ว
☐ แตก ZIP แล้ว
☐ หา Resource Root ถูก
☐ fxmanifest.lua อยู่ถูกตำแหน่ง
☐ ไม่ได้เขียนทับ Manifest เดิม
☐ Resource อยู่ใต้ resources/
☐ โครงสร้าง Pack ไม่ถูกย้ายมั่ว
☐ refresh สำเร็จ
☐ ensure สำเร็จ
☐ เพิ่ม Resource ใน Startup Config แล้ว
☐ Male/Female ถูก Ped
☐ Component ถูก
☐ Drawable ถูก
☐ Texture ถูก
☐ Props ขึ้น
☐ Clothing Menu เห็น Item
☐ Save Outfit ได้
☐ Load Outfit ได้
☐ Reconnect แล้วยังถูก
☐ Restart Server แล้วยังทำงาน
☐ ไม่มี Conflict กับ Pack เดิม

ตารางแก้ปัญหาหลังเพิ่มเสื้อผ้า

อาการจุดที่ควรตรวจ
Server หา Resource ไม่เจอFolder / fxmanifest.lua
เพิ่งเพิ่ม Resource แต่ Start ไม่ได้refresh
Resource หยุดอยู่ensure
Start แล้วไม่มีเสื้อPed / Collection / Menu
Male ขึ้น Female ไม่ขึ้นFemale Asset/Ped
เสื้อขึ้นคนละตัวDrawable/Index
สีผิดTexture ID
แขนหายTop/Torso
เสื้อทะลุMesh/Weighting
หมวกไม่ขึ้นProp System
Outfit Save แล้ว Load ผิดDatabase/Index
GTA Update แล้วชุดเพี้ยนGlobal Index Shift
เพิ่ม Pack ใหม่แล้ว Pack เก่าพังAsset/Collection Conflict
Merge แล้วเสื้อหายFile ถูก Replace
Restart Server แล้ว Pack หายStartup Configuration

วิธีจัด Clothing Server ระยะยาว

ถ้าตั้งใจมีเสื้อผ้าจำนวนมาก แนะนำให้จัด

[clothes]/
├── police_clothes/
├── ems_clothes/
├── gang_clothes/
├── business_clothes/
└── civilian_clothes/

และเก็บ Documentation ของแต่ละ Pack เช่น

Creator
Version
Male/Female
Collection
วันที่ติดตั้ง
Game Build ที่ทดสอบ

FiveM รองรับ Category Folders และ Resources แยกอย่างเป็นระบบอยู่แล้ว จึงไม่จำเป็นต้องรวมทุกอย่างเป็น Resource เดียว.

ควรใช้ Collection-based Clothing System หรือไม่

สำหรับ Server ใหม่หรือระบบที่สามารถพัฒนา Clothing Script เองได้ ควรพิจารณาอย่างจริงจัง

Cfx.re ระบุชัดว่าเหตุผลของ Collection-based natives คือแก้ปัญหา Global Custom Drawable/Prop Index ที่เปลี่ยนตาม Title Updates และ Collection Local Index ถูกออกแบบให้คงที่.

ภาพรวมที่ดีกว่าสำหรับ Saved Outfit จึงเป็น

Ped Model
+
Component/Prop
+
Collection Name
+
Local Drawable
+
Texture

แทนที่จะเก็บ Global Drawable Number อย่างเดียว

สิ่งที่ไม่ควรทำเมื่อเพิ่มเสื้อ FiveM

หลีกเลี่ยง

Copy ทุก Pack รวม Folder เดียวทันที
กด Replace All
ลบ fxmanifest.lua เดิม
สร้าง Manifest ใหม่โดยเดา
เปลี่ยน Game Build เพื่อแก้เสื้อหนึ่งตัว
Import SQL ที่ไม่รู้หน้าที่
ใช้ Male ID กับ Female
ลบ Outfit Database เพราะเลขเสื้อเพี้ยน
ล้าง Cache เป็นคำตอบแรก

ให้แยกปัญหาว่าอยู่ที่ Resource, Asset, Ped, Collection, Index หรือ Clothing Menu ก่อน

สรุป วิธีเพิ่มเสื้อผ้าเข้า FiveM Server

ขั้นตอนมาตรฐานที่ควรจำคือ

Clothing Pack
↓
หา Resource Root
↓
ตรวจ fxmanifest.lua
↓
วางใน resources/
↓
refresh
↓
ensure resource_name
↓
เพิ่ม Startup Configuration
↓
เข้าเกม
↓
ตรวจ Ped / Collection
↓
ตรวจ Component / Drawable / Texture
↓
ทดสอบ Clothing Menu
↓
Save / Load Outfit

FiveM โหลด Server Content ผ่านระบบ Resources โดย Resource สามารถมี Streaming Assets และต้องมี Resource Manifest ที่ถูกต้อง.

หากเพิ่งเพิ่ม Resource ให้ใช้

refresh

เพื่อ Rescan Resources และใช้

ensure resource_name

เพื่อ Start หรือ Restart Resource ตามสถานะปัจจุบัน.

ถ้า Resource Start แล้วแต่เสื้อไม่ขึ้น อย่าติดตั้งซ้ำทันที ให้ตรวจ Ped Model, Collection, Component, Drawable, Texture และ Clothing Menu

ถ้า เสื้อขึ้นคนละตัวหลัง GTA Update ให้ตรวจ Global Index เพราะ Cfx.re ระบุว่า Custom Drawable/Prop Global Index สามารถเลื่อนได้หลัง Title Update ขณะที่ Collection-based Local Index ถูกออกแบบให้คงที่.

และถ้า เพิ่ม Pack ใหม่แล้ว Pack เก่าพัง ให้แยก Resources ทดสอบก่อน Merge เพื่อดูว่าเกิด File, Collection หรือ Index Conflict

แนวทางของ comsiam คือทำให้ Clothing Pack ใหม่ทำงานสมบูรณ์ในฐานะ Resource แยกก่อนเสมอ จากนั้นจึงค่อยรวมเข้ากับระบบหลัก เพราะการติดตั้งเสื้อให้ขึ้นนั้นไม่ยากเท่าการรักษาเสื้อหลายพันชิ้นให้ไม่เพี้ยนเมื่อ Server โตและ GTA มี Title Update ในอนาคต

Comments

Popular posts from this blog

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

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

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