วิธีติดตั้ง MLO FiveM แบบละเอียด ตั้งแต่ Resource จนเข้าใช้งานได้จริง
การติดตั้ง MLO FiveM โดยพื้นฐานไม่ได้ซับซ้อน หากไฟล์ที่ได้มาเป็น FiveM Resource พร้อมใช้งานอยู่แล้ว แต่ปัญหามักเกิดเมื่อผู้ดูแล Server Copy Folder ผิดระดับ ลืม Dependency, ไม่ได้ ensure Resource, ใช้ MLO สองตัวในพื้นที่เดียวกัน หรือ Resource มีไฟล์ประกอบหลาย Folder แต่ Copy มาไม่ครบ
FiveM ใช้ระบบ Resources สำหรับโหลด Content ของ Server และ Resource ทุกตัวต้องมี Resource Manifest เช่น fxmanifest.lua เพื่อบอก FiveM ว่า Resource นั้นประกอบด้วยอะไร ส่วน Resource ประเภท Map สามารถใช้ this_is_a_map เพื่อระบุว่าเป็น GTA Map Resource ได้
บทความนี้จาก comsiam จะสอนวิธีติดตั้ง MLO FiveM ตั้งแต่ตรวจไฟล์ก่อนลง Server, วาง Resource, ตั้ง server.cfg, ใช้ refresh และ ensure ไปจนถึงวิธีแก้เมื่อ MLO ไม่ขึ้น Texture หาย หรือเดินทะลุพื้น
วิธีติดตั้ง MLO FiveM แบบสรุป
ขั้นตอนหลักคือ
ดาวน์โหลด MLO
↓
แตกไฟล์
↓
อ่าน README
↓
ตรวจ Dependencies
↓
หา Resource Folder จริง
↓
นำเข้า resources/[maps]/
↓
เพิ่ม ensure ใน server.cfg
↓
refresh
↓
ensure resource_name
↓
เข้าเกมทดสอบ
แต่ก่อนทำตามขั้นตอนเหล่านี้ ควร Backup Server และตรวจ Package ให้ครบก่อน
① Backup ก่อนติดตั้ง MLO
ก่อนเพิ่ม MLO ใหม่ ควร Backup อย่างน้อย
server.cfg
resources/
Door Config
Map Config
โดยเฉพาะหากกำลังเปลี่ยน MLO ตัวเดิม เช่น
police_station_old
เป็น
police_station_new
อย่าลบของเก่าทันที
ให้เก็บไว้จนกว่า MLO ใหม่จะผ่านการทดสอบ
เพราะถ้าเกิด
Collision ผิด
FPS ตก
Interior ไม่ขึ้น
Door ใช้ไม่ได้
Map ซ้อน
จะสามารถย้อนกลับ Version เดิมได้ทันที
② ตรวจ License ของ MLO ก่อน
หากเป็น MLO ที่ซื้อมา ให้ตรวจ
License
Cfx.re entitlement
Asset Escrow
จำนวน Server ที่อนุญาต
เงื่อนไขการแก้ไข
Dependencies
Cfx.re มีระบบ Asset Escrow สำหรับปกป้อง Creator Assets และ Resource ที่ซื้อบางตัวอาจมีไฟล์ที่ได้รับการป้องกันไว้
อย่าพยายามแกะหรือ Bypass Protection ของ Resource
③ แตกไฟล์ MLO ก่อน
หลังดาวน์โหลดมาอาจได้ไฟล์ เช่น
police_mlo.zip
แตกไฟล์ออกก่อน
อย่านำ .zip ไปวางใน
resources/
โดยตรงแล้วคาดว่า FiveM จะใช้งานเป็น Resource ได้
หลังแตกควรตรวจโครงสร้าง Folder
④ หา Resource Folder ตัวจริงให้เจอ
นี่เป็นปัญหาที่พบบ่อยมาก
สมมติแตกไฟล์แล้วได้
police_mlo/
└── police_mlo/
├── fxmanifest.lua
└── stream/
Resource ตัวจริงคือ Folder ด้านในที่มี
fxmanifest.lua
ไม่ใช่ Folder ชั้นนอก
FiveM Documentation ระบุว่า Resource Manifest เช่น fxmanifest.lua ต้องอยู่ภายใน Resource Folder
⑤ วิธีดูว่า Folder ไหนคือ Resource
มองหา
fxmanifest.lua
ตัวอย่าง Resource ถูกต้อง
custom_pd/
├── fxmanifest.lua
└── stream/
แต่ถ้าเป็น
custom_pd/
└── fivem/
└── custom_pd/
├── fxmanifest.lua
└── stream/
อย่านำ custom_pd ชั้นบนสุดไปใช้งานโดยไม่ตรวจ
ผู้ขายบางราย Package ไฟล์ไว้หลายระดับ เช่น
Standalone/
FiveM/
Singleplayer/
Documentation/
ต้องเลือก Version FiveM ให้ถูก
⑥ fxmanifest.lua คืออะไร
fxmanifest.lua คือ Resource Manifest ของ FiveM
FiveM ใช้ไฟล์นี้ในการกำหนด Metadata และข้อมูลของ Resource เช่น
Scripts
Files
Dependencies
Data Files
Map Properties
Cfx.re ระบุว่า Resource Manifest ปัจจุบันคือ fxmanifest.lua และอยู่ภายใน Resource Folder
ดังนั้นหาก Download MLO มาแล้วไม่มี Manifest ต้องตรวจว่า
Download ผิด Version หรือไม่
ยังอยู่ใน Folder Packaging หรือไม่
ผู้สร้างให้สร้าง Manifest เองหรือไม่
⑦ this_is_a_map คืออะไร
Map Resource บางตัวจะมี
this_is_a_map 'yes'
ใน fxmanifest.lua
Cfx.re ระบุว่า Directive นี้ใช้ Mark Resource ว่าเป็น GTA Map และทำให้ Map Storage ถูก Reload เมื่อ Resource โหลด
ตัวอย่าง Manifest แบบง่าย
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
แต่ อย่าเขียน Manifest ทับของ MLO ที่ซื้อมาโดยไม่จำเป็น
เพราะ Resource อาจมี Dependencies หรือ Data Files เพิ่มเติม
⑧ ตรวจ Folder stream
MLO มักมี Streaming Assets อยู่ใน Folder เช่น
stream/
ภายในอาจมี
.ymap
.ytyp
.ydr
.ytd
.ybn
หรือ Asset ประเภทอื่นตาม MLO
FiveM Resources สามารถประกอบด้วย Streaming Assets ได้ ดังนั้นต้อง Copy Resource มาให้ครบ ไม่ใช่เลือกเฉพาะ .ymap
⑨ อย่า Copy เฉพาะ YMAP
บางคนเห็นไฟล์
police.ymap
แล้วคิดว่านี่คือ Map ทั้งหมด
แต่ MLO อาจต้องใช้
police.ymap
police.ytyp
police.ydr
police.ytd
police.ybn
ร่วมกัน
ถ้าขาดบางส่วนอาจเกิด
อาคารหาย
Texture ขาว
เดินทะลุ
Interior ไม่ทำงาน
ดังนั้นเริ่มจาก Copy Resource ต้นฉบับให้ครบก่อน
⑩ YMAP ทำอะไร
YMAP เกี่ยวข้องกับการวาง Entities/Objects ใน World
Official FiveM Assets Manual แสดง Workflow การสร้าง YMAP ผ่าน CodeWalker โดยเพิ่ม Entities เลือก Archetype และกำหนดตำแหน่งในโลก
ดังนั้นถ้า Object
อยู่ผิดตำแหน่ง
หายบางจุด
Placement ผิด
YMAP เป็นหนึ่งในจุดที่ควรตรวจ
⑪ YTYP สำคัญกับ MLO อย่างไร
MLO ที่มี Custom Archetypes มักต้องมี YTYP ที่สัมพันธ์กับ Asset
อย่าลบไฟล์
*.ytyp
ออกเพียงเพราะยังเห็น YMAP อยู่
ถ้า YTYP ที่ Custom Asset ต้องใช้หาย อาจทำให้ Model/Interior บางส่วนไม่ถูกโหลดตามที่ผู้สร้างออกแบบไว้
⑫ YDR คืออะไร
YDR เป็น Drawable Model Asset ที่ Map/MLO สามารถใช้
เช่น
building.ydr
wall.ydr
counter.ydr
furniture.ydr
ถ้า MLO ขึ้นบางส่วนแต่ Model บางชิ้นหาย ให้ตรวจไฟล์ Model และ Archetype ที่เกี่ยวข้อง
⑬ YTD คืออะไร
YTD คือ Texture Dictionary
สามารถเก็บ Texture เช่น
ผนัง
พื้น
Logo
Furniture
ป้าย
Decoration
ถ้า MLO ขึ้นแต่มี
ผนังขาว
Texture ดำ
Logo หาย
พื้นผิวเบลอ
ให้ตรวจ YTD/Texture มากกว่าตำแหน่ง YMAP
⑭ YBN คืออะไร
YBN เกี่ยวข้องกับ Collision
ถ้า
มองเห็นพื้น
แต่เดินแล้วตก
หรือ
เห็นกำแพง
แต่เดินทะลุ
ให้ตรวจ Collision
ไม่ควรแก้ Texture เมื่อปัญหาเป็นการชน
⑮ นำ MLO ไปไว้ Folder ไหน
สามารถจัด Resources เป็น Category เพื่อให้ง่ายต่อการดูแล
ตัวอย่าง
resources/
└── [maps]/
├── police_mlo/
├── hospital_mlo/
├── mechanic_mlo/
└── restaurant_mlo/
Resource Groups แบบ Folder ช่วยให้ Server เป็นระเบียบ
สิ่งสำคัญคือ Resource ตัวจริงต้องถูก FiveM มองเห็นและมี Manifest ที่ถูกต้อง
⑯ ตัวอย่างการติดตั้ง Police MLO
สมมติ Resource ชื่อ
custom_pd
นำไปไว้
resources/
└── [maps]/
└── custom_pd/
├── fxmanifest.lua
└── stream/
จากนั้นเพิ่มใน
server.cfg
ว่า
ensure custom_pd
คำสั่ง ensure ใช้สำหรับทำให้ Resource อยู่ในสถานะ Started ตามระบบ Resource Commands ของ FiveM
⑰ ensure คืออะไร
ใช้
ensure resource_name
เช่น
ensure custom_pd
สำหรับ Resource ที่ต้องการเปิดใช้งาน
โดยทั่วไปควรใส่ไว้ใน server.cfg เพื่อให้ Resource ถูกเปิดทุกครั้งหลัง Server Restart
ถ้าเพียงสั่งผ่าน Console ระหว่างทดสอบแต่ไม่ได้เพิ่มลง server.cfg หลัง Restart อาจพบว่า MLO หาย
⑱ refresh คืออะไร
ถ้าเพิ่ง Copy Resource ใหม่เข้า Server ขณะที่ FXServer กำลังทำงาน ให้ใช้
refresh
Cfx.re ระบุว่า refresh จะ Rescan Resources Folder และโหลด Resource Manifests ใหม่ ทำให้ Resource ใหม่พร้อมสำหรับการ Start
จากนั้นใช้
ensure custom_pd
⑲ ขั้นตอนติดตั้งตอน Server เปิดอยู่
ตัวอย่าง
1. Copy custom_pd เข้า resources/[maps]/
2. เปิด Server Console
3. พิมพ์ refresh
4. พิมพ์ ensure custom_pd
5. เข้าเกมทดสอบ
ไม่จำเป็นต้อง Restart Server เต็มระบบทุกครั้งเพื่อให้ FiveM ค้น Resource ใหม่ เพราะมี refresh สำหรับ Rescan Resource Manifests อยู่แล้ว
⑳ Restart Resource หลังแก้ไฟล์
ถ้า Resource ทำงานอยู่แล้วและต้องการ Reload สามารถใช้ Resource Commands ตาม Workflow ของ FiveM เช่น Restart/Ensure Resource
ตัวอย่าง
restart custom_pd
หลังแก้ Map Asset บางประเภท ควรสร้าง Client Test State ใหม่ตามความเหมาะสมด้วย เพราะการดู Entity/Interior State เดิมอาจทำให้วิเคราะห์ผิดได้
㉑ ใช้ txAdmin ติดตั้งได้ไหม
txAdmin เป็น Web Panel ที่มาพร้อม FXServer และสามารถช่วยจัดการ/Monitor Server รวมถึง Start, Stop และ Restart Server หรือ Resources ได้
แต่ตัว MLO Files ยังต้องอยู่ใน Resources ของ Server อย่างถูกต้อง
txAdmin ไม่ได้แก้ MLO ที่
YTYP หาย
Collision ผิด
Dependency ขาด
ให้อัตโนมัติ
㉒ ตรวจ Dependencies ก่อน ensure
MLO บางชุดไม่ได้มี Resource เดียว
ตัวอย่าง Package อาจมี
custom_pd
custom_pd_props
custom_pd_doors
หรือ Dependency อื่น
ควรอ่าน
README
INSTALL
documentation
ก่อน
หากเปิดเฉพาะ
custom_pd
แต่ลืม custom_pd_props อาจทำให้ Map โหลดไม่ครบ
㉓ Dependencies ควรเปิดก่อนหรือหลัง
ถ้า Resource A ต้องพึ่ง Resource B ควรจัด Dependency ให้พร้อมก่อน Resource ที่ใช้มัน
Resource Manifest ของ FiveM รองรับ dependency และ dependencies สำหรับระบุ Resource Dependency โดยตรง
ตัวอย่างเชิงแนวคิด
dependency 'required_resource'
ถ้า MLO ต้นฉบับมี Dependency Declaration อยู่แล้ว อย่าลบออก
㉔ MLO ใช้ Door Lock ต้องทำอย่างไร
ต้องแยก MLO ออกจาก Door Script
MLO อาจให้
Door Model
Door Position
แต่ระบบ
ล็อก
ปลดล็อก
Job Permission
Key
อาจเป็น Resource อีกตัว
ดังนั้นหาก MLO ขึ้นครบแต่ประตูไม่ล็อก อย่าเพิ่งแก้ Map
ให้ตรวจ Door Lock Script และ Config
㉕ MLO ใช้ ESX/QBCore ต้องติดตั้ง Framework ก่อนหรือไม่
ตัว Streaming MLO เองไม่ได้จำเป็นต้องพึ่ง Framework ทุกตัว
แต่ Package บางชุดอาจมี
Stash
Boss Menu
Door Lock
Job Interaction
Elevator
Garage
ที่พึ่ง ESX, QBCore หรือ Resource อื่น
ดังนั้นอ่าน Dependencies จากผู้สร้างก่อน
อย่าติดตั้ง Script ส่วนเสริมโดยเดาว่า MLO ทุกตัวต้องใช้ Framework
㉖ ตรวจ server.cfg
หลังเพิ่ม Resource ให้ตรวจว่า server.cfg มี
ensure custom_pd
จริง
และไม่มีทั้ง
ensure custom_pd_old
ensure custom_pd
พร้อมกันหากทั้งสองเป็น Map ตำแหน่งเดียวกัน
เพราะจะเกิด Map Conflict ได้
㉗ อย่าเปิด MLO Version เก่าและใหม่พร้อมกัน
ตัวอย่าง
pd_v1
pd_v2
ถ้าเปิดพร้อมกันในตำแหน่งเดียวกัน อาจเกิด
อาคารซ้อน
Collision ซ้อน
Texture กระพริบ
Invisible Wall
Interior ซ้อน
FPS ลด
หลัง Update จึงต้องตรวจทั้ง Resources Folder และ server.cfg
㉘ MLO ไม่ขึ้นหลัง ensure
ถ้า Console แสดงว่า Resource Started แต่ MLO ไม่ขึ้น ให้ตรวจ
Coordinates
Resource Files
YMAP
YTYP
Dependencies
Map Conflict
F8
Server Console
อย่าสรุปว่า Resource ปกติเพียงเพราะมีข้อความ Started
Resource สามารถ Start ได้แต่ Content บาง Asset ยังอาจมี Reference หรือ Dependency ที่ผิด
㉙ MLO อยู่พิกัดไหนดูอย่างไร
MLO ที่ดาวน์โหลดมาควรมีข้อมูล Location จากผู้สร้าง เช่น
Coordinates
Screenshot
Map Marker
Documentation
อย่าเข้า Server แล้วไปยืนผิดสถานที่แล้วสรุปว่า MLO ไม่ขึ้น
ถ้าเป็น Map ที่แก้พื้นที่ Vanilla เดิม ให้ใช้ตำแหน่งที่ Developer ระบุเป็นหลัก
㉚ MLO ขึ้นแต่ Interior หาย
ถ้าเห็น Exterior แต่ Interior ไม่ขึ้น ให้ตรวจ
YTYP/MLO Data
Interior Assets
Dependencies
Resource Files
Conflict
ถ้ามีการ Copy Resource แบบเลือกไฟล์เอง ให้กลับไป Copy Package ต้นฉบับทั้งชุดก่อน
㉛ MLO ขึ้นแต่ Texture ขาว
ถ้ารูปร่าง Model ปกติแต่ Texture ขาว ให้ตรวจ
YTD
Shared Texture
Material
Streaming Asset
โดยเฉพาะหากผู้ดูแล Server ลบไฟล์ที่คิดว่า “ไม่ใช้”
อย่าแก้ YMAP Coordinates เพราะตัว Model อยู่ถูกตำแหน่งแล้ว
㉜ MLO เดินทะลุพื้น
ถ้า
Interior ขึ้น
Texture ขึ้น
แต่เดินตก
ให้ตรวจ Collision Asset
โดยเฉพาะ
YBN
หรือ Collision ที่ถูกฝัง/อ้างโดย Asset ตาม Workflow ของ MLO
อย่าล้าง Cacheเป็นคำตอบแรกหากผู้เล่นทุกคนตกพื้นจุดเดียวกัน
㉝ MLO มี Invisible Wall
ให้ตรวจ
Collision ของ MLO
Collision ของ Map เก่า
MLO ตัวอื่นบริเวณเดียวกัน
Visual Asset ที่หาย
วิธีเร็วที่สุดคือ Disable Map ตัวอื่นในพื้นที่นั้นแล้วทดสอบ MLO เพียงตัวเดียว
㉞ MLO กระพริบ
ถ้า Wall, Floor หรือ Building กระพริบตามมุมกล้อง ให้สงสัย
Geometry ซ้อน
MLO ซ้อน
Exterior ซ้อน
Map เก่ายังเปิดอยู่
Z-fighting
มากกว่าการเพิ่ม Texture Resolution
ลองปิด Resource อื่นในพื้นที่เดียวกันก่อน
㉟ MLO ห้องหายเมื่อเดินผ่านประตู
ถ้า Interior แสดงปกติในบางตำแหน่ง แต่ห้องหายทันทีเมื่อข้าม Doorway ปัญหาอาจเกี่ยวข้องกับ Interior Structure เช่น Rooms/Portals มากกว่าการติดตั้ง Resource ทั่วไป
กรณีนี้ควรทดสอบ Package ต้นฉบับแบบไม่แก้ Asset
ถ้าต้นฉบับยังเสีย อาจเป็นงานที่ต้องแก้ตัว MLO มากกว่าการติดตั้งใหม่
㊱ MLO โหลดช้า
ให้แยกว่าช้าแบบไหน
โหลดช้าตอนเข้า Server
ตรวจ Resource Size และ Content Download
เดินเข้า MLO แล้ว Texture ค่อยขึ้น
ตรวจ Streaming/Memory/Texture
Model โผล่เมื่อเข้าใกล้มาก
ตรวจ Asset/LOD
เข้า Server ครั้งแรกช้ามาก
Map/Collision จำนวนมากอาจเพิ่ม Initial Loading
FiveM มี save_gta_cache สำหรับ Resource ที่มี Collision หรือ Map Files จำนวนมากเพื่อช่วยเรื่อง Initial Loading ในกรณีที่เหมาะสม
㊲ save_gta_cache ต้องใช้กับ MLO ทุกตัวไหม
ไม่
FiveM ระบุว่า save_gta_cache เหมาะกับ Resource ที่มี Collision หรือ Map Files จำนวนมาก
MLO เล็กทั่วไปไม่จำเป็นต้องใช้ขั้นตอนนี้เป็น Default
ควรใช้เมื่อ Resource มีเหตุผลจริงและผู้ดูแลเข้าใจ Workflow ของ Cache File
㊳ MLO ทำให้ FPS ตกหลังติดตั้ง
ให้ทดสอบก่อนว่าเกิดจาก
Geometry
Texture
Props
Lighting
Asset จำนวนมาก
Script ที่มากับ MLO
หรือไม่
วิธีทดสอบง่าย
MLO OFF → วัด FPS
MLO ON → วัด FPS
ใช้
จุดเดียวกัน
Graphic Settings เดิม
Client เครื่องเดิม
มุมกล้องใกล้เคียงกัน
จะช่วยให้เปรียบเทียบได้ตรงกว่า
㊴ MLO ทำให้ Server หน่วงหรือ Client FPS ตก
สองอย่างนี้ไม่เหมือนกัน
Client FPS ตก
เน้นตรวจ
Model
Texture
Props
Rendering
Streaming
Server หน่วง
เน้นตรวจ Script ที่มากับ Resource เช่น
Door
Elevator
Interaction
Loops
อย่า Upgrade Server CPU เพื่อแก้ Texture 4K ของ MLO ถ้าปัญหาอยู่ฝั่ง GPU/VRAM ของผู้เล่น
㊵ ทดสอบ MLO เดี่ยวก่อน
นี่เป็นขั้นตอนที่สำคัญมาก
หาก Server มี Maps จำนวนมาก ให้ปิด Map อื่นที่อยู่ใกล้บริเวณ MLO ชั่วคราว
แล้วเปิดเฉพาะ
custom_pd
ถ้า MLO ทำงานปกติแบบเดี่ยว แต่เสียเมื่อเปิด Map อื่น แสดงว่ามีโอกาสเป็น Resource Conflict
อย่าแก้ตัว MLO ก่อนรู้ผลการทดสอบนี้
㊶ วิธีหา MLO Conflict
สมมติมี
pd_a
pd_b
ทดสอบ
pd_a ON
pd_b OFF
จากนั้น
pd_a OFF
pd_b ON
สุดท้าย
pd_a ON
pd_b ON
หากสองตัวแรกปกติแต่ตัวสุดท้ายเสีย ปัญหาน่าจะอยู่ที่การใช้งานร่วมกัน
㊷ ตรวจ F8
FiveM Client มี Console ที่เปิดผ่าน
F8
และ Client Console ใช้สำหรับ Development/Debugging ได้ตามเอกสาร Cfx.re
หาก MLO มีปัญหาเฉพาะ Client ให้ดู Error ที่เกี่ยวข้องกับ
Resource
Streaming
Asset
Files
ก่อนล้าง Cache
㊸ ตรวจ Server Console
หลังใช้
ensure custom_pd
ดู Console ว่ามี
Missing Dependency
Manifest Error
Missing File
Resource Error
หรือไม่
อย่าเลื่อนผ่าน Error สีแดงแล้วเข้าเกมทดสอบต่อ
Error ที่ Console ระบุชื่อ Resource หรือ File ได้โดยตรงมีค่ามากกว่าการแก้แบบสุ่ม
㊹ ใช้ refresh เมื่อไร
ใช้เมื่อเพิ่ม Resource ใหม่เข้า Resources Folder ขณะที่ Server ทำงานอยู่
FiveM ระบุว่า refresh จะ Rescan Resources Folder และโหลด Resource Manifests ใหม่
Workflow คือ
refresh
ensure custom_pd
แต่ถ้า Resource ถูก FiveM รู้จักอยู่แล้ว ไม่จำเป็นต้องใช้ refresh ทุกครั้งที่ Restart Resource
㊺ ใช้ ensure เมื่อไร
ใช้เมื่อต้องการทำให้ Resource ถูก Start
ตัวอย่าง
ensure custom_pd
และควรใส่ใน server.cfg ถ้าต้องการให้ MLO เปิดทุกครั้งหลัง Server Boot
อย่าพึ่งคำสั่ง Manual อย่างเดียวใน Production
㊻ ชื่อ Folder มีผลกับ ensure หรือไม่
มีในแง่ Resource Name ที่คุณใช้เรียก
ถ้า Folder Resource คือ
custom_pd
ก็จะใช้
ensure custom_pd
อย่าพิมพ์ชื่อ Package ZIP หรือชื่อ Folder ชั้นนอกที่ไม่มี Manifest
นี่เป็นอีกเหตุผลว่าทำไมต้องหา Resource Folder จริงให้เจอก่อน
㊼ สามารถใช้ ensure [maps] ได้ไหม
Resource Category Folder ที่ใช้วงเล็บเหลี่ยมเป็นวิธีจัดกลุ่ม Resources และ Configuration ของ Server สามารถจัด Resource ตามหมวดได้
อย่างไรก็ตาม สำหรับการ Debug ควรสามารถระบุ Resource แต่ละตัวได้ชัด
ตัวอย่าง
custom_pd
hospital_mlo
mechanic_mlo
เพราะเมื่อเกิดปัญหา จะรู้ว่า Resource ตัวไหนต้อง Stop/Restart
㊽ MLO ที่ซื้อมา Update อย่างไร
อย่า Copy Version ใหม่ทับ Production ทันที
ใช้ Workflow
Backup Version เก่า
↓
อ่าน Changelog
↓
ตรวจ Config ที่แก้เอง
↓
ติดตั้ง Version ใหม่ใน Test Server
↓
ตรวจ Interior
↓
ตรวจ Collision
↓
ตรวจ Doors
↓
ตรวจ FPS
↓
ขึ้น Production
โดยเฉพาะ Resource ที่ Asset Escrow Protected ไม่ควรแก้ไฟล์ที่ผู้สร้างไม่ได้เปิดให้แก้ตาม License
㊾ หลัง Update MLO ประตูพัง
ตรวจว่า Version ใหม่เปลี่ยน
Door Position
Door Model
Hash
Coordinates
Door Script Config
หรือไม่
Door Lock Resource อาจยังใช้ Coordinates/Model ของ MLO Version เก่า
กรณีนี้ Map อาจทำงานปกติ แต่ Door Config ต้อง Update ตาม
㊿ หลัง Update MLO Stash หรือ Target อยู่ผิดที่
นี่มักเป็น Gameplay Integration
ตัวอย่าง MLO ใหม่ย้าย Counter จาก
X,Y,Z เดิม
ไปอีกจุด
แต่
qb-target
ox_target
stash
boss menu
ยังใช้ Coordinates เก่า
จึงต้องแก้ Config ของ Script นั้น
ไม่ใช่แก้ MLO Model
51. Checklist หลังติดตั้ง MLO
ก่อนเปิดให้ผู้เล่นใช้งานจริง ให้ตรวจ
Resource
Start สำเร็จ
ไม่มี Console Error
ไม่มี Missing Dependency
Exterior
อาคารไม่ซ้อน
Props ขึ้นครบ
Interior
ห้องขึ้นครบ
ไม่เกิด Pop-in ผิดปกติ
Texture
ไม่มีขาว/ดำ
Logo ขึ้นครบ
Collision
เดินไม่ทะลุ
ไม่ตกพื้น
ไม่มี Invisible Wall
Doors
เปิดปิดได้
Door Lock ทำงาน
Scripts
Target
Stash
Elevator
Garage
Boss Menu
Performance
FPS
Texture Loading
หลายผู้เล่น
Conflict
Map อื่นบริเวณเดียวกัน
52. วิธี Debug MLO FiveM แบบเร็วที่สุด
ทำตามลำดับนี้
ขั้นที่ 1
ตรวจ Folder ที่มี fxmanifest.lua
ขั้นที่ 2
ตรวจ Dependencies
ขั้นที่ 3
Copy Resource ให้ครบ
ขั้นที่ 4
เพิ่ม
ensure resource_name
ขั้นที่ 5
ถ้าเพิ่งเพิ่มระหว่าง Server เปิด ใช้
refresh
FiveM ระบุว่าคำสั่งนี้ใช้ Rescan Resource Manifests โดยตรง
ขั้นที่ 6
ensure Resource
ขั้นที่ 7
ดู Server Console
ขั้นที่ 8
เข้า Coordinates ที่ถูกต้อง
ขั้นที่ 9
ดู F8
ขั้นที่ 10
ตรวจ Model/Texture/Collision ตามอาการ
ขั้นที่ 11
ปิด Map อื่นในพื้นที่เดียวกัน
ขั้นที่ 12
ทดสอบ Resource เดี่ยว
ตารางสรุปปัญหาหลังติดตั้ง MLO FiveM
| อาการ | จุดที่ควรตรวจ |
|---|---|
| FiveM หา Resource ไม่เจอ | Folder / Manifest / refresh |
| Resource Start ไม่ได้ | Manifest / Dependency |
| Restart Server แล้ว MLO หาย | server.cfg / ensure |
| Resource Started แต่ Map ไม่ขึ้น | YMAP / YTYP / Location |
| Exterior ขึ้น Interior หาย | MLO/YTYP/Dependencies |
| Model บางส่วนหาย | YDR / YTYP |
| Texture ขาว | YTD / Material |
| เดินทะลุ | Collision |
| ตกพื้น | Collision / Asset |
| Invisible Wall | Collision / Map Conflict |
| อาคารซ้อน | MLO เก่า/Map อื่น |
| ประตูล็อกไม่ได้ | Door Script |
| Target อยู่ผิด | Script Coordinates |
| MLO ใหม่แล้ว Stash หาย | Integration Config |
| FPS ตก | Geometry / Texture / Props |
| เปิดเดี่ยวปกติ เปิดหลาย Map แล้วเสีย | Resource Conflict |
โครงสร้าง MLO ที่ดูแลง่าย
สำหรับ Server ที่มี Maps จำนวนมาก สามารถจัดประมาณ
resources/
└── [maps]/
├── [police]/
│ └── custom_pd/
│
├── [medical]/
│ └── custom_hospital/
│
├── [business]/
│ ├── restaurant_01/
│ └── mechanic_01/
│
└── [housing]/
└── mansion_01/
เป้าหมายคือเมื่อ MLO มีปัญหา คุณต้องรู้ทันทีว่า Resource ตัวใดรับผิดชอบพื้นที่นั้น
ไม่ควรมี Folder เช่น
newmap
newmap2
test
mapfinal
mapfinal2
finalfinal
อยู่ใน Production Server เพราะจะสร้างความสับสนเมื่อ Debug
MLO ควรแยก Resource หรือ Merge รวมกัน
สำหรับ MLO จากคนละ Developer หรือคนละสถานที่ การแยก Resources มักดูแลง่ายกว่า
เพราะ FiveM Resources สามารถถูก Start/Stop/Restart แยกจากกันได้
ข้อดีคือ
Update ง่าย
Disable ง่าย
หา Conflict ง่าย
Rollback ง่าย
แยก Ownership/License ง่าย
การ Merge ควรทำเมื่อมีเหตุผลและเข้าใจ Asset References จริง ๆ
ต้อง Restart Server ทุกครั้งหลังลง MLO หรือไม่
ไม่จำเป็นเสมอไป
เมื่อเพิ่ม Resource ขณะ FXServer ทำงาน สามารถใช้
refresh
ensure custom_pd
เพื่อให้ FiveM Rescan Resource ใหม่และ Start Resource ได้
แต่ใน Production Environment หลังติดตั้งหรือ Update ครั้งใหญ่ การ Restart/Test แบบสะอาดอาจยังมีประโยชน์เพื่อยืนยันว่า Resource Startup Order และ server.cfg ทำงานถูกต้องเมื่อ Server Boot จริง
สรุป วิธีติดตั้ง MLO FiveM
วิธีติดตั้ง MLO FiveM ที่ปลอดภัยที่สุดคือ
Backup
↓
แตกไฟล์
↓
อ่าน README
↓
ตรวจ Dependencies
↓
หา Folder ที่มี fxmanifest.lua
↓
นำ Resource เข้า resources/
↓
เพิ่ม ensure ใน server.cfg
↓
refresh
↓
ensure
↓
ตรวจ Console
↓
เข้าเกม
↓
ตรวจ Interior + Texture + Collision + FPS
FiveM ใช้ Resource Manifest เช่น fxmanifest.lua ภายใน Resource Folder และ refresh สามารถ Rescan Resources Folder เพื่อให้ Resource ใหม่พร้อมถูก Start ได้ ขณะที่ Resource ประเภท Map สามารถใช้ this_is_a_map ตามการออกแบบของ Resource
ถ้าติดตั้งแล้ว MLO ไม่ขึ้น อย่าเริ่มด้วยการล้าง Cache แต่ให้ตรวจ
Resource → Manifest → Dependency → YMAP/YTYP → Model → Texture → Collision → Conflict
และถ้า MLO ทำงานปกติเมื่อเปิดตัวเดียว แต่เกิดปัญหาเมื่อเปิด Map อีกตัวในพื้นที่เดียวกัน ให้สงสัย Map Conflict ก่อนรื้อ Asset
แนวทางของ comsiam คือเก็บ MLO แต่ละสถานที่เป็น Resource ที่ระบุชื่อชัดเจน ติดตั้งและทดสอบทีละตัว เพราะเมื่อ Server มี Maps หลายสิบหรือหลายร้อย Resources การรู้ว่า Resource ตัวใดควบคุมพื้นที่ไหนจะช่วยลดเวลาการแก้ปัญหาได้อย่างมาก
Comments
Post a Comment