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 รุ่นเก่า
Corees_extended ปัจจุบันes_extended รุ่นเก่า
Manifestfxmanifest.luaอาจพบ __resource.lua
FX VersionceruleanManifest รุ่นเก่า
Database Layeroxmysql ใน Current Official Coreมักพบ mysql-async
EssentialModeไม่ใช่ Requirement ของ Current Stackพบใน ESX รุ่นแรก
Shared ObjectExport/Imports ปัจจุบันมักพบ Event Pattern รุ่นเก่า
OneSyncใช้งานใน Current ConfigurationTutorial เก่าอาจไม่มี
Metadataมีใน Current Player Dataรุ่นเก่าจำกัดกว่า
Custom Inventoryรองรับ Architecture แบบ Custom ได้ผูก Inventory แบบเดิมมากกว่า
txAdmin Recipeมี Official Recipeยุคแรกมักติดตั้ง Manual
MaintenanceCurrent 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

Popular posts from this blog

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

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

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