วิธีย้าย FiveM Server จาก Legacy ไป Enhanced

การ ย้าย FiveM Server จาก Legacy ไป Enhanced ไม่ควรทำด้วยการลบ FXServer เดิมแล้วนำไฟล์ Enhanced ไปทับทันที เพราะ FiveM for GTAV Enhanced มีทั้ง Server Binary ใหม่, Breaking Changes, ระบบ OneSync ใหม่, Connection Handshake ใหม่, .NET Runtime ใหม่ รวมถึงการเปลี่ยนแปลงด้าน Asset และ Configuration บางส่วน

วิธีที่ปลอดภัยที่สุดคือ

Backup Legacy → สร้าง Enhanced Test Server แยก → ติดตั้ง Cfx Server → Clone Database → ย้าย Script ทีละกลุ่ม → แปลง Asset ด้วย Alchemist → แก้ Breaking Changes → ทดสอบ Voice/OneSync/Database → Load Test → เตรียม Rollback → เปิด Production

ข้อดีคือ Cfx.re ยังคงออกแบบให้ Script Lua, JavaScript และ C# เดิมจำนวนมากสามารถใช้งานต่อได้ จึงไม่จำเป็นต้องสร้าง ESX, QBCore, Qbox หรือระบบ Roleplay ใหม่ตั้งแต่ศูนย์

แต่ Server Owner ต้องตรวจ Resource ทุกตัวก่อนเปิดจริง โดยเฉพาะ Map, MLO, Vehicle, KVP Data, C# Resource, Voice, State Bags และ Configuration เก่าของ OneSync

บทความนี้จาก comsiam จะพาย้าย Server แบบเป็นขั้นตอนเพื่อรักษาข้อมูลผู้เล่นและลดความเสี่ยงต่อ Production Server ให้มากที่สุด

① ก่อนย้ายต้องเข้าใจก่อนว่า Enhanced เปลี่ยนอะไร

Enhanced ไม่ได้เป็นเพียง GTA V กราฟิกใหม่แล้ว FiveM ทำงานเหมือนเดิมทุกอย่าง

Cfx.re เปลี่ยนหลายส่วนของ Platform เช่น

  • Cfx Server ใหม่

  • Client-server synchronization

  • OneSync Mode

  • Connection Handshake

  • Voice

  • C# Runtime

  • State Bags

  • Developer Mode

  • Pure Mode

  • Gamebuild

  • Server Configuration

  • Asset Format

ดังนั้นการ Migration ควรถูกมองว่าเป็น Platform Migration ไม่ใช่เพียง Update Artifact ธรรมดา

② ห้าม Migration ทับ Production Server เดิม

แนวทางที่เสี่ยงคือ

FiveM Legacy Production
↓
ลบ FXServer
↓
Copy Enhanced ทับ
↓
เปิด Resource ทั้งหมด

ถ้ามี Resource ไม่รองรับ คุณอาจต้องแก้ Server ขณะที่ผู้เล่นกำลังรอ

แนวทางที่ดีกว่าคือสร้าง Environment ใหม่แยกออกมา

③ โครงสร้าง Server ที่แนะนำ

ตัวอย่างบน Windows

C:\FiveM-Legacy\

สำหรับ Server เดิม

และ

C:\FiveM-Enhanced\

สำหรับ Enhanced Test Server

อย่าใช้ Folder เดียวกัน

เพราะคุณต้องสามารถกลับ Legacy ได้ทันทีหาก Migration มีปัญหา

④ สิ่งแรกสุดคือ Backup

ก่อนแตะ Enhanced ให้ Backup อย่างน้อย

  • Database

  • server.cfg

  • Resource ทั้งหมด

  • txAdmin Data

  • Permission

  • ACE

  • Script Configuration

  • Environment Variables

  • Server Keys ที่เกี่ยวข้อง

  • Webhook Configuration

  • Custom Asset

ควรมี Backup ที่อยู่นอก Folder Server หลักด้วย

⑤ Database ต้อง Backup แบบ Full Dump

สำหรับ RP Server ฐานข้อมูลคือหนึ่งในสิ่งสำคัญที่สุด

เพราะเก็บข้อมูล เช่น

  • Character

  • Money

  • Inventory

  • Job

  • Gang

  • Vehicle

  • Housing

  • Business

  • Phone

  • Banking

ควรสร้าง Full Database Dump ก่อน Migration

ไม่ใช่ Backup เฉพาะ Table ที่คิดว่าสำคัญ

⑥ สร้าง Database Clone สำหรับ Enhanced

สมมติ Production ใช้

fivem_prod

ให้สร้างสำเนา เช่น

fivem_enhanced_test

แล้วให้ Enhanced Test Server ใช้ Database นี้

อย่าให้ Test Server เขียน Production Database ตั้งแต่วันแรก

⑦ ทำไมต้อง Clone Database?

เพราะ Resource ที่กำลังทดสอบอาจ

  • ALTER TABLE

  • เพิ่ม Column

  • เปลี่ยน Schema

  • Insert ข้อมูลผิด

  • Delete Record

  • เปลี่ยน Character Data

หากใช้ Production Database จริง ความเสียหายจะเกิดกับผู้เล่นทันที

Clone ช่วยให้ทดลองได้เต็มที่โดยไม่เสี่ยงข้อมูลจริง

⑧ ดาวน์โหลด Cfx Server สำหรับ Enhanced

Enhanced ใช้ Server Package ใหม่

บน Windows Package คือ

cfx-server_win_x64

และ Executable คือ

cfx-server.exe

ไม่ใช่

FXServer.exe

แบบ Legacy

ควรดาวน์โหลด Recommended Build จาก Cfx.re

⑨ Linux ก็มี Package แยก

สำหรับ Linux ใช้

cfx-server-linux_x64

Cfx.re ระบุว่า Linux Build ยังคงใช้ Alpine rootfs ทำให้ Requirement พื้นฐานใกล้เคียงกับ Legacy

แต่ต้องใช้ Cfx Server Package ของ Enhanced ให้ถูกตัว

⑩ txAdmin ยังใช้ต่อได้หรือไม่?

ได้

txAdmin ยังคง Embedded มากับ Cfx Server

ดังนั้น Workflow การบริหาร Server ยังใกล้เคียงเดิม เช่น

  • Console

  • Restart

  • Resource Management

  • Player Management

  • Scheduled Restart

  • CFG Editor

แต่แนะนำสร้าง txAdmin Profile ใหม่สำหรับ Enhanced

ไม่ควรนำ Production Profile เดิมมาทับทันที

⑪ ตั้งชื่อ Test Server ให้ชัด

เช่น

MyCity Enhanced TEST

ไม่ควรใช้ชื่อเดียวกับ Production

สิ่งที่ควรแยกคือ

  • Project Name

  • Port

  • txAdmin Profile

  • Database

  • Server Folder

เพื่อลดความสับสนระหว่างทีมงาน

⑫ ใช้ Port คนละ Port กับ Legacy

หาก Legacy และ Enhanced เปิดพร้อมกันบน IP เดียวกัน จะใช้ Endpoint เดียวกันไม่ได้

ตัวอย่าง

Legacy

30120

Enhanced Test

30130

นี่เป็นเพียงตัวอย่าง

Port ที่เลือกจริงต้องตรงกับ

  • server.cfg

  • Firewall

  • Router

  • Hosting

ทั้งหมด

⑬ อย่า Copy server.cfg แล้วเปิดทันที

server.cfg เดิมสามารถใช้เป็น Reference ได้ แต่ Enhanced มี Breaking Changes และ Configuration ที่เปลี่ยน

วิธีที่ดีคือ

  1. เริ่มจาก Enhanced Config ที่ใช้งานได้

  2. Copy Setting จาก Legacy ทีละส่วน

  3. Restart/Test

  4. ตรวจ Warning/Error

วิธีนี้ช่วยหา Config เก่าที่ใช้ไม่ได้ง่ายกว่า

⑭ OneSync Non-Big Mode ถูกถอดออก

นี่เป็น Breaking Change สำคัญ

Cfx.re ระบุว่า Enhanced ไม่มี OneSync non-big mode อีกต่อไป

Enhanced ใช้ Mode ที่เทียบกับ OneSync Big เป็นพื้นฐาน

ดังนั้น Server ที่มี Script ซึ่งพึ่งพาพฤติกรรม Player Event จาก Non-Big Mode ต้องทดสอบใหม่

⑮ Player Events อาจมี Behavior ต่างจากเดิม

ใน Big Mode Player Connect/Disconnect Event ที่เกี่ยวข้องกับ Scope อาจมีพฤติกรรมตาม Range แตกต่างจาก Non-Big Legacy

Script เก่าที่สมมติว่า Player ทุกคนอยู่ใน Scope ตลอดอาจต้องตรวจ

โดยเฉพาะ Script เช่น

  • Player Tracking

  • Scoreboard

  • Admin

  • Spectate

  • Global Player Cache

อย่าทดสอบเพียงว่า Resource Start สำเร็จ

⑯ P2P Sync ถูกเปลี่ยน

Enhanced ไม่ใช้ P2P Synchronization แบบ Legacy อีกต่อไป

Cfx.re เปลี่ยนไปใช้ Client-server model

เป้าหมายคือช่วยลด Latency และทำ Synchronization ให้เป็นระบบมากขึ้น

Script ที่พึ่งพาพฤติกรรม Network แบบเก่าจึงควรถูกทดสอบ

⑰ onesync_automaticResend ใช้ไม่ได้แล้ว

ตัวแปร

onesync_automaticResend

ถูกถอดออกจาก Enhanced

ถ้า server.cfg เก่ามี Setting นี้ ไม่ควรคาดหวังว่าจะมีผลเหมือน Legacy

ควร Review Convar เก่าทั้งหมดก่อน Production

⑱ sv_useAccurateSends ถูก Deprecated

Enhanced มี Config ใหม่คือ

sv_syncTickRate

แทนการพึ่ง

sv_useAccurateSends

แบบเดิม

Cfx.re ระบุ Range ของ sv_syncTickRate ตั้งแต่

1-120

และค่า Default คือ

60

ไม่ควรตั้ง 120 ทันทีโดยไม่ Benchmark เพราะ Tick Rate สูงขึ้นสามารถใช้ CPU มากขึ้น

⑲ endpoint_add_tcp และ udp เปลี่ยนอะไร?

Enhanced รองรับ Endpoint เดียว แทนการกำหนดหลาย Endpoint แบบ Legacy บาง Configuration

ถ้า Server เก่ามีหลาย

endpoint_add_tcp

หรือ

endpoint_add_udp

ต้อง Review ก่อน Migration

อย่า Copy Network Config เดิมโดยอัตโนมัติ

⑳ Pure Mode เปลี่ยนอย่างไร?

Enhanced เปิด Pure Mode เสมอและไม่สามารถปิดได้ตามเอกสาร Cfx.re ปัจจุบัน

ในช่วง Early Access ยังมีข้อจำกัดเกี่ยวกับ Graphics Mod ฝั่ง Client

ดังนั้น Community ที่เคยพึ่ง

  • Graphics Mod

  • Client Modification

  • Modified Game File

ควรแจ้งผู้เล่นถึงความแตกต่างนี้ก่อน Migration

㉑ Developer Mode เปลี่ยน

คำสั่ง Legacy อย่าง

+set moo 31337

ถูกถอดออก

Enhanced ใช้ Server-side Convar

sv_devMode true

เพื่อเปิด Development Tool

ดังนั้น Developer Workflow เดิมควรถูกอัปเดต

㉒ อย่าเปิด Developer Mode บน Production แบบไม่จำเป็น

Developer Mode มีไว้สำหรับ

  • Debug

  • Resmon

  • Profiler

  • Development Tool

ควรใช้บน Test Environment

Cfx.re ยังมีข้อจำกัด Player Slot เมื่อ Server เปิด Developer Mode ในบาง Configuration เพื่อป้องกันการใช้แทน Production

㉓ KVP Database ต้อง Migration

นี่เป็น Breaking Change ที่ Server Owner ไม่ควรมองข้าม

Cfx.re ระบุว่า Key-Value DB Files ต้อง Migration

ถ้า Resource ใช้ KVP เก็บข้อมูล เช่น

  • Setting

  • Player Preference

  • Resource Cache

  • Persistent State

ต้องตรวจว่าข้อมูลเหล่านี้ถูก Migration ด้วย

อย่าคิดว่า Database MySQL คือข้อมูลทั้งหมดของ Server

㉔ KVP คืออะไร?

KVP คือระบบ Key-Value Persistence ของ FiveM

Resource สามารถใช้เก็บข้อมูลในรูปแบบ

  • String

  • Integer

  • Float

บาง Resource ใช้ KVP แทน SQL สำหรับ Configuration หรือ State ขนาดเล็ก

ถ้าย้ายเฉพาะ MySQL แต่ลืม KVP Resource บางตัวอาจเหมือนถูก Reset

㉕ ตรวจ Resource ที่ใช้ KVP อย่างไร?

Developer สามารถ Search Code หาคำสั่งที่เกี่ยวข้องกับ

  • SetResourceKvp

  • GetResourceKvp

  • DeleteResourceKvp

หรือ API ที่เกี่ยวข้องตาม Runtime

สร้าง List ไว้ว่า Resource ใดต้องตรวจ KVP Migration

อย่ารอให้ Production เปิดแล้วจึงรู้ว่าข้อมูลหาย

㉖ Resource Builders ถูกถอดออก

Cfx.re ระบุว่า Resource ไม่สามารถเป็น Builder ในรูปแบบเดิมได้แล้ว

ถ้า Server ใช้ Resource Pipeline หรือ Build Process ที่พึ่ง Feature นี้ ต้องปรับ Workflow

Server ทั่วไปอาจไม่เจอปัญหานี้ แต่ Developer Environment ขนาดใหญ่อาจได้รับผล

㉗ DevCon Port เดิมถูกถอด

Port

29200
29300

สำหรับ DevCon แบบเก่าถูกถอดใน Enhanced

รวมถึง Server ImGui GUI แบบเดิมก็ถูกถอด

ถ้ามี Development Tool ภายในทีมที่พึ่งระบบเหล่านี้ต้องปรับก่อน Migration

㉘ Lua Script เดิมย้ายได้ไหม?

ส่วนใหญ่มีโอกาสสูง

Cfx.re ตั้งใจรักษา Backward Compatibility กับ Existing Script และ Native ที่รองรับอยู่

ดังนั้น Lua Script จำนวนมากไม่จำเป็นต้องเขียนใหม่

แต่ต้องทดสอบ Feature จริง เช่น

  • Events

  • Callbacks

  • Entity

  • State Bags

  • Player Scope

เพราะบาง Behavior เปลี่ยนแม้ Syntax เดิมยังทำงาน

㉙ JavaScript Resource เดิมล่ะ?

หลักการเดียวกัน

Resource JavaScript จำนวนมากสามารถนำมาทดสอบได้

แต่ควรตรวจ

  • Runtime Dependency

  • npm Package

  • Binary Module

  • Event

  • NUI

  • Memory

โดยเฉพาะ Resource เก่าที่ไม่ได้ Update มานาน

㉚ C# ต้องระวังมากกว่าปกติ

Enhanced เปลี่ยนจาก Mono ไปใช้ Runtime บน .NET 10

Cfx.re ยังรักษา Old API เพื่อ Compatibility แต่ Resource C# ควรได้รับการ Audit เพิ่ม

ตรวจ

  • NuGet Package

  • Reflection

  • Binary Dependency

  • Runtime API

  • Target Framework

  • Library เก่า

โดยเฉพาะ DLL ที่ Compile มานานแล้ว

㉛ อย่าทดสอบ Script ด้วยคำว่า Started อย่างเดียว

Console แสดง

Started resource myscript

ไม่ได้แปลว่า Resource Compatible 100%

ต้องทดสอบ Function จริง

เช่น Inventory ต้องทดสอบ

  • Open

  • Move Item

  • Drop

  • Stash

  • Trunk

  • Save

  • Reconnect

การ Migration ต้องเป็น Functional Test ไม่ใช่ Startup Test

㉜ Framework ควรย้ายก่อน Resource ย่อย

แนะนำลำดับ

กลุ่ม 1

Library/Dependency

กลุ่ม 2

Database Driver

กลุ่ม 3

Framework Core

กลุ่ม 4

Character/Spawn

กลุ่ม 5

Inventory/Target

กลุ่ม 6

Job

กลุ่ม 7

Voice/Phone

กลุ่ม 8

Vehicle

กลุ่ม 9

Map/MLO

กลุ่ม 10

ระบบเสริม

วิธีนี้ทำให้หาต้นเหตุง่ายขึ้น

㉝ ESX ควรทดสอบอะไร?

อย่างน้อย

  • Login

  • Player Loaded

  • Identifier

  • Character

  • Money

  • Job

  • Inventory

  • Vehicle

  • Death

  • Reconnect

  • Save

ถ้า Core ผ่านแล้วค่อยเพิ่ม ESX Resource ภายนอก

㉞ QBCore ควรทดสอบอะไร?

ตรวจ

  • PlayerData

  • Metadata

  • Job

  • Gang

  • Inventory

  • Character

  • Vehicle

  • Garage

  • Callback

  • Server Event

และ Resource ที่พึ่ง qb-core ทุกตัว

㉟ Qbox ต้องทดสอบ Dependency ทั้ง Chain

Qbox Server มักพึ่ง Resource หลายตัวร่วมกัน

ตัวอย่าง

  • qbx_core

  • ox_lib

  • ox_inventory

  • ox_target

  • Database Driver

อย่าทดสอบ Core ตัวเดียวแล้วสรุปว่า Stack ทั้งหมดรองรับ Enhanced

㊱ Voice ต้องทดสอบใหม่

FiveM Enhanced ใช้ Voice Stack ที่สร้างใหม่แทน Mumble Integration เดิม

Native แบบเก่ายังมี Compatibility บางส่วน แต่ Mumble ถูกจัดเป็น Deprecated

ดังนั้นต้องทดสอบ

  • Proximity

  • Radio

  • Phone

  • Channel

  • Mute

  • Routing Bucket

  • Reconnect

ให้ครบ

㊲ pma-voice ใช้ต่อได้เลยไหม?

ไม่ควรสมมติว่า Version เก่าจะสมบูรณ์

ควรตรวจ Version ล่าสุดและทดสอบบน Enhanced

โดยเฉพาะ Server ที่ใช้ Resource เสริมเช่น

  • Radio UI

  • Phone Calls

  • Voice Range

  • Megaphone

เพราะ Dependency Chain อาจมี Compatibility ต่างกัน

㊳ Connection Handshake ใหม่ต้องทดสอบ

Enhanced เปลี่ยน Handshake ระหว่าง Client และ Server

ช่วง Connection Deferral ใช้ WebSocket และ UDP จะยังไม่ถูกใช้จน Connection สำเร็จ

ดังนั้น Server ที่มี

  • Firewall

  • DDoS Protection

  • Reverse Proxy

  • ACL

  • Custom Network Protection

ต้องทดสอบใหม่ทั้งหมด

㊴ Legacy เข้าได้ไม่ได้แปลว่า Enhanced จะเข้าได้

นี่เป็นข้อผิดพลาดที่พบบ่อย

Firewall เดิมอาจรองรับ Connection Flow ของ Legacy แต่ไม่รองรับ Enhanced

หาก

Legacy เข้าได้

แต่

Enhanced WebSocket Handshake Fail

ให้ตรวจ Network Protection ก่อน Script

㊵ Map/MLO/รถต้องใช้ Alchemist

Cfx.re สร้าง Alchemist สำหรับแปลง Asset จาก GTA V Legacy ไป Enhanced โดยตรง

มันสามารถ Scan Folder และ Subfolder เพื่อหา Legacy Asset แล้วแปลงเป็น Enhanced Format

เหมาะกับ

  • Map

  • MLO

  • Vehicle

  • Model

  • 3D Asset

นี่ควรเป็นส่วนหนึ่งของ Migration Plan สำหรับ Server ที่มี Custom Asset

㊶ Alchemist แปลง resources ทั้ง Folder ได้ไหม?

ได้

Cfx.re ระบุว่าสามารถเลือก resources Directory ของ Server เป็น Input

Alchemist จะสร้าง Output Resource Folder ที่ใช้เป็น Drop-in Replacement สำหรับ Enhanced

ระบบจะตรวจ Legacy 3D Asset ใน Subfolder แล้ว Convert

㊷ Script ใน Folder จะถูก Alchemist แก้ไหม?

โดยหลัก ไม่

Alchemist จะ Copy ไฟล์รอบข้าง เช่น

  • Script

  • Interface

  • Configuration

ไปยัง Output แต่ไม่ได้แก้เนื้อหา Script เหล่านั้น

ดังนั้น Script Compatibility ยังต้องทดสอบแยก

นี่สำคัญมาก เพราะ Alchemist ไม่ใช่ Script Converter

㊸ อย่า Convert ทับ Resource ต้นฉบับ

ควรใช้ Folder แบบนี้

resources-legacy

เป็น Source

และ

resources-enhanced

เป็น Output

ไม่ควรเขียนทับ Original Asset จนไม่สามารถกลับ Legacy ได้

เก็บ Source ต้นฉบับไว้เสมอ

㊹ ควรแปลง Asset ทั้งหมดทีเดียวไหม?

Server เล็กอาจทำได้

แต่ Server ใหญ่ควรแยก Batch เช่น

  1. รถ

  2. Map

  3. MLO

  4. Props

  5. Clothing/Asset ที่เกี่ยวข้อง

แล้วทดสอบทีละกลุ่ม

หาก Asset ตัวหนึ่ง Crash จะหาได้ง่ายกว่าแปลงหลายพันไฟล์แล้วเปิดพร้อมกัน

㊺ Asset ที่ Convert แล้วต้องทดสอบอะไร?

ตรวจอย่างน้อย

  • Model แสดงถูก

  • Texture ถูก

  • Collision

  • LOD

  • Door

  • Interior

  • Spawn

  • Lighting

  • Performance

  • Client Crash

คำว่า Convert สำเร็จไม่ได้หมายความว่า Gameplay Test ผ่านเสมอไป

㊻ รถต้องทดสอบทีละ Pack

สำหรับ Vehicle ตรวจ

  • Spawn

  • Texture

  • Handling

  • Wheel

  • Door

  • Light

  • Damage

  • Collision

  • LOD

  • Meta

รวมถึงทดสอบหลายคันพร้อมกันเพื่อดู Performance

㊼ MLO ต้องเดินตรวจจริง

อย่าดูเพียงว่า Map โหลด

ให้เดินตรวจ

  • ทางเข้า

  • Collision

  • Door

  • Stair

  • Interior

  • Lighting

  • Teleport

  • NPC

  • Camera

และลองให้ผู้เล่นหลายคนเข้า Location พร้อมกัน

㊽ Asset Escrow เป็นจุดที่ต้องเช็กก่อนย้าย Production

ตามเอกสาร Cfx.re ปัจจุบัน Asset Escrow ยังระบุว่าไม่ได้ Implement สำหรับ Enhanced

ดังนั้นหาก Server พึ่ง Resource Escrow จำนวนมาก ต้องตรวจสถานะของ Resource เหล่านั้นก่อน Migration จริง

นี่เป็นเหตุผลสำคัญที่ Server Production บางแห่งอาจเลือกใช้ Legacy ต่อจน Dependency พร้อม

㊾ อย่า Bypass Asset Escrow

หาก Paid Resource ยังไม่รองรับ Enhanced ไม่ควร

  • Crack

  • Bypass

  • Decrypt

  • ดัดแปลง Escrow

เพื่อฝืนใช้งาน

ควรรอ Enhanced Version หรือสอบถาม Developer ผู้สร้าง Resource

นี่ปลอดภัยทั้งด้าน Technical และ License

㊿ State Bags เปลี่ยน Behavior

Enhanced มีการเปลี่ยนเรื่อง State Bags

Cfx.re ระบุว่า Callback จะถูกเรียกเมื่อ Entity มีอยู่จริง และ Replicated Value จะ Replicate เมื่อถูกกำหนดให้ Replicate อย่างชัดเจน

Resource ที่ใช้ State Bags หนัก ๆ ควรทดสอบ

  • Player State

  • Entity State

  • Vehicle State

  • Job State

  • Routing

อีกครั้ง

51. Script ที่พึ่ง State Bag แบบเดิมอาจมี Bug แบบเงียบ

ปัญหาอาจไม่ได้ขึ้น Error

แต่ Feature เช่น

  • Vehicle Lock

  • Duty State

  • Entity Metadata

  • Interaction

  • Instance

อาจไม่ Sync ตามที่คาด

จึงต้องทดสอบด้วยผู้เล่นอย่างน้อย 2–3 Client ไม่ใช่คนเดียว

52. Gamebuild ต้องตรวจ

Enhanced ปัจจุบันรองรับ Gamebuild ล่าสุดเป็น Default

Server เก่าที่ตั้ง

sv_enforceGameBuild

ไว้เพื่อบังคับ Legacy DLC Build ควร Review

อย่า Copyเลข Build เก่าจาก Legacy อย่างไม่ตรวจ

เพราะ Enhanced Gamebuild Model ต่างออกไป

53. Graphics Mod ของผู้เล่นต้องแจ้งล่วงหน้า

Enhanced Early Access เปิด Pure Mode แบบบังคับและมีข้อจำกัดกับ Graphics Mod

ถ้า Community เดิมใช้

  • ReShade

  • Graphics Pack

  • Modified Visual File

อย่างแพร่หลาย ควรประกาศก่อน Migration

ไม่เช่นนั้นผู้เล่นอาจเข้า Server แล้วคิดว่า Client มีปัญหา

54. Resource File Download Timeout มี Config ใหม่

Enhanced เพิ่ม

sv_resourceFileDownloadTimeout

ใช้กำหนด Timeout สำหรับการดาวน์โหลด Resource File ผ่าน HTTP

Default ตามเอกสารคือประมาณ 2 นาที

Server ที่มี Resource ใหญ่มากหรือ Infrastructure Download พิเศษควรเข้าใจ Setting นี้

ไม่ควรเพิ่ม Timeout สูงมากเพื่อซ่อน Download Server ที่ช้าโดยไม่แก้ต้นเหตุ

55. อย่าเร่ง sv_syncTickRate เป็น 120 ทันที

แม้ Enhanced รองรับถึง 120 แต่ Cfx.re ระบุชัดว่า Tick Rate ที่สูงขึ้นสามารถเพิ่ม CPU Usage

สำหรับ Migration ควรเริ่มจากค่า Default

แล้ว Benchmark

  • CPU

  • Network

  • Player Count

  • Latency

ก่อนปรับ

56. ทดสอบ Server Performance ก่อน Production

วัดอย่างน้อย

  • CPU

  • RAM

  • Thread Tick

  • Player Count

  • Entity Count

  • Network

  • Lua Memory

  • JavaScript Memory

Enhanced มี Metrics มากขึ้นสำหรับ Server Owner จึงควรใช้ข้อมูลจริงประกอบการตัดสินใจ

57. Enhanced มี Server Metrics มากขึ้น

Cfx.re เพิ่ม Metrics ที่ติดตามได้ เช่น

  • svMain Tick

  • svNetwork Tick

  • svSync Tick

  • Entity

  • State Bags

  • Handshake

  • TCP Connections

  • Lua Memory

  • JavaScript Memory

  • Event Queue

เหมาะมากกับ Migration เพราะสามารถเปรียบเทียบ Performance ก่อนและหลังได้

58. Benchmark Legacy ก่อนย้าย

ก่อน Migration ควรเก็บ Baseline จาก Legacy เช่น

  • RAM ตอน 50 Player

  • CPU ตอน 50 Player

  • Server Tick

  • Resource CPU

  • Database Latency

  • Network

หลัง Enhanced Test ให้ใช้จำนวน Player และ Scenario ใกล้เคียงกัน

จะได้รู้ว่า Migration ดีขึ้นหรือแย่ลงตรงไหนจริง

59. Resmon และ Profiler ควรใช้ตั้งแต่ Test

อย่ารอ Production Lag ก่อนค่อยใช้

Developer ควรตรวจ

  • Resource CPU

  • Resource Memory

  • Spike

  • Hitch

  • NUI

ตั้งแต่ Enhanced Test Server

Resource ที่มีปัญหาควรถูกแก้ก่อนเพิ่ม Player

60. Database Persistence ต้องทดสอบ

ทำ Test เช่น

  1. Login

  2. ซื้อ Item

  3. ฝากเงิน

  4. เปลี่ยน Job Data

  5. เก็บรถ

  6. Logout

  7. Restart Server

  8. Login ใหม่

แล้วตรวจว่าข้อมูลยังอยู่ครบ

นี่เป็นหนึ่งใน Test ที่สำคัญที่สุดสำหรับ RP Server

61. Character Migration ต้องทดสอบหลาย Account

อย่าทดสอบ Character Admin เพียงคนเดียว

ควรมี Test Case เช่น

  • Character ใหม่

  • Character เก่า

  • Character มีบ้าน

  • Character มีรถหลายคัน

  • Character มี Inventory เยอะ

  • Character มี Job/Gang

เพราะ Data Structure แต่ละคนอาจต่างกัน

62. Vehicle Data ต้องแยกจาก Vehicle Asset

ตัวอย่าง Player มีรถ

customcar01

ใน Database

Database Record อาจ Migration ได้ครบ

แต่ถ้า Model customcar01 ยังไม่ได้ Convert รถก็อาจ Spawn ไม่ได้

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

Database Data + Enhanced Asset

พร้อมกัน

63. Clothing เป็นอีกจุดที่ควรทดสอบหนัก

Character เดิมอาจเก็บ

  • Drawable

  • Texture

  • Component

  • Prop

เป็น Index

หลัง Enhanced Migration ต้องตรวจว่า Outfit เดิมยังแสดงถูกต้องหรือไม่

อย่ารอผู้เล่นหลายพันคน Login แล้วค่อย发现ว่าเสื้อผ้าผิด Index

64. Phone ต้องทดสอบร่วมกับ Voice

Phone ไม่ได้มีเพียง UI

อาจเชื่อม

  • Voice Call

  • Contact

  • Message

  • Camera

  • GPS

  • Database

  • Notification

Voice Stack ใหม่ของ Enhanced ทำให้ Phone เป็น Resource ที่ต้องทดสอบละเอียดเป็นพิเศษ

65. Admin Script ต้องทดสอบ

ตรวจ

  • Kick

  • Ban

  • Spectate

  • Teleport

  • Bring

  • Freeze

  • Revive

  • Entity Delete

  • Player List

โดยเฉพาะ Script ที่อาศัย Player Scope และ Entity Behavior แบบ Legacy

Admin Tool ที่ผิดอาจสร้างปัญหาใหญ่ใน Production

66. Security Script ต้องทดสอบด้วย

Anti-cheat และ Server Protection บางระบบอาจพึ่ง

  • Network Behavior

  • Entity Creation

  • Event

  • Identifier

  • Connection Flow

ที่เปลี่ยนใน Enhanced

ควรตรวจ Version จากผู้พัฒนา Anti-cheat และทดสอบก่อน

อย่าปิด Anti-cheat แล้วเปิด Production เพียงเพื่อให้ Enhanced เข้าได้

67. Firewall และ DDoS Protection ต้องทดสอบจาก Internet จริง

Localhost ไม่พอ

ให้ Tester ภายนอก Network เข้า Server

ทดสอบ

  • Login

  • Reconnect

  • Queue

  • Deferral

  • High Ping

  • Multiple Clients

ถ้าเกิด WebSocket Handshake Error ให้ตรวจ Protection Layer

68. ต้องมี Test Server กี่คน?

ช่วงแรกอาจเริ่ม

2–5 คน

เพื่อ Function Test

จากนั้นเพิ่มเป็น

10–20 คน

เพื่อ Integration Test

แล้วทำ Stress Test ตามจำนวนที่เหมาะกับ Server

อย่ากระโดดจาก Developer 2 คนไป Production 300 คนโดยไม่มี Load Test

69. ทำ Checklist แบบ Pass/Fail

ตัวอย่าง

ระบบสถานะ
Framework✅
Database✅
Inventory✅
Phone⚠️
Voice✅
Map Pack 1✅
MLO Pack 2❌
Vehicle Pack🧪
Admin✅

ใช้ Checklist จริงจะช่วย Team เห็นความพร้อมง่ายกว่าอาศัยความจำ

70. Resource ควรแบ่งสถานะ

แนะนำ

  • ✅ Compatible

  • ⚠️ ต้องแก้

  • ❌ ใช้ไม่ได้

  • 🔄 รอผู้พัฒนา

  • 🧪 กำลังทดสอบ

Resource ที่เป็น ❌ ไม่ควรแอบเปิด Productionแล้วหวังว่าจะไม่มีผู้เล่นเจอ

71. ก่อน Cutover ต้อง Freeze การเปลี่ยนแปลง

ช่วงก่อน Migration จริงควรหยุด Update Script ใหม่ชั่วคราว

เรียกว่า Change Freeze

เพราะถ้ายังเพิ่ม

  • Phone ใหม่

  • Map ใหม่

  • Inventory Update

  • Framework Update

พร้อมกับ Migration คุณจะไม่รู้ว่า Bug มาจากอะไร

ลดจำนวนตัวแปรให้ต่ำที่สุด

72. วิธี Cutover Database

แนวทางทั่วไปคือ

  1. ประกาศ Maintenance

  2. ปิด Legacy Server

  3. Backup Database รอบสุดท้าย

  4. Migration/Restore ไป Production Target

  5. ตรวจ Schema

  6. เปิด Enhanced Server

  7. Staff Login ทดสอบ

  8. เปิดผู้เล่น

อย่าให้ Legacy และ Enhanced เขียน Character Database เดียวกันพร้อมกันโดยไม่มี Architectureรองรับ

73. ทำไมไม่ควรเปิด Legacy และ Enhanced ใช้ Database เดียวพร้อมกัน?

เพราะ Player สามารถเกิด

  • Duplicate Login

  • Inventory Conflict

  • Money Conflict

  • Vehicle State Conflict

  • Housing Conflict

  • Session Conflict

ได้

หากต้องการ Parallel Environment ให้ใช้ Database แยก

จนกว่าจะมีระบบ Sync ที่ออกแบบเฉพาะ

74. Rollback Plan ต้องเตรียมก่อนเปิดจริง

ก่อน Cutover ต้องตอบได้ว่า

ถ้า Enhanced มีปัญหาหนัก เรากลับ Legacy อย่างไร?

ควรเก็บ

  • Legacy Binary

  • Legacy Resources

  • Legacy Config

  • Database Backup ก่อน Migration

  • DNS/IP Configuration

  • Join Announcement เดิม

ไว้

อย่าคิดเรื่อง Rollback หลัง Server พังแล้ว

75. กำหนดเงื่อนไข Rollback ไว้ล่วงหน้า

ตัวอย่าง

Rollback หาก

  • ผู้เล่นส่วนใหญ่ Connect ไม่ได้

  • Character Data เสีย

  • Inventory Save ไม่ได้

  • Server Crash ต่อเนื่อง

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

  • Asset ทำ Client Crash จำนวนมาก

การกำหนดเกณฑ์ก่อนช่วยให้ทีมไม่ลังเลตอนเกิดเหตุจริง

76. อย่าลบ Legacy หลัง Enhanced เปิดวันแรก

ควรเก็บ Legacy Environment ไว้อีกระยะหนึ่ง

จนยืนยันว่า

  • Database เสถียร

  • Resource หลักผ่าน

  • Player เข้าได้

  • Crash อยู่ในระดับรับได้

  • Backup Enhanced ทำงาน

แล้วจึงค่อยตัดสินใจ Archive Legacy

77. Enhanced ยังอยู่ใน Early Access

FiveM for GTAV Enhanced ขณะนี้ยังอยู่ในช่วง Early Access

Cfx.re ยังคงทำ Stress Test และปรับ Platform ต่อเนื่อง

ดังนั้น Server Production ขนาดใหญ่ควร Migration เมื่อ Dependency สำคัญพร้อม ไม่จำเป็นต้องรีบเพียงเพราะ Enhanced เปิดให้ใช้งานแล้ว

ความเสถียรของ Community สำคัญกว่าความเร็วในการย้าย

78. Server แบบไหนควรย้ายก่อน?

เหมาะกับ

  • Server Development

  • Server ใหม่

  • Server Asset ไม่เยอะ

  • Script ส่วนใหญ่พัฒนาเอง

  • ทีม Developerพร้อม

  • มี Staging

  • มี Backup

  • มี Tester

เพราะสามารถควบคุม Dependency ได้ง่าย

79. Server แบบไหนควรรอบคอบเป็นพิเศษ?

เช่น Server ที่มี

  • Resource หลายร้อยตัว

  • Paid Escrow Resource จำนวนมาก

  • Custom MLO จำนวนมาก

  • Vehicle หลายพันคัน

  • Player Database ใหญ่

  • Framework ดัดแปลงหนัก

  • Anti-cheat เฉพาะ

  • Player จำนวนมาก

Server ประเภทนี้ควร Migration แบบ Phase มากกว่าการย้ายครั้งเดียว

80. Migration Checklist แบบสั้น

ก่อนเปิด Production ให้ครบอย่างน้อย

Platform

  • Cfx Server Enhanced ✅

  • Artifact Supported ✅

  • txAdmin ✅

Network

  • Port ✅

  • Firewall ✅

  • WebSocket/Handshake ✅

  • DDoS Protection ✅

Data

  • Database Backup ✅

  • Database Clone Test ✅

  • KVP Migration ✅

Framework

  • Core ✅

  • Character ✅

  • Inventory ✅

  • Jobs ✅

Communication

  • Voice ✅

  • Radio ✅

  • Phone ✅

Assets

  • Maps ✅

  • MLO ✅

  • Vehicles ✅

  • Clothing ✅

Operations

  • Admin ✅

  • Anti-cheat ✅

  • Backup ✅

  • Rollback ✅

  • Load Test ✅

ถ้ายังมีระบบ Critical เป็น ❌ ไม่ควร Cutover

81. สิ่งที่ไม่ควรทำตอนย้าย Legacy ไป Enhanced

หลีกเลี่ยง

  • Copy Cfx Server ทับ FXServer

  • ไม่มี Backup

  • ใช้ Production Database ทดสอบ

  • เปิด Resource ทั้งหมดครั้งเดียว

  • Copy Config เดิมโดยไม่อ่าน Breaking Changes

  • ไม่ Migration KVP

  • ไม่ตรวจ OneSync

  • ไม่ตรวจ State Bags

  • ไม่ทดสอบ Voice

  • Copy Asset Legacy ตรง ๆ ทั้งหมด

  • Bypass Asset Escrow

  • ไม่มี Rollback Plan

ข้อผิดพลาดเหล่านี้ทำให้ Migration ที่ควรควบคุมได้กลายเป็น Downtime ขนาดใหญ่

82. คำถามที่พบบ่อย

ย้าย FiveM Legacy ไป Enhanced ต้องสร้าง Server ใหม่หมดไหม?

ไม่ต้อง Framework, Script และ Database จำนวนมากสามารถ Migration ได้ แต่ต้องใช้ Cfx Server Enhanced และทดสอบ Compatibility

ใช้ server.cfg เดิมได้ไหม?

ใช้เป็นฐานได้ แต่ต้องตรวจ Breaking Changes และ Convar ที่ถูกถอดหรือเปลี่ยน

Database เดิมใช้ได้ไหม?

ได้ถ้า Framework/Schema รองรับ แต่ควรทดสอบกับ Clone ก่อน

KVP ต้องย้ายไหม?

ต้องตรวจและ Migration เพราะ Enhanced มี Breaking Change ด้าน KVP Database Files

ESX/QBCore/Qbox ใช้ต่อได้ไหม?

มีโอกาสสูง แต่ต้องทดสอบ Resource และ Dependency ทั้ง Stack

Map/MLO/รถต้องทำอย่างไร?

ตรวจและแปลง Legacy Asset ด้วย Alchemist ตามความจำเป็น

Alchemist แก้ Script ให้ด้วยไหม?

ไม่ มัน Convert Asset และ Copy Script/Config รอบข้างโดยไม่แก้เนื้อหา Script

C# เดิมใช้ได้ไหม?

Enhanced เปลี่ยนไปใช้ .NET 10 แต่ยังมี Compatibility API สำหรับ Resource เดิม ต้องทดสอบ Dependency

Voice เดิมใช้ได้ไหม?

Enhanced มี Voice Stack ใหม่และ Compatibility กับ Native เดิมบางส่วน แต่ต้องทดสอบระบบ Voice จริง

Asset Escrow ใช้ได้หรือยัง?

ตามเอกสาร Enhanced ปัจจุบันยังระบุ Asset Escrow ว่าไม่ได้ Implement จึงต้องตรวจ Paid Resource ก่อน Migration

ต้องลบ Legacy เมื่อ Enhanced เปิดได้ไหม?

ไม่ควร ควรเก็บไว้เพื่อ Rollback จน Enhanced Production เสถียร

83. สรุปวิธีย้าย FiveM Server จาก Legacy ไป Enhanced

วิธีที่ปลอดภัยที่สุดในการ ย้าย FiveM Server จาก Legacy ไป Enhanced คืออย่ามองว่าเป็นการ Update FXServer ธรรมดา

ให้ทำเป็น Migration Project

เริ่มจาก

Backup → Cfx Server Enhanced แยก Folder → Clone Database → Config Review → Framework → Script → Voice → Asset Conversion → Network → Load Test → Cutover → Rollback Ready

Enhanced ยังคงรักษา Backward Compatibility กับ Script Lua, JavaScript และ C# จำนวนมาก จึงไม่จำเป็นต้องสร้าง Roleplay Serverใหม่ทั้งหมด

แต่ Breaking Changes ที่ต้องตรวจจริงมีหลายจุด เช่น

  • OneSync Non-Big Mode ถูกถอด

  • P2P Sync เปลี่ยนเป็น Client-server

  • KVP Files ต้อง Migration

  • Mono เปลี่ยนเป็น .NET

  • Pure Mode เปิดตลอด

  • Endpoint รองรับเพียงชุดเดียว

  • Developer Mode เปลี่ยน

  • State Bags เปลี่ยน Behavior

  • sv_syncTickRate เข้ามาแทนแนวทางเก่าบางส่วน

  • Asset Legacy ต้องตรวจและแปลง

สำหรับ Custom Asset ควรใช้ Alchemist เพราะ Cfx.re ออกแบบมาให้สามารถ Convert Legacy 3D Asset ได้ถึงระดับเลือก resources Folder แล้วสร้าง Enhanced-compatible Output Folder โดยยัง Copy Script และ Configuration รอบข้างไปให้ แต่จะไม่แก้ Script แทน Developer

อีกจุดสำคัญคือ Enhanced ยังอยู่ใน Early Access และเอกสาร Cfx.re ปัจจุบันยังระบุ Asset Escrow เป็น Feature ที่ไม่ได้ Implement ดังนั้น Server ที่พึ่ง Paid/Escrow Resource จำนวนมากต้องตรวจ Dependency ก่อนตัด Legacy

แนวทางที่ comsiam แนะนำสำหรับ Server ที่มีผู้เล่นจริงคือ อย่าปิด Legacy จน Enhanced ผ่าน Functional Test, Database Test, Asset Test, Network Test และ Load Test พร้อมมี Rollback Plan

Migration ที่ดีไม่ใช่ Server ที่ “เปิดติด” แต่คือ Server ที่ผู้เล่นเดิม Login กลับมาแล้ว Character, เงิน, Item, รถ, บ้าน, Voice, Map และระบบทั้งหมดทำงานต่อได้อย่างถูกต้อง โดยสามารถย้อนกลับ Legacy ได้ทันทีหากเกิดปัญหาสำคัญ

Comments

Popular posts from this blog

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

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

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