ESX Legacy คืออะไร ต่างจาก ESX รุ่นเก่าอย่างไร
ESX Legacy คือ สายพัฒนาปัจจุบันของ ESX Framework สำหรับ FiveM Roleplay Server ที่ต่อยอดจาก ESX รุ่นเดิม โดยปรับปรุง Core, Performance, Player Loading, APIs, Database Integration, OneSync และ Compatibility เพื่อให้เหมาะกับ FiveM Server รุ่นใหม่มากขึ้น
Core หลักยังคงชื่อ
es_extended
แต่ ESX Legacy ปัจจุบันไม่ควรถูกติดตั้งหรือพัฒนาตาม Tutorial ESX เก่าแบบตรง ๆ เพราะหลายอย่างเปลี่ยนไปแล้ว
ตัวอย่างที่เห็นชัดคือ Official ESX Recipe ปัจจุบันใช้
oxmysql
es_extended
ESX Core Resources
ESX Addons
และดาวน์โหลด Resource รุ่นใหม่อย่าง ox_lib และ pma-voice เข้ามาในชุดติดตั้งด้วย
ขณะที่ Tutorial ESX ยุคเก่าอาจยังพูดถึง
essentialmode
esplugin_mysql
async
mysql-async
ดังนั้นหากสร้าง ESX Server ใหม่ในปี 2026 ควรเริ่มจาก ESX Legacy ปัจจุบัน ไม่ควรประกอบ Server จาก Tutorial หลายปีก่อน
① ESX Legacy คืออะไร
ESX Legacy คือ Framework สำหรับสร้าง FiveM Economy Roleplay Server
โครงสร้างพื้นฐานคือ
FiveM / FXServer
↓
ESX Legacy
↓
es_extended
↓
Player Data
Accounts
Jobs
Job Grades
Groups
Inventory Data
Metadata
Position
Database
↓
ESX Resources
Resource อย่าง
Police
EMS
Mechanic
Billing
Society
Vehicle Shop
Garage
Phone
Housing
สามารถใช้ข้อมูลจาก ESX Core ต่อได้
ESX Legacy จึงไม่ได้เป็น Script ตัวเดียว แต่เป็น Core Framework ที่ Resource จำนวนมากพึ่งพา
② คำว่า Legacy แปลว่า ESX เก่าหรือเลิกใช้แล้วหรือไม่
ไม่ใช่ในความหมายนี้
คำว่า
ESX Legacy
เป็นชื่อของสาย Framework ที่ ESX ใช้อยู่
Official Repository ปัจจุบันยังระบุว่าเป็น
Official Repo For core resources for esx-legacy
และ Official txAdmin Recipe ก็ยังใช้ชื่อ
ESX Legacy
ดังนั้นอย่าเห็นคำว่า Legacy แล้วเข้าใจว่า
ต้องไปหา ESX รุ่นใหม่ที่ไม่ใช่ Legacy
สำหรับ Ecosystem ปัจจุบัน ESX Legacy ยังเป็นชื่อหลักที่ใช้กับ Framework นี้
③ ESX Legacy ต่างจาก ESX รุ่นแรกอย่างไร
ESX รุ่นแรกมี Architecture และ Dependencies ที่แตกต่างจากระบบปัจจุบันมาก
ใน Tutorial เก่าอาจพบ
EssentialMode
↓
esplugin_mysql
↓
mysql-async
↓
es_extended
หรือ Dependency อื่นตามยุค
แต่ ESX Legacy ปัจจุบันมี Core ที่พัฒนาต่อไปมากแล้ว
ตัวอย่าง Official Recipe ปัจจุบันเป็นแนวคิด
FXServer
↓
oxmysql
↓
es_extended
↓
[core]
↓
[esx_addons]
จึงไม่ควรใช้ Dependency Diagram จาก ESX รุ่นแรกเป็นมาตรฐานสำหรับ Server ใหม่
④ EssentialMode คืออะไรใน ESX รุ่นเก่า
FiveM รุ่นเก่าเคยมีระบบ
EssentialMode
ที่ ESX รุ่นแรกพึ่งพาในหลายส่วน
Tutorial เก่าจึงมักสอนให้ติดตั้ง
essentialmode
esplugin_mysql
async
mysql-async
es_extended
ตามลำดับ
แต่ ESX Legacy ปัจจุบันไม่ได้ต้องการให้สร้าง Stack แบบนี้อีก
การนำ EssentialMode เก่ามาใส่ Server ESX Legacy ใหม่อาจสร้าง
Resource ซ้ำ
Player Management ซ้ำ
Database Conflict
Event Conflict
Dependency Conflict
โดยไม่มีความจำเป็น
⑤ ESX Legacy ต้องใช้ EssentialMode ไหม
สำหรับ ESX Legacy ปัจจุบัน ไม่ควรติดตั้ง EssentialMode เพียงเพราะ Tutorial เก่าบอกให้ลง
Core ปัจจุบันจัดการ Player Framework ของตัวเองผ่าน
es_extended
อยู่แล้ว
หากคุณกำลังสร้าง ESX Server ใหม่และเจอ Tutorial ที่มีขั้นตอน
ติดตั้ง EssentialMode ก่อน
ให้ตรวจวันที่ของ Tutorial ทันที
มีโอกาสสูงว่าเป็นคู่มือ ESX คนละยุค
⑥ mysql-async กับ oxmysql ต่างกันอย่างไรใน ESX
นี่เป็นอีกจุดที่สับสนมาก
ESX รุ่นก่อน ๆ ใช้
mysql-async
อย่างแพร่หลาย
แต่ Official ESX Legacy Recipe ปัจจุบันดาวน์โหลด
oxmysql
และ fxmanifest.lua ของ es_extended ปัจจุบันมี Dependency
dependencies {
'oxmysql'
}
พร้อม Server Script
'@oxmysql/lib/MySQL.lua'
ดังนั้นสำหรับ ESX Server ใหม่ในปี 2026 ควรยึด oxmysql ตาม Current Core/Recipe
⑦ ทำไมบางหน้า ESX ยังเขียน mysql-async
ESX มีประวัติยาวนานมาก จึงมี
Repository เก่า
Fork
Mirror
README รุ่นก่อน
Tutorial เก่า
จำนวนมากบนอินเทอร์เน็ต
บางแหล่งยังระบุ
mysql-async
เป็น Requirement
แต่ถ้าตรวจ Official esx-framework/esx_core ปัจจุบัน จะเห็นว่า es_extended ใช้ oxmysql
ดังนั้นเวลาข้อมูลขัดกันให้ยึด
Current Official Core
+
Current Official Recipe
ก่อนคู่มือเก่า
⑧ ESX Legacy ใช้ OneSync หรือไม่
ใช้
Official server.cfg ปัจจุบันมี
set onesync on
และระบุ OneSync เป็น Requirement สำหรับ ESX Legacy รุ่นใหม่
OneSync ช่วยเกี่ยวกับ Synchronization และ Server-side Entity/Player Features ของ FiveM
ดังนั้น Server ESX รุ่นใหม่ไม่ควรถูก Configure ตาม Network Architecture ของ Tutorial ESX ยุคเก่าโดยไม่ตรวจสอบ
⑨ ESX Legacy ใช้ fxmanifest.lua หรือไม่
ใช้
Core ปัจจุบันมี
fxmanifest.lua
ตามมาตรฐาน FiveM Resource รุ่นใหม่
ตัวอย่างส่วนต้นปัจจุบันเป็นแนวคิด
fx_version 'cerulean'
game 'gta5'
พร้อม
shared_scripts
server_scripts
client_scripts
files
dependencies
จึงแตกต่างจาก Resources เก่าที่อาจยังใช้
__resource.lua
⑩ resource_manifest_version แบบเก่ายังควรใช้ไหม
Resource ESX รุ่นเก่าบางตัวอาจมี
resource_manifest_version '...'
หรือ __resource.lua
แต่ FiveM ปัจจุบันใช้
fx_version 'cerulean'
ใน fxmanifest.lua
ถ้ากำลังพัฒนา ESX Script ใหม่ ไม่ควรเริ่มจาก Manifest Template อายุหลายปี
⑪ Shared Object ของ ESX Legacy ใช้อย่างไร
ESX Script ต้องเข้าถึง Core Object เพื่อใช้ Framework APIs
Core ปัจจุบันมีรูปแบบ
ESX = exports["es_extended"]:getSharedObject()
อยู่ใน imports.lua
นี่เป็นรูปแบบ Export-based ที่ใช้กับ Current Core
จึงพบ Code เช่น
local ESX = exports['es_extended']:getSharedObject()
ใน Scripts สมัยใหม่จำนวนมาก
⑫ ESX รุ่นเก่าดึง Shared Object อย่างไร
Tutorial เก่ามากมักพบ Pattern ลักษณะ
TriggerEvent('esx:getSharedObject', function(obj)
ESX = obj
end)
นี่เป็นหนึ่งในสิ่งที่ทำให้มือใหม่สับสนเมื่อนำ Script เก่ามาใช้บน ESX Legacy ปัจจุบัน
Resource ใหม่ควรใช้ Integration ที่ตรงกับ ESX Version ของ Server
อย่าเพิ่ม Old Shared Object Event ลงไปเพียงเพราะ Script ขึ้น ESX nil
ควรตรวจว่า Script รุ่นนั้นต้องใช้วิธีใดจริง
⑬ imports.lua คืออะไร
ESX Legacy ปัจจุบันมี
imports.lua
ซึ่งทำหน้าที่ช่วย Initialisation และ Integration กับ es_extended
ภายใน Current Core มี
ESX = exports["es_extended"]:getSharedObject()
และจัดการ Player Data/Events บางส่วนให้ Resource ที่ Import ระบบนี้
จึงไม่จำเป็นต้องสร้าง Initialization Logic ซ้ำทุก Resource เสมอไป
ควรตรวจ fxmanifest.lua ของ Script ก่อนว่ามีการ Import ESX อยู่แล้วหรือไม่
⑭ อย่า Initialize ESX ซ้ำโดยไม่จำเป็น
สมมติ Resource มี ESX Imports อยู่แล้ว
แต่คุณเพิ่มอีก
ESX = exports['es_extended']:getSharedObject()
หรือเพิ่ม Old Event Pattern ซ้ำ
อาจไม่ได้ช่วยอะไรและทำให้ Architecture สับสน
ก่อนแก้ Script ให้ตรวจ
fxmanifest.lua
imports.lua
shared files
documentation
ก่อน
หลักคือใช้ Integration วิธีเดียวที่ Resource ถูกออกแบบมาให้ใช้
⑮ Player Loading ของ ESX Legacy เปลี่ยนไปอย่างไร
ESX Legacy มีการพัฒนาระบบ Player Loading และ Spawn จาก ESX รุ่นก่อน
Current Core จัดการ
Player Connection
Identifier
Database Load
Accounts
Job
Inventory
Metadata
Position
Character
แล้วสร้าง Player Object สำหรับการใช้งานของ Server Resources
ระบบนี้ถูกพัฒนาต่อจาก Architecture รุ่นเก่าเพื่อให้เข้ากับ FiveM รุ่นใหม่มากขึ้น
⑯ ESX Player Object คืออะไร
ฝั่ง Server ผู้เล่นแต่ละคนมี Object ซึ่งมักเรียกว่า
xPlayer
แนวคิด
source
↓
xPlayer
↓
Identifier
Accounts
Job
Inventory
Group
Metadata
Position
Resource สามารถใช้ xPlayer เพื่อทำงานโดยไม่ต้อง Query users Table เองทุกครั้ง
เช่น
Shop
↓
xPlayer
↓
ตรวจเงิน
↓
หักเงิน
⑰ xPlayer ยังเป็นส่วนสำคัญของ ESX Legacy ไหม
ใช่
Current Core ยังมี Player Class และ Server Functions สำหรับจัดการ Player Object
ตัวอย่าง Logic ภายใน Framework ยังใช้ข้อมูลจาก xPlayer ในการ Save
Accounts
Job
Grade
Group
Position
Inventory
Loadout
Metadata
Identifier
ลง Database
ดังนั้นแนวคิด xPlayer ยังคงเป็นพื้นฐานสำคัญของ ESX Development
⑱ Database users ของ ESX Legacy ปัจจุบันมีอะไร
Current es_extended.sql มี Table
users
และ Columns พื้นฐาน เช่น
identifier
ssn
accounts
group
inventory
job
job_grade
loadout
metadata
position
Resource อย่าง esx_identity สามารถเพิ่มข้อมูล Character เช่น
firstname
lastname
dateofbirth
sex
height
ภายหลัง
นี่แสดงว่า Database Schema ของ ESX ถูกพัฒนาต่อจาก Server รุ่นเก่าเช่นกัน
⑲ Metadata ใน ESX Legacy คืออะไร
Metadata ใช้เก็บข้อมูลเพิ่มเติมของ Player
Current Core มีการ Save
metadata
ลง users
และปัจจุบันมีการเก็บข้อมูลบางประเภท เช่น Health/Armor ผ่าน Metadata ภายใน Framework ด้วย
ทำให้ Developer สามารถใช้ Player Data ได้ยืดหยุ่นขึ้นกว่าสถาปัตยกรรม Player Table แบบเก่าที่ต้องเพิ่ม Column สำหรับข้อมูลทุกอย่าง
⑳ ESX Legacy รองรับ Job เหมือน ESX เก่าหรือไม่
ยังรองรับแนวคิดหลัก
jobs
job_grades
เช่นเดิม
ตัวอย่าง
police
├── recruit
├── officer
└── boss
แต่ Core และ Resource รอบ ๆ Job System มีการพัฒนาต่อ
Script เก่าที่แก้ Database Job โดยตรงอาจยังต้องตรวจ Compatibility กับ Current ESX APIs และ Tables
㉑ ESX Legacy ยังมี Accounts หรือไม่
มี
Current Core ยังคงจัดการ Player Accounts
ตัวอย่างแนวคิด
money
bank
ตาม Config ของ Server
เวลา Save Player Current Core จะ Encode Accounts แล้วบันทึกลง Database
จึงยังรองรับ Economy RP ซึ่งเป็นรากฐานสำคัญของ ESX
㉒ Inventory ของ ESX Legacy ต่างจากรุ่นเก่าอย่างไร
ESX รุ่นเดิมมี Inventory Structure ของ Framework เองมายาวนาน
ESX Legacy ปัจจุบันยังมี Inventory Handling แต่เปิดทางให้ใช้
CustomInventory
ได้
จึงสามารถเชื่อม External Inventory System ตาม Integration ที่รองรับ
เช่น
ox_inventory
แทนการบังคับให้ใช้ Inventory แบบเดียวทุก Server
㉓ ESX Legacy ใช้ ox_inventory ได้ไหม
ได้ หากติดตั้งตาม Integration ที่รองรับ
แต่ไม่ควรแค่
ensure ox_inventory
แล้วคิดว่าจะเปลี่ยน Inventory ได้ทันที
ต้องตรวจ
Config
Dependencies
ESX Compatibility
Item Definitions
Shops
Stashes
Job Scripts
Third-party Scripts
เพราะ Resource เก่าบางตัวอาจยังคาดหวัง ESX Inventory API แบบเดิม
㉔ Weapon Loadout รุ่นเก่าควรระวัง
ESX มีประวัติของ Weapon Loadout System มานาน
Resources รุ่นเก่าบางตัวอาจใช้แนวคิด
Loadout
Weapon
Ammo
จาก ESX Core เดิม
Server สมัยใหม่จำนวนมากเลือก Inventory ที่จัดอาวุธเป็น Items
ดังนั้นก่อนนำ Weapon/Police Script รุ่นเก่ามาใช้ ต้องตรวจว่า Script คาดหวัง
ESX Loadout
หรือ
Weapon-as-item Inventory
เพราะ Compatibility แตกต่างกัน
㉕ ESX Legacy มี Multicharacter ไหม
มี Resource
esx_multicharacter
อยู่ใน Ecosystem
และ Core ปัจจุบันรองรับ Configuration สำหรับ Multicharacter
Player จึงสามารถมี Character หลายตัว โดย Player Loading จะสัมพันธ์กับ Identifier/Character System ของ Framework
นี่เป็นส่วนหนึ่งที่ ESX Legacy พัฒนามาจาก Server ESX รุ่นแรกที่ Architecture Character ยังเรียบง่ายกว่า
㉖ ESX Legacy มี Identity System ไหม
มี
Resource
esx_identity
เพิ่มข้อมูล Character เช่น
firstname
lastname
dateofbirth
sex
height
ลงใน users
ระบบเหล่านี้ถูกเชื่อมเข้ากับ Core และ Multicharacter ได้ตาม Configuration
㉗ ESX Legacy ใช้ ox_lib หรือไม่
Official Recipe ปัจจุบันดาวน์โหลด
ox_lib
มาในชุดติดตั้ง
และ Current ESX Core ยังมี
esx_lib
เป็น Resource ใน Core Ecosystem
ต้องแยกให้ออกว่า
esx_lib
กับ
ox_lib
ไม่ใช่ Resource ตัวเดียวกัน
อย่า Rename หรือรวมสอง Folder เข้าด้วยกัน
㉘ ESX Legacy ใช้ pma-voice หรือไม่
Official Recipe ปัจจุบันดาวน์โหลด
pma-voice
เข้ามาด้วย
นี่เป็นตัวอย่างว่า Framework รุ่นใหม่ไม่จำเป็นต้องเขียนทุกระบบเอง
Architecture สามารถแบ่งเป็น
ESX
→ Player/Economy/Jobs
pma-voice
→ Voice
oxmysql
→ Database
Resource อื่น
→ Gameplay Features
แล้วเชื่อม Integration ระหว่างกัน
㉙ ESX Legacy ยังใช้ Addons หรือไม่
ใช้
Official Recipe ปัจจุบันดาวน์โหลด
ESX-Legacy-Addons
และย้ายเข้า
resources/[esx_addons]
Resource กลุ่มนี้ช่วยสร้างระบบ RP เพิ่มเติมบน Core
เช่น Society, Billing และระบบอื่นตาม Recipe/Repository ปัจจุบัน
㉚ โครงสร้าง Resource ของ ESX Legacy ใหม่เป็นอย่างไร
โดยแนวคิดอาจเห็น
resources/
├── [cfx-default]/
├── [standalone]/
│ ├── oxmysql/
│ └── ...
├── [core]/
│ ├── es_extended/
│ ├── esx_identity/
│ └── ...
└── [esx_addons]/
└── ...
จากนั้น server.cfg จะ Start Dependencies ก่อน Core/Resources ลูก
การจัด Category แบบนี้ช่วยให้ Server ดูแลง่ายกว่าเอาทุก Resource ไว้ Folder เดียว
㉛ Start Order ของ ESX Legacy สำคัญไหม
สำคัญมาก
ตัวอย่าง Current Official server.cfg มีแนวคิด
ensure oxmysql
ensure es_extended
ensure [core]
Resource ที่ต้องใช้ ESX ไม่ควรถูก Start ก่อน Core พร้อม
ไม่อย่างนั้นอาจเกิด
No such export
ESX nil
Player Object nil
Missing dependency
Callback Error
㉜ ทำไม Script เก่าใช้ได้หลัง restart แต่ Boot Server แล้วพัง
อาจเกิดจาก Start Order
ตัวอย่าง
my_old_job
↓
Start ก่อน es_extended พร้อม
↓
ESX nil
แต่หลัง Server เปิดเสร็จ คุณสั่ง
restart my_old_job
Core พร้อมแล้วจึงใช้ได้
กรณีนี้ต้องแก้ Dependency/Start Order ไม่ใช่เพิ่ม Wait(5000) แบบสุ่มเพื่อซ่อนปัญหา
㉝ ESX Legacy ใช้ Dependency ใน fxmanifest ได้ไหม
ได้เหมือน FiveM Resource อื่น
Resource ที่ต้องใช้ ESX สามารถประกาศ
dependency 'es_extended'
ตาม Architecture ของ Script
และถ้าใช้ระบบอื่นก็อาจมี
dependencies {
'es_extended',
'ox_lib'
}
ตาม Requirement จริง
การประกาศ Dependency ช่วยให้ความสัมพันธ์ของ Resource ชัดขึ้น
㉞ Callback ของ ESX Legacy ยังใช้ได้ไหม
ESX มี Callback System สำหรับ Client/Server Communication
Script ESX จำนวนมากใช้ Pattern ประเภท
RegisterServerCallback
TriggerServerCallback
เพื่อขอข้อมูลจาก Server แล้วรับ Response กลับ
แต่ Script รุ่นเก่าอาจใช้ APIs หรือ Assumptions ที่ต่างจาก Current Core
จึงควรตรวจ Documentation/Source ของ ESX Version ที่ติดตั้งจริง
㉟ Event ของ ESX Legacy เปลี่ยนจากรุ่นเก่าหรือไม่
ESX ยังคงใช้ Events จำนวนมาก เช่น Player Lifecycle และ Player Data Events
แต่ Current Core เพิ่ม Security/Validation และปรับ Event Handling หลายส่วนจาก Architecture เก่า
ดังนั้นไม่ควรใช้ Event Name เก่าที่พบจาก Forum อายุหลายปีโดยไม่ตรวจ Current Source
โดยเฉพาะ Events ที่เกี่ยวกับ
Player Loaded
Player Data
Inventory
Logout
Job
ควรใช้ API ปัจจุบัน
㊱ ESX Legacy มี SecureNetEvent
Current ESX Core มีระบบ
ESX.SecureNetEvent
ใน Code ปัจจุบันสำหรับ Event บางประเภท
แสดงให้เห็นว่า Framework มีการพัฒนาวิธีจัดการ Network Event ต่อจาก ESX รุ่นเก่า
แต่ไม่ได้หมายความว่า Developer ไม่ต้อง Validate Server Events ของตัวเอง
ระบบ Reward, Money และ Items ยังต้องใช้หลัก
Client = ไม่เชื่อ
Server = ตรวจสอบ
เหมือนเดิม
㊲ ESX Legacy Performance ดีกว่า ESX เก่าหรือไม่
ESX Legacy ถูกพัฒนามาพร้อม Bug Fix และ Optimization หลายรอบ
Current Core ยังมีระบบ Save Players, Prepared Queries และ Code ที่พัฒนาต่อจาก Framework รุ่นเดิม
แต่ไม่ควรตีความว่า
ลง ESX Legacy
= Server ไม่มีวัน Lag
Performance จริงยังขึ้นกับ
Custom Scripts
Inventory
Phone
Housing
Database
Player Count
Entity Count
Loops
Queries
ทั้ง Server
㊳ ESX Legacy Save Player อย่างไร
Current Core มี Server Logic สำหรับ Save Player Data เช่น
Accounts
Job
Job Grade
Group
Position
Inventory
Loadout
Metadata
กลับลง users
และใช้ oxmysql APIs สำหรับ Database Operations
นี่เป็นอีกเหตุผลที่ไม่ควรให้ Resource Third-party แก้ Table users แบบสุ่ม หาก Framework มี API ที่เหมาะสมอยู่แล้ว
㊴ อย่า Query users ทุกครั้งโดยไม่จำเป็น
Script ESX รุ่นเก่าบางตัวอาจ Query
SELECT * FROM users
บ่อยเกินความจำเป็น
แต่ Player ที่ Online มี xPlayer/ESX Player Data อยู่ใน Memory อยู่แล้วหลายส่วน
ดังนั้นหากต้องการ
Job
Money
Group
Metadata
ควรตรวจว่า ESX API มีข้อมูลให้ใช้หรือไม่ก่อน Query Database
ช่วยลด Database Load
㊵ ESX Legacy รองรับ Locale ดีขึ้นไหม
Current Core มีระบบ Locale และ Resources รองรับหลายภาษา
Manifest ปัจจุบันโหลด
locale.lua
locales/*.lua
และ Shared Config ที่เกี่ยวข้อง
จึงสามารถพัฒนา Resource ให้รองรับหลายภาษาโดยไม่ต้อง Hardcode ข้อความทั้งหมดใน Main Script
㊶ ESX Legacy ใช้ ACL ของ FXServer ได้ไหม
ESX รุ่นใหม่มี Integration กับ FXServer ACL/ACE ในหลายส่วนของ Command/Administration
Official server.cfg ยังมี
add_ace
add_principal
สำหรับ Permission ของ Framework
จึงควรเข้าใจระบบ ACE ควบคู่กับ ESX Groups
ไม่ควรพึ่งเพียง Client-side Admin Menu เพื่อควบคุมสิทธิ์
㊷ ESX Group กับ Job เหมือนกันไหม
ไม่เหมือนกัน
Job
เช่น
police
ambulance
mechanic
ใช้กับ Roleplay Occupation
Group
เช่นแนวคิด
user
admin
ใช้กับ Permission/Administration ตามระบบที่ Serverกำหนด
อย่าใช้ Job เป็น Security Permission สำหรับทุกอย่างโดยไม่จำเป็น
㊸ Server ESX เก่าอัปเกรดเป็น Legacy ได้เลยไหม
ไม่ควรเอา Core ใหม่ทับ Core เก่าทันที
ต้องตรวจ
ESX Version เดิม
Database Schema
Custom Core Modifications
Scripts
Inventory
Jobs
Multicharacter
Phone
Housing
Garage
ก่อน
Server ที่เปิดมาหลายปีอาจมี es_extended ที่ถูกแก้ Source ไปมาก
การทับด้วย Current Core อาจทำ Custom Functions หายทันที
㊹ Migration ESX เก่าควรทำอย่างไร
แนวทางปลอดภัยคือ
Backup Production
↓
Clone Database
↓
สร้าง Test Server
↓
ติดตั้ง Current ESX Legacy
↓
ตรวจ Schema
↓
ย้าย Player Data
↓
ทดสอบ Scripts
↓
แก้ Compatibility
↓
Load Test
↓
ค่อย Production
ไม่ควร Migration โดยทดลองกับ Database จริงชุดเดียว
㊺ Resource เก่าใช้กับ ESX Legacy ได้ทั้งหมดไหม
ไม่ทั้งหมด
Compatibility ขึ้นกับว่า Resource ใช้อะไร
Script ที่ใช้ API พื้นฐานอาจยังใช้งานได้
แต่ Script ที่
แก้ Player Spawn
แก้ Core Loading
ใช้ EssentialMode
ใช้ Old MySQL
Hook Internal ESX Functions
ใช้ Inventory เก่า
ใช้ Weapon Loadout แบบเก่า
มีโอกาสต้องแก้มากกว่า
ดังนั้นต้องทดสอบ Resource เป็นรายตัว
㊻ วิธีตรวจว่า Script เป็น ESX รุ่นเก่าหรือใหม่
เปิด Source แล้วค้นหา Pattern เช่น
__resource.lua
resource_manifest_version
essentialmode
esplugin_mysql
mysql-async
esx:getSharedObject
ถ้าพบหลายรายการ มีโอกาสเป็น Script รุ่นเก่า
จากนั้นตรวจ
GitHub
Release Date
Documentation
Changelog
อย่าเพิ่งนำเข้า Production
㊼ Script มี esx:getSharedObject แปลว่าใช้ไม่ได้ทันทีไหม
ไม่ควรสรุปทันที
บาง Resource อาจมี Compatibility Code ของตัวเอง
สิ่งที่ต้องทำคือดู
Version
fxmanifest
Dependencies
README
แล้วทดสอบ
แต่ถ้าเป็น Resource เก่าที่ไม่มี Update มาหลายปีและใช้ Old APIs หลายจุด ควรพิจารณาหา Version ใหม่หรือ Resource ทดแทนมากกว่าปะ Code ทีละ Error
㊽ Server ใหม่ควรใช้ ESX Pack สำเร็จรูปเก่าหรือไม่
ไม่แนะนำหากไม่รู้ที่มา
Pack อาจมี
EssentialMode
Old mysql-async
Core ถูกแก้
Leaked Scripts
Backdoor
Duplicated Resources
Deprecated APIs
รวมกัน
แม้เปิด Server ได้ แต่เมื่อ Update Script ใหม่จะเจอ Compatibility Problems ต่อเนื่อง
เริ่มจาก Official Recipe แล้วเพิ่ม Resource ทีละตัวจะสะอาดกว่า
㊾ ESX Legacy เหมาะกับ Server ใหม่ไหม
เหมาะ หากต้องการ ESX Ecosystem
โดยเฉพาะ
Economy RP
Job RP
Serious RP
Server ที่ซื้อ ESX Scripts
ทีม Developer ถนัด ESX
ข้อดีคือยังมี Resources และ Third-party Integrations จำนวนมาก
แต่ต้องยึด Current Architecture ไม่ใช่ ESX Setup จากหลายปีก่อน
㊿ ESX Legacy หรือ ESX เก่า ควรเลือกอะไรในปี 2026
ถ้าสร้าง Server ใหม่ ควรเลือก
Current ESX Legacy
จาก Official Source
ไม่ควรตั้งต้นด้วย
EssentialMode-era ESX
Old es_extended Pack
Old mysql-async Pack
Leaked Ready Server
เพราะ Resource ใหม่ส่วนใหญ่จะพัฒนาโดยอิง Framework และ FiveM Runtime ที่ใหม่กว่า
การตั้ง Core ใหม่ให้ทันสมัยตั้งแต่ต้นลดงาน Compatibility ได้มาก
ตารางเปรียบเทียบ ESX Legacy กับ ESX รุ่นเก่า
| จุดเปรียบเทียบ | ESX Legacy ปัจจุบัน | ESX รุ่นเก่า |
|---|---|---|
| Core | es_extended ปัจจุบัน | es_extended รุ่นเก่า |
| Manifest | fxmanifest.lua | อาจพบ __resource.lua |
| FX Version | cerulean | Manifest รุ่นเก่า |
| Database Layer | oxmysql ใน Current Official Core | มักพบ mysql-async |
| EssentialMode | ไม่ใช่ Requirement ของ Current Stack | พบใน ESX รุ่นแรก |
| Shared Object | Export/Imports ปัจจุบัน | มักพบ Event Pattern รุ่นเก่า |
| OneSync | ใช้งานใน Current Configuration | Tutorial เก่าอาจไม่มี |
| Metadata | มีใน Current Player Data | รุ่นเก่าจำกัดกว่า |
| Custom Inventory | รองรับ Architecture แบบ Custom ได้ | ผูก Inventory แบบเดิมมากกว่า |
| txAdmin Recipe | มี Official Recipe | ยุคแรกมักติดตั้ง Manual |
| Maintenance | Current ecosystem | หลาย Resource เลิกพัฒนาแล้ว |
Checklist ก่อนนำ ESX Script เก่ามาใช้กับ Legacy
Manifest
ตรวจ
fxmanifest.lua
ถ้ามีแค่
__resource.lua
ควรตรวจอายุ Resource
Database
ค้นหา
mysql-async
oxmysql
Core
ค้นหา
esx:getSharedObject
exports['es_extended']
Dependencies
ตรวจ
essentialmode
esplugin_mysql
async
Gameplay
ตรวจ
Inventory
Weapons
Player Spawn
Multicharacter
Job
Testing
ทดสอบ
Player Join
Character Load
Job
Money
Inventory
Death
Reconnect
Restart Resource
Restart Server
ก่อน Production
สรุป ESX Legacy คืออะไร ต่างจาก ESX รุ่นเก่าอย่างไร
ESX Legacy คือ ESX Framework สายปัจจุบันที่พัฒนาต่อจาก ESX รุ่นเดิม เพื่อให้เหมาะกับ FiveM Server ยุคใหม่มากขึ้น โดย Core หลักยังคงเป็น
es_extended
แต่ Architecture รอบ Core เปลี่ยนไปมาก
ความแตกต่างสำคัญที่ควรจำคือ
ESX รุ่นเก่า
→ EssentialMode / Dependencies รุ่นเก่า
→ mysql-async พบได้บ่อย
→ Old Shared Object Event
→ Old Resource Manifest
ขณะที่ Current ESX Legacy ใช้แนวทาง
ESX Legacy
→ es_extended
→ oxmysql
→ fxmanifest.lua
→ OneSync
→ Current Exports/Imports
→ Metadata / Player APIs รุ่นใหม่
→ Official txAdmin Recipe
Official ESX Recipe ปัจจุบันยังดาวน์โหลด ox_lib, pma-voice, ESX Core และ ESX Addons มาเป็นส่วนหนึ่งของ Stack ด้วย จึงเห็นได้ชัดว่า Server ESX รุ่นใหม่มี Architecture ต่างจาก Tutorial ESX รุ่นแรกพอสมควร
จุดที่ต้องระวังมากที่สุดคือ ข้อมูล ESX บนอินเทอร์เน็ตมีหลายยุคปะปนกัน หากเจอบทความที่บังคับ EssentialMode, esplugin_mysql หรือใช้ mysql-async เป็น Stack หลักสำหรับ Server ใหม่ ควรตรวจวันที่ก่อนทำตาม
แนวทางของ comsiam คือ Server ESX ใหม่ควรเริ่มจาก Official ESX Legacy Recipe และเพิ่ม Resources ทีละตัว เพราะจะรู้แน่นอนว่า Core, Database และ Dependencies เริ่มต้นมาจากชุดปัจจุบัน ไม่ใช่ Pack ที่ถูกแก้ต่อกันมาหลายปี
ส่วน Server ESX เก่าที่เปิดใช้งานอยู่แล้ว comsiam แนะนำให้ Migration ผ่าน Test Server ไม่ควรเอา es_extended รุ่นใหม่ทับของเดิมทันที เพราะ Database, Custom Core, Inventory, Character และ Third-party Scripts อาจใช้ Architecture รุ่นเก่าและต้องปรับ Compatibility ก่อน
Comments
Post a Comment