วิธีตั้งค่า server.cfg FiveM แบบละเอียด ตั้งแต่ Port, Server Key จนเปิด Server ได้
การ ตั้งค่า server.cfg FiveM เป็นขั้นตอนสำคัญหลังสร้าง FXServer เพราะไฟล์นี้กำหนดว่า Server จะใช้ Port ไหน, เปิด Resources อะไร, รองรับผู้เล่นกี่คน, ใช้ Server Registration Key ใด และกำหนด Permission อย่างไร
สำหรับ Server พื้นฐาน โครงสร้างสามารถคิดเป็น
Network
↓
Server Information
↓
OneSync / Player Slots
↓
Resources
↓
Framework Configuration
↓
ACE Permissions
↓
Server Registration Key
ถ้าตั้งค่าถูกต้อง FXServer จะอ่านคำสั่งตามลำดับและเปิด Resources ตามที่กำหนด
① หา server.cfg ให้ถูกไฟล์ก่อน
โดยทั่วไป server.cfg จะอยู่ใน Server Data Directory
ตัวอย่าง Windows
C:\FXServer\server-data\server.cfg
Linux อาจเป็น
/home/fivem/server-data/server.cfg
ตำแหน่งจริงขึ้นอยู่กับการติดตั้งของคุณ
② อย่าแก้ server.cfg ผิด Server
หากมีหลาย Instance เช่น
Production
Development
Test
อาจมี server.cfg หลายไฟล์
ก่อนแก้ให้ตรวจว่า txAdmin Profile หรือ Startup Configuration กำลังใช้ไฟล์ใดจริง
③ Backup ก่อนแก้
ก่อนเปลี่ยน Config สำคัญควร Copy ไฟล์ไว้ก่อน
ตัวอย่าง
server.cfg
server.cfg.backup
หรือ
server.cfg.backup-2026-08-22
ถ้าแก้แล้ว Server เปิดไม่ได้ สามารถย้อนกลับได้ทันที
④ เริ่มจาก Network Endpoint
Config พื้นฐานของ Cfx.re ใช้
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
30120 เป็น Game Port ที่ใช้กันทั่วไปสำหรับ FiveM
⑤ endpoint_add_tcp คืออะไร
ใช้สร้าง TCP Endpoint
endpoint_add_tcp "0.0.0.0:30120"
Port ต้องไม่ถูก Process อื่นใช้งานอยู่
ถ้า Port ชน FXServer อาจ Bind ไม่สำเร็จ
⑥ endpoint_add_udp คืออะไร
ใช้สร้าง UDP Endpoint
endpoint_add_udp "0.0.0.0:30120"
FiveM Server ปกติควรตรวจ Firewall ให้รองรับ Protocol และ Port ตาม Configuration ที่ใช้งานจริง
⑦ ต้องเปลี่ยน 0.0.0.0 เป็น Public IP หรือไม่
ส่วนใหญ่ ไม่ต้อง
Cfx.re ระบุใน Vanilla Configuration ว่าโดยทั่วไปควรเปลี่ยนเฉพาะ Port เว้นแต่ Server มีหลาย Network Interfaces และมีเหตุผลต้องเลือก IP เฉพาะ
ดังนั้นพื้นฐานใช้
0.0.0.0:30120
ได้
⑧ 30120 ไม่ใช่ txAdmin Port
อย่าสับสน
30120
= FiveM Game Endpoint ที่พบบ่อย
กับ
40120
= txAdmin Web Port ค่า Default
สองระบบใช้คนละหน้าที่
⑨ ตั้งชื่อ Server ด้วย sv_hostname
ตัวอย่าง
sv_hostname "My FiveM Server"
ควรตั้งให้ผู้เล่นจำ Server ได้ง่าย
หลีกเลี่ยงชื่อยาวมากหรือยัด Keywords จำนวนมากเกินไป
⑩ ตั้ง Project Name
ใช้
sets sv_projectName "My FiveM Community"
ชื่อนี้ใช้เป็นข้อมูล Project ของ Server
ควรสอดคล้องกับชื่อ Community
⑪ ตั้งคำอธิบาย Server
ใช้
sets sv_projectDesc "Thai roleplay community"
อธิบาย Server แบบสั้นและชัดเจน เช่น
Roleplay
Economy
Racing
Freeroam
ตามรูปแบบ Server จริง
⑫ ตั้ง Tags
ตัวอย่าง
sets tags "roleplay, thai, economy"
Tags ควรตรงกับเนื้อหาของ Server
ไม่ควรใส่คำที่ไม่เกี่ยวข้องเพียงเพื่อหวังให้ Server Search เจอง่ายขึ้น
⑬ ตั้งจำนวนผู้เล่น
ใช้
sv_maxclients 48
ตัวเลขต้องสอดคล้องกับ OneSync และข้อจำกัดของ Server Subscription/Entitlement ที่ใช้อยู่
Cfx.re ระบุว่า sv_maxClients รองรับค่าตั้งแต่ 1–2048 ในระดับตัวแปร แต่จำนวน Slot ที่ใช้จริงยังมีเงื่อนไขเพิ่มเติม
⑭ ถ้าตั้งเกิน 32 Slots ต้องดู OneSync
เอกสาร Cfx.re ปัจจุบันระบุว่า ตั้งแต่ 32 Clients ต้องใช้ OneSync on หรือ legacy
หากมากกว่า 64 Clients ต้องใช้
set onesync on
ดังนั้นอย่าปรับ sv_maxclients อย่างเดียว
⑮ วิธีเปิด OneSync
ตัวอย่าง Configuration ของ Cfx.re ใช้
set onesync on
OneSync เป็นระบบสำคัญสำหรับ Server-side State Awareness และ Server ที่รองรับผู้เล่นจำนวนมาก
⑯ ตั้ง Server Registration Key
ใช้
sv_licenseKey "YOUR_SERVER_KEY"
ต้องนำ Key ที่สร้างจาก Cfx Portal มาใส่แทน
YOUR_SERVER_KEY
ห้ามใช้ Key ตัวอย่างเปิด Production
⑰ Server Key ต้องเป็นความลับ
อย่าโพสต์ Config แบบนี้
sv_licenseKey "KEYจริงของคุณ"
ลง Public Discord, GitHub, Facebook หรือ Forum
ก่อนแชร์ Config ให้เปลี่ยนเป็น
sv_licenseKey "REDACTED"
⑱ เปิด Resources ด้วย ensure
ตัวอย่าง
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
ensure จะทำให้ Resource อยู่ในสถานะ Started
จึงเป็นคำสั่งที่ใช้บ่อยมากใน server.cfg
⑲ เพิ่ม Resource ของตัวเอง
สมมุติมี
resources/[local]/my_garage
สามารถเพิ่ม
ensure my_garage
ลงใน server.cfg
หลัง Restart Server Resource จะถูก Start ตาม Configuration
⑳ ไม่ต้องใส่ Full Path ใน ensure
ถ้า Folder คือ
resources/[jobs]/policejob
ให้ใช้
ensure policejob
ไม่ใช่
ensure resources/[jobs]/policejob
FXServer จัดการ Resource ตาม Resource Name
㉑ เรียง Resource ตาม Dependency
ถ้า Resource หนึ่งต้องใช้อีก Resource ให้เปิดตัวที่ถูกพึ่งพาก่อน
ตัวอย่าง
ensure oxmysql
ensure framework
ensure inventory
ensure policejob
แนวคิดคือ
Database Library
↓
Framework
↓
Inventory
↓
Job
㉒ Dependency ผิดลำดับเกิดอะไรขึ้น
อาจพบ Error เช่น
Missing dependency
Export not found
Nil value
Framework not initialized
จากนั้น Resource อื่นที่พึ่งตัวแรกจะ Error ต่อเป็นทอด ๆ
ควรหา Error แรกใน Console
㉓ ใช้ Category ได้ไหม
FiveM รองรับ Resource Categories เช่น
[jobs]
[cars]
[maps]
สามารถจัด Resources ให้เป็นหมวดหมู่เพื่อดูแลง่าย
แต่ Server ใหญ่ควรระวัง Dependency ระหว่างแต่ละกลุ่ม
㉔ set คืออะไร
ใช้กำหนด Standard Convar
ตัวอย่าง
set my_setting "value"
Resource ฝั่ง Server สามารถอ่านค่าดังกล่าวได้ตามการออกแบบของ Script
㉕ setr คืออะไร
setr คือ Replicated Convar
ตัวอย่าง
setr my_setting true
ค่าจะถูก Replicate ไปให้ Client อ่านได้
ดังนั้น ห้ามใส่ Secret ใน setr
㉖ sets คืออะไร
sets ใช้กำหนด Server Info
ตัวอย่าง
sets tags "roleplay, thai"
sets sv_projectName "My Community"
sets sv_projectDesc "Thai FiveM Server"
ข้อมูลประเภทนี้ออกแบบมาให้เกี่ยวข้องกับข้อมูล Server ที่แสดงออกไป
㉗ อย่าเอา Password ใส่ setr
ตัวอย่างที่ไม่ควรทำ
setr database_password "mypassword"
เพราะ setr เป็น Replicated Convar
ข้อมูล Secret ควรอยู่ใน Configuration ที่เหมาะสมและไม่ถูกส่งไป Client
㉘ Database Connection String ตั้งอย่างไร
Framework/Database Library แต่ละตัวมีรูปแบบ Configuration ของตัวเอง
อาจพบแนวทางในลักษณะ
set mysql_connection_string "..."
ให้ทำตาม Documentation ของ Database Resource ที่ใช้อยู่
อย่า Copy Connection String จาก Server คนอื่นมาใช้
㉙ Database Password ต้องซ่อน
หาก Connection String มี
username
password
host
database
ควรถือ server.cfg เป็นไฟล์ที่มีข้อมูลสำคัญ
อย่า Commit ไฟล์ Production ที่มี Credentials ลง Public Git Repository
㉚ แยก Resource Config ออกได้
Server ใหญ่สามารถสร้างไฟล์
resources.cfg
แล้วภายในใส่
ensure oxmysql
ensure framework
ensure inventory
ensure garage
จากนั้นใน server.cfg ใช้
exec resources.cfg
㉛ แยก Permission ออกได้
สร้าง
permissions.cfg
แล้วเรียก
exec permissions.cfg
ช่วยให้ server.cfg ไม่ยาวเกินไป
㉜ exec ทำงานอย่างไร
Cfx.re ระบุว่า
exec filename.cfg
จะ Execute Commands ในไฟล์นั้น โดย Path ปกติอ้างอิงสัมพันธ์กับ Server Data Directory
เช่น
exec permissions.cfg
exec resources.cfg
㉝ ACE Permission ตั้งที่ไหน
สามารถใส่ใน server.cfg หรือแยก permissions.cfg
ตัวอย่าง
add_ace group.admin command.example allow
คืออนุญาต group.admin ใช้ Permission Object ที่กำหนด
㉞ add_principal ใช้ทำอะไร
ตัวอย่าง
add_principal identifier.license:xxxxxxxx group.admin
แนวคิดคือให้ Identifier นั้นสืบทอด Permission จาก group.admin
ต้องเปลี่ยน Identifier ให้เป็นของผู้ใช้จริง
㉟ อย่าแจก command allow มั่ว
ตัวอย่าง Vanilla Config มีแนวคิด
add_ace group.admin command allow
add_ace group.admin command.quit deny
ซึ่งให้สิทธิ์ Commands กว้างมากและห้าม quit แยก
Production Server ควรออกแบบ ACE ตามความจำเป็น ไม่จำเป็นต้อง Copy Root Permission ให้ Staff ทุกคน
㊱ ทดสอบ ACE ได้ไหม
ได้
ใช้
test_ace group.admin command.example
เพื่อดูว่า Principal นั้นได้รับ Allow หรือ Deny สำหรับ Object ที่กำหนด
ช่วย Debug Permission โดยไม่ต้องเดา
㊲ ACE ไม่ใช่ txAdmin Permission
ต้องแยก
ACE
= FXServer Access Control
ออกจาก
txAdmin Permission
= สิทธิ์ภายใน txAdmin
เช่น
console.write
control.server
players.ban
เป็น Permission ของ txAdmin ไม่ใช่ ACE เดียวกัน
㊳ ตั้ง Server Icon
สามารถใช้
load_server_icon myLogo.png
ตัวอย่าง Vanilla Server ของ Cfx.re ระบุ Icon เป็นไฟล์ PNG ขนาด 96x96
วางไฟล์ในตำแหน่งที่ Server สามารถโหลดได้ถูกต้อง
㊴ ตั้ง Server เป็น LAN-only
มี Convar
sv_lan true
ถ้าเปิด Server จะเป็น LAN-only และไม่แสดงใน Public Server List ตามพฤติกรรมที่ Cfx.re ระบุ
Production Public Server ส่วนใหญ่จึงไม่ควรเปิดค่านี้โดยไม่ตั้งใจ
㊵ ตั้ง Endpoint Privacy
สามารถใช้
sv_endpointPrivacy true
เพื่อซ่อน Player IP Addresses จาก Public Reports ของ Server
เหมาะกับการพิจารณาด้าน Privacy
㊶ Script Hook ควรเปิดไหม
ค่า
sv_scriptHookAllowed 0
ใช้ควบคุม Script Hook-based Plugins
Cfx.re ระบุว่าการเปิด Script Hook ไม่แนะนำด้าน Security
ดังนั้นหากไม่มีความจำเป็นควรคงไว้เป็นปิด
㊷ RCON Password ต้องระวัง
Vanilla Config มีตัวอย่าง RCON ในลักษณะ Comment
หากเปิดใช้งาน ต้องตั้ง Password ที่แข็งแรง
ไม่ควรใช้
123456
admin
fivem
password
และห้ามเผยแพร่ RCON Password
㊸ server.cfg ตัวอย่างพร้อมเริ่ม
ตัวอย่างพื้นฐานสำหรับเรียนรู้
# ==============================
# Network
# ==============================
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"
# ==============================
# Server Information
# ==============================
sv_hostname "My FiveM Server"
sets sv_projectName "My FiveM Community"
sets sv_projectDesc "Thai roleplay community"
sets tags "roleplay, thai, economy"
# ==============================
# OneSync / Players
# ==============================
set onesync on
sv_maxclients 48
# ==============================
# Default Resources
# ==============================
ensure mapmanager
ensure chat
ensure spawnmanager
ensure sessionmanager
# ==============================
# Custom Resources
# ==============================
# ensure oxmysql
# ensure framework
# ensure inventory
# ==============================
# Security / Privacy
# ==============================
sv_scriptHookAllowed 0
sv_endpointPrivacy true
# ==============================
# Permissions
# ==============================
exec permissions.cfg
# ==============================
# Server Icon
# ==============================
# load_server_icon myLogo.png
# ==============================
# Server Registration
# ==============================
sv_licenseKey "YOUR_SERVER_KEY"
ต้องปรับให้ตรงกับ Server จริงก่อนใช้งาน
㊹ Framework Server ต้องเพิ่มอะไร
ถ้าใช้ ESX, QBCore หรือ Qbox อาจต้องเพิ่ม
Database Connection
Framework Core
Shared Libraries
Inventory
Target
Voice
Jobs
ตาม Documentation ของ Framework
อย่าเอา Config ของหลาย Framework มารวมกันโดยไม่เข้าใจ Dependency
㊺ แก้ server.cfg ผ่าน txAdmin ได้
txAdmin มี Server CFG Editor & Validator
Account ที่ต้องแก้ไฟล์ต้องมี Permission
server.cfg.editor
จึงสามารถควบคุมได้ว่า Staff คนใดมีสิทธิ์อ่าน/เขียน Config
㊻ ใช้ txAdmin แล้วเปิด FXServer แบบไหน
สำหรับ txAdmin Monitor Mode เอกสาร Cfx.re ระบุให้เปิด
FXServer.exe
บน Windows
หรือ
run.sh
บน Linux
โดย ไม่ใส่ +exec ให้ตัว txAdmin Process เอง
จากนั้น txAdmin จะจัดการ Server Instance และ Config ตาม Profile
㊼ Vanilla Server ต่างกันอย่างไร
ถ้าไม่ได้ใช้ txAdmin และเปิด FXServer แบบ Vanilla สามารถใช้
FXServer.exe +exec server.cfg
เพื่อให้ FXServer โหลด Config โดยตรง
อย่าสับสนวิธีเปิด Vanilla Server กับ txAdmin Monitor Mode
㊽ หลังแก้ server.cfg ต้องทำอะไร
หลังแก้ Configuration สำคัญควร
Save
↓
Restart Server
↓
เปิด Live Console
↓
หา Error / Warning
↓
ตรวจ Resources
↓
ทดสอบเข้า Server
อย่าดูเพียงว่า Dashboard ขึ้น ONLINE
㊾ Error ที่พบบ่อยจาก server.cfg
ตัวอย่าง
Port already in use
No license key was specified
Failed to start resource
Couldn't find resource
Unknown command
Database connection failed
Missing dependency
วิธีที่ดีที่สุดคืออ่าน Error แรก ที่เกิดขึ้นหลัง Startup
ไม่ควร Restart ซ้ำจน Error หายโดยบังเอิญ
㊿ สรุปวิธีตั้งค่า server.cfg FiveM
การตั้ง server.cfg ที่ดีควรทำตามลำดับ
1. Backup server.cfg
2. ตั้ง TCP/UDP Endpoint
3. ตั้ง Server Name
4. ตั้ง Project Name/Description
5. ตั้ง Tags
6. เปิด OneSync ตามความต้องการ
7. ตั้ง sv_maxclients
8. ใส่ Server Registration Key
9. เปิด Default Resources
10. เปิด Database/Framework ตาม Dependency
11. แยก resources.cfg หาก Server ใหญ่
12. แยก permissions.cfg
13. ตั้ง ACE Permissions
14. ตั้ง Privacy/Security
15. ตั้ง Server Icon
16. Save
17. Restart Server
18. ดู Live Console
19. แก้ Error แรก
20. ทดสอบ Player เข้า Server
สำหรับ Production Server comsiam แนะนำให้จัด server.cfg เป็นหมวดอย่างชัดเจน เช่น
Network
Server Info
OneSync
Resources
Framework
Permissions
Security
License
และเมื่อ Server เริ่มมี Resources จำนวนมาก ให้แยก Configuration ออกเป็นไฟล์ย่อยด้วย exec แทนการปล่อย server.cfg ยาวหลายร้อยบรรทัดโดยไม่มีโครงสร้าง
อีกเรื่องที่ต้องระวังมากที่สุดคือข้อมูลลับ ได้แก่
sv_licenseKey
Database Password
RCON Password
API Key
Bot Token
Webhook Secret
ก่อนส่ง Config ให้คนอื่นตรวจ ต้องปิดบังข้อมูลเหล่านี้ก่อนทุกครั้ง
เมื่อจัด Endpoint, Resources, Dependency, OneSync, Slots, ACE และ Server Key อย่างถูกต้อง ผู้ดูแล FiveM Server ของ comsiam จะได้ server.cfg ที่อ่านง่าย แก้ปัญหาง่าย และพร้อมต่อยอดไปยัง Production Server ขนาดใหญ่ในอนาคต
Comments
Post a Comment