วิธีตั้งค่า 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

Popular posts from this blog

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

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

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