FiveM ConVar คืออะไร? วิธีใช้ set, setr, sets และตั้งค่าตัวแปร Server
FiveM ConVar หรือ Console Variable คือค่าตัวแปร Configuration ที่สามารถกำหนดและอ่านค่าได้จาก FXServer, server.cfg, Server Console หรือ Resources โดย Cfx.re แบ่ง ConVar หลักออกเป็น Standard ConVar, Server Replicated ConVar และ Server Information ConVar ซึ่งใช้คำสั่ง set, setr และ sets แตกต่างกัน.
การเข้าใจ ConVar สำคัญสำหรับคนดูแล FiveM Server เพราะ Resources จำนวนมากใช้ ConVar เป็นตัวกำหนด Feature, Mode, API Configuration, Server Information หรือค่าที่ Client จำเป็นต้องอ่าน โดยไม่ต้องแก้ Source Code ของ Resource ทุกครั้ง
Meta SEO
Meta Title: FiveM ConVar คืออะไร? วิธีใช้ set, setr, sets และตั้งค่า Server
Meta Description: อธิบาย FiveM ConVar แบบละเอียด วิธีใช้ set, setr, sets ใน server.cfg ต่างกันอย่างไร วิธีอ่านค่าด้วย GetConvar พร้อมตัวอย่างและวิธีแก้ ConVar ไม่ทำงาน
Focus Keyword: FiveM ConVar
Related Keywords: FiveM set, FiveM setr, FiveM sets, FiveM server.cfg, FiveM configuration, GetConvar
① FiveM ConVar คืออะไร
ConVar ย่อมาจาก Console Variable
Cfx.re อธิบายว่า ConVar คือ Configuration Variable ที่สามารถกำหนดและอ่านค่าได้จาก Resources และยังสามารถจัดการผ่าน Server Console หรือ RCON ได้ด้วย.
ตัวอย่างง่ายๆ:
set my_server_mode "roleplay"
Resource ฝั่ง Server สามารถอ่านค่า my_server_mode แล้วนำไปใช้กำหนดพฤติกรรมของระบบได้
② ConVar ใช้ทำอะไรใน FiveM
ConVar เหมาะกับค่าที่ต้องการเปลี่ยนโดยไม่แก้ Source Code โดยตรง เช่น
เปิดหรือปิด Feature
ตั้ง Environment
กำหนดชื่อระบบ
ตั้งค่า Resource
ส่งค่าบางประเภทไป Client
แสดงข้อมูลบางอย่างของ Server
กำหนด Configuration ระดับ FXServer
Official Vanilla server.cfg ของ Cfx.re เองก็มีตัวอย่าง ConVar เช่น set temp_convar, set onesync on และ sets tags.
③ FiveM มี ConVar กี่ประเภทหลัก
ตาม Cfx.re Documentation มีประเภทหลักที่ควรเข้าใจ 3 แบบ:
Standard ConVar
Server Replicated ConVar
Server Information ConVar
แต่ละประเภทใช้คำสั่งต่างกันและมีขอบเขตการเข้าถึงต่างกัน.
④ set คืออะไร
set ใช้สร้างหรือกำหนด Standard ConVar
รูปแบบ:
set convar_name convar_value
ตัวอย่าง:
set server_mode "roleplay"
ถ้าค่ามีช่องว่างสามารถใส่เครื่องหมายคำพูดครอบค่าได้ เช่น:
set welcome_message "Welcome to my FiveM server"
Cfx.re ระบุรูปแบบการใช้งานดังกล่าวไว้ใน ConVars Documentation โดยตรง.
⑤ Standard ConVar อ่านจาก Client ได้ไหม
โดยตรงตาม ConVars Documentation Standard ConVar ใช้กับ Server-side Scripts และไม่สามารถอ่านหรือกำหนดจาก Client Script ได้.
ดังนั้นหาก Client ต้องอ่านค่าด้วย ควรพิจารณาว่าค่านั้นเหมาะกับ Server Replicated ConVar หรือไม่
⑥ setr คืออะไร
setr ใช้สร้าง Server Replicated ConVar
รูปแบบ:
setr convar_name convar_value
ตัวอย่าง:
setr my_feature true
Cfx.re ระบุว่า Replicated ConVar สามารถถูกอ่านได้จากทั้ง Server และ Client แต่การเปลี่ยนค่าทำจากฝั่ง Server.
⑦ set กับ setr ต่างกันอย่างไร
จำง่ายๆ:
set
ใช้ค่าที่ต้องการให้อยู่ฝั่ง Server
setr
ใช้ค่าที่ต้องการให้ Client สามารถอ่านได้ด้วย
Standard ConVar ไม่สามารถอ่านจาก Client Scripts โดยตรง ขณะที่ Server Replicated ConVar ถูก Sync เพื่อให้ Client อ่านค่าได้.
⑧ ตัวอย่างการใช้ setr จริงใน FiveM
Cfx.re มีตัวอย่างการปิด Custom Crosshair จาก Server ด้วย:
setr cl_customCrosshair false
Documentation ระบุว่าคำสั่งนี้ตั้ง cl_customCrosshair เป็น Replicated ConVar ค่า false.
นี่เป็นตัวอย่างชัดเจนว่า setr เหมาะเมื่อ Server ต้องส่ง Configuration ให้ Client รับรู้
⑨ sets คืออะไร
sets ใช้สร้าง Server Information ConVar
รูปแบบ:
sets convar_name "value"
Cfx.re ระบุว่าชื่อและค่าของ Information ConVar สามารถปรากฏใน Server Connect Details, Server List และข้อมูล Server Info.
ดังนั้นอย่าใช้ sets กับข้อมูลลับ
⑩ ตัวอย่าง sets ที่พบใน server.cfg
Official Vanilla server.cfg มีตัวอย่าง:
sets tags "default"
sets locale "root-AQ"
sets sv_projectName "My FXServer Project"
sets sv_projectDesc "Default FXServer requiring configuration"
ค่าพวกนี้ใช้เป็นข้อมูล Server และ Configuration ที่เกี่ยวข้องกับการแสดงรายละเอียดของ Server.
⑪ set, setr, sets จำอย่างไรให้ง่าย
| คำสั่ง | ใช้กับ | Client อ่านได้ | เหมาะกับ |
|---|---|---|---|
set | Standard ConVar | ไม่ | Config ฝั่ง Server |
setr | Replicated ConVar | ได้ | Config ที่ Client ต้องอ่าน |
sets | Server Information | ไม่ควรใช้กับ Secret | ข้อมูล Server |
ความแตกต่างหลักอ้างอิงตาม ConVars Documentation ของ Cfx.re.
⑫ ConVar ใส่ใน server.cfg ได้ไหม
ได้
Official Vanilla server.cfg ใช้ทั้ง set และ sets อยู่ใน Config โดยตรง เช่น:
set temp_convar "hey world!"
set onesync on
sets tags "default"
ดังนั้น server.cfg เป็นหนึ่งในจุดหลักสำหรับจัด Configuration ประเภท ConVar.
⑬ ตั้ง ConVar ผ่าน Server Console ได้ไหม
ได้
Cfx.re ระบุว่า ConVar สามารถกำหนดจาก Server Console ได้ เช่น:
set convar_name value
และสามารถพิมพ์ชื่อ ConVar ใน Console เพื่อดูค่าปัจจุบันได้.
เหมาะสำหรับการทดสอบก่อนนำค่าไปใส่ใน server.cfg
⑭ วิธีดูค่า ConVar ใน Console
ถ้ามี:
set server_mode "roleplay"
สามารถพิมพ์:
server_mode
ใน Server Console
Cfx.re ระบุว่า Console จะแสดงค่าของ ConVar รวมถึงข้อมูลประเภทค่า หาก ConVar นั้นมีอยู่.
⑮ ถ้าพิมพ์ชื่อ ConVar แล้วขึ้น No such command
หาก ConVar ยังไม่ได้ถูกสร้าง Cfx.re ระบุว่า Console สามารถตอบกลับลักษณะ:
No such command convar_name.
ได้.
ให้ตรวจว่า
ชื่อสะกดถูกหรือไม่
Config ถูก Execute หรือไม่
Resource ที่สร้าง ConVar Start แล้วหรือไม่
⑯ Resource อ่าน Standard ConVar อย่างไร
ใน Lua สามารถใช้:
local value = GetConvar("server_mode", "default")
Cfx.re ระบุว่า GetConvar ต้องมี Default Value และหาก ConVar ยังไม่ถูกตั้ง ระบบจะคืนค่า Default ที่ระบุ.
นี่ช่วยให้ Resource มีค่ารองรับแม้ Admin ยังไม่ได้กำหนด ConVar
⑰ GetConvar Default Value สำคัญอย่างไร
ตัวอย่าง:
local mode = GetConvar("server_mode", "normal")
ถ้าไม่มี server_mode
ค่าที่ Resource ได้คือ:
normal
ตามพฤติกรรมของ GetConvar ที่ Cfx.re ระบุ.
จึงควรเลือก Default Value ที่ปลอดภัยและสมเหตุสมผล
⑱ อ่าน ConVar ที่เป็นตัวเลขอย่างไร
Cfx.re รองรับ:
local value = GetConvarInt("max_items", 10)
GetConvarInt เหมาะเมื่อแน่ใจว่าค่าเป็น Integer และ Parameter ที่สองเป็น Default Value เช่นเดียวกัน.
⑲ Resource ตั้ง Standard ConVar ได้ไหม
ได้
Cfx.re ระบุ Native:
SetConvar("convar_name", "value")
สำหรับกำหนด Standard ConVar จาก Resource ฝั่ง Server.
ตัวอย่าง:
SetConvar("server_status", "online")
⑳ Resource ตั้ง Replicated ConVar ได้อย่างไร
ใช้:
SetConvarReplicated("convar_name", "value")
Cfx.re ระบุว่า Function นี้ใช้กำหนด Server Replicated ConVar จาก Server Script.
จากนั้น Client สามารถอ่านค่า Replicated ConVar ด้วย GetConvar.
㉑ Client เปลี่ยน setr ได้ไหม
Replicated ConVar ถูกออกแบบให้ Server เป็นผู้เปลี่ยนค่า ส่วน Client อ่านค่าได้ ตาม Documentation ของ Cfx.re.
ดังนั้นอย่าออกแบบ Security Logic โดยสมมติว่า Client ควรเป็นผู้กำหนด Configuration สำคัญของ Server
㉒ ข้อมูลลับควรใส่ setr ไหม
โดยหลัก ไม่ควรส่ง Secret ให้ Client
เพราะ Replicated ConVar ถูกออกแบบให้ Client อ่านค่าได้.
ข้อมูลอย่าง
Secret Key
Private Token
Database Password
Credentials
ไม่ควรถูก Replicate ให้ Client
㉓ ข้อมูลลับควรใส่ sets ไหม
ไม่ควร
Server Information ConVar ถูกออกแบบให้ข้อมูลสามารถปรากฏใน Server Information และ Server List/Connect Details.
ดังนั้น sets ควรใช้กับข้อมูลที่ตั้งใจเปิดเผยเท่านั้น
㉔ API Key ควรใช้ ConVar แบบไหน
คำตอบขึ้นกับว่า Resource และบริการนั้นออกแบบอย่างไร แต่หากเป็น Secret ที่ไม่ควรถึง Client ต้องหลีกเลี่ยง setr และ sets
ควรเก็บค่าฝั่ง Server และจำกัดการเข้าถึง Resource ตามความจำเป็น
Cfx.re ยังมีระบบ add_convar_permission สำหรับจำกัด Resource ที่สามารถเข้าถึง ConVar บางตัวได้.
㉕ add_convar_permission คืออะไร
Cfx.re Sandbox Documentation ระบุว่า Server Owner สามารถจำกัดการอ่าน ConVar ให้เฉพาะ Resource ที่กำหนดได้ด้วย:
add_convar_permission resourceA read some_convar_name
โดยปกติ Resources สามารถอ่าน ConVars ได้ แต่เมื่อ ConVar มี Permission กำหนดแล้ว จะจำกัดให้เฉพาะ Resources ที่ได้รับอนุญาตเข้าถึง.
㉖ ทำไม ConVar Permission สำคัญ
Server ที่มี Third-party Resources จำนวนมากไม่ควรสมมติว่าทุก Resource ต้องอ่าน Configuration ทุกตัวได้
หาก ConVar มีข้อมูลที่ต้องจำกัด การใช้ add_convar_permission สามารถลดขอบเขตการเข้าถึงได้ตามระบบ Sandbox ปัจจุบันของ Cfx.re.
㉗ อย่าให้ Resource ที่ไม่เชื่อถือเข้าถึงข้อมูลสำคัญ
Cfx.re เตือนว่าการให้ Permission เพิ่มแก่ Resources สามารถมีความเสี่ยงหากใช้ผิด และควรให้ Permission เฉพาะ Resources ที่เชื่อถือได้.
ดังนั้นก่อนติดตั้ง Resource ใหม่ควรตรวจทั้ง Source, Permission และ Configuration ที่ Resource ต้องการ
㉘ ConVar กับ config.lua ต่างกันอย่างไร
ConVar
เหมาะกับ Configuration ที่กำหนดจาก Server Environment, Console หรือ server.cfg และ Resource สามารถอ่านได้ผ่าน API
config.lua
เป็นไฟล์ภายใน Resource ที่ Developer กำหนดโครงสร้างเอง
ConVar มีข้อดีตรงที่สามารถเปลี่ยน Environment Configuration ได้โดยไม่จำเป็นต้องแก้ Resource Source File โดยตรง
㉙ เมื่อไหร่ควรใช้ ConVar
เหมาะกับค่าประเภท:
เปิด/ปิด Feature
Server Mode
Environment Name
Debug Mode
Resource Behavior
Config ที่ Hosting ต้องเปลี่ยน
ค่า Server-wide
โดยเฉพาะ Resource ที่ต้องใช้ Configuration ต่างกันระหว่าง Development และ Production
㉚ เมื่อไหร่ควรใช้ set
ใช้เมื่อค่า:
ต้องใช้ฝั่ง Server
Client ไม่จำเป็นต้องรู้
ไม่ต้องแสดงใน Server Info
ตัวอย่าง:
set my_resource_debug false
Standard ConVars ถูกจำกัดการใช้งานไว้ฝั่ง Server ตาม Cfx.re Documentation.
㉛ เมื่อไหร่ควรใช้ setr
ใช้เมื่อ Server ต้องกำหนดค่าและ Client Resource ต้องอ่านค่าเดียวกัน
ตัวอย่างจาก Cfx.re:
setr cl_customCrosshair false
ซึ่งทำให้ค่าดังกล่าวถูก Replicate ให้ Client.
㉜ เมื่อไหร่ควรใช้ sets
ใช้กับข้อมูลที่ตั้งใจให้เป็น Server Information
เช่นข้อมูลที่ต้องการแสดงให้ผู้เล่นเห็น
Cfx.re ระบุว่า Server Information ConVar สามารถปรากฏใน Connect Details, Server List และ Server Info Data.
㉝ ConVar เปลี่ยนจาก Console แล้วต้อง Restart Server ไหม
ConVar บางตัวสามารถเปลี่ยนผ่าน Console ระหว่าง Server Running ได้ แต่ผลของค่าต่อ Resource ขึ้นกับว่า Resource อ่านค่าเมื่อใด
ตัวอย่างเช่น Resource อาจอ่าน ConVar เพียงครั้งเดียวตอน Start
ดังนั้นหากเปลี่ยนค่าแล้ว Resource ยังใช้ค่าเดิม อาจต้อง Restart Resource ตาม Implementation ของ Resource
FXServer รองรับ restart resourceName และ ensure resourceName สำหรับ Resource Lifecycle.
㉞ แก้ ConVar ใน server.cfg แล้วค่าไม่เปลี่ยน
ตรวจ:
แก้
server.cfgของ Profile ถูกหรือไม่FXServer Execute Config นั้นหรือไม่
มี Config อื่นเขียนทับค่าภายหลังหรือไม่
Resource อ่านค่าตอนไหน
Restart Resource/Server ตามความจำเป็น
Official Vanilla Setup ใช้ FXServer.exe +exec server.cfg เพื่อโหลด Config.
㉟ Config หลายไฟล์เขียนทับ ConVar กันได้ไหม
FXServer รองรับ exec เพื่อโหลด Config Files เพิ่มเติม และ Commands จะทำงานตามลำดับที่ถูก Execute.
ดังนั้นหาก:
set server_mode "production"
exec development.cfg
แล้วใน development.cfg มีการกำหนด server_mode อีกครั้ง ค่าที่ถูกตั้งภายหลังสามารถเปลี่ยนค่าที่ใช้งานได้
จึงควรจัด Config Order ให้ชัดเจน
㊱ ConVar ควรตั้งชื่ออย่างไร
ควรใช้ชื่อที่อ่านแล้วรู้ว่าเป็นของระบบอะไร เช่น:
myresource_debug
myresource_locale
myresource_mode
หลีกเลี่ยงชื่อกว้างเกินไป เช่น:
mode
debug
value
เพราะเมื่อ Server มี Resources จำนวนมากจะหาเจ้าของ Configuration ได้ยาก
㊲ ใช้ Prefix ตามชื่อ Resource ดีไหม
ดีในด้านการจัดการ เช่น:
garage_debug
garage_locale
garage_maxVehicles
จะเข้าใจง่ายกว่า:
debug
language
max
โดยเฉพาะเมื่อเปิด server.cfg ที่มี Configuration หลาย Resources
㊳ Boolean ConVar ควรระวังอะไร
ค่า ConVar โดยพื้นฐานถูกจัดการเป็นข้อความในหลาย API ดังนั้น Resource Developer ควร Parse ค่าให้ถูกประเภทตามการใช้งาน
ตัวอย่าง:
set myresource_debug true
Resource ควรมี Logic ที่ตีความ "true" ตามรูปแบบของ Script นั้น ไม่ควรสมมติว่าทุก API คืนค่า Boolean Object โดยอัตโนมัติ
㊴ ตัวเลขควรใช้ GetConvarInt เมื่อเหมาะสม
ถ้าค่าเป็น Integer จริง เช่น:
set myresource_limit 20
สามารถใช้:
local limit = GetConvarInt("myresource_limit", 10)
Cfx.re มี GetConvarInt สำหรับกรณี Integer โดยเฉพาะ.
㊵ ConVar ไม่ทำงานเพราะสะกดชื่อผิด
ตัวอย่าง Config:
set myresource_debug true
แต่ Script อ่าน:
GetConvar("my_resource_debug", "false")
นี่คือคนละชื่อกัน
ตรวจตัวอักษร, _, Prefix และ Spelling ให้ตรงกันก่อนแก้ FXServer
㊶ ConVar ไม่ทำงานเพราะใช้ set แทน setr
ถ้า Client Script ต้องอ่านค่า แต่ Admin ใช้ Standard:
set my_option true
Client จะไม่สามารถใช้ Standard ConVar ตามรูปแบบที่ Replicated ConVar ออกแบบไว้
ถ้าค่านั้นเหมาะสมและปลอดภัยที่จะส่งให้ Client จึงพิจารณา:
setr my_option true
Cfx.re แยก Standard และ Replicated ConVar ตามขอบเขตการเข้าถึงดังกล่าว.
㊷ ConVar ไม่ทำงานเพราะ Resource อ่านก่อนตั้งค่า
หาก Resource Start ก่อน Configuration ที่จำเป็นถูก Execute อาจทำให้ Resource อ่าน Default Value แทนค่าที่ต้องการ
จึงควรจัด server.cfg ให้ Configuration ที่ Resource ต้องการอยู่ในตำแหน่งและลำดับที่เหมาะสมก่อน ensure resourceName เมื่อ Resource อ่านค่าตอน Start
㊸ ตัวอย่างจัด server.cfg สำหรับ Resource
ตัวอย่างแนวคิด:
set myresource_debug false
set myresource_locale "th"
ensure myresource
โครงสร้างแบบนี้ทำให้ Configuration ถูกกำหนดก่อน Resource Start
แต่ลำดับจริงควรอ้างอิง Documentation ของ Resource นั้น
㊹ ตัวอย่าง Replicated ConVar
setr myresource_uiEnabled true
ensure myresource
Resource ฝั่ง Client สามารถอ่าน Replicated ConVar ได้ผ่าน GetConvar ตามระบบของ Cfx.re.
อย่าใช้วิธีนี้กับข้อมูลลับ
㊺ ตัวอย่าง Information ConVar
sets Community "My FiveM Community"
Cfx.re ยกตัวอย่าง Server Information ConVar ว่าสามารถใช้ข้อมูลอย่างชื่อ Community หรือรายละเอียดที่ต้องการแสดงเกี่ยวกับ Server ได้.
ค่าประเภทนี้ควรเป็นข้อมูล Public
㊻ Debug ConVar อย่างไรให้เร็ว
ใช้ลำดับ:
ดู
server.cfgตรวจ
set/setr/setsตรวจชื่อ ConVar
พิมพ์ชื่อ ConVar ใน Server Console
ดูค่าปัจจุบัน
ตรวจ Resource ใช้
GetConvarชื่อเดียวกันหรือไม่ตรวจ Default Value
Restart Resource หาก Resource อ่านค่าตอน Start
ตรวจ Config อื่นที่อาจเขียนทับ
Cfx.re รองรับทั้งการกำหนดและดูค่า Standard ConVar จาก Server Console.
㊼ ConVar กับ Console Commands เกี่ยวข้องกันอย่างไร
Cfx.re ระบุว่า Server Console Commands สามารถ Execute จาก Console, RCON, Configuration File หรือ Resource ที่มี ACL Permission เหมาะสม.
ดังนั้น ConVar จึงเป็นส่วนหนึ่งของระบบ Configuration ที่เชื่อมกันระหว่าง
Console → server.cfg → Resource
㊽ Resource ใช้ ExecuteCommand ตั้ง ConVar ได้ไหม
Cfx.re ระบุว่าสามารถใช้ ExecuteCommand() เพื่อเรียก Command สำหรับ ConVar ได้ แต่ Resource ต้องมี ACE Permission เช่น command.set ตามกรณีการใช้งาน.
อีกทางคือใช้ Native อย่าง SetConvar โดยตรง
สำหรับ Developer การใช้ API ที่เหมาะกับงานมักอ่าน Code ได้ชัดกว่า Execute Command String โดยไม่จำเป็น
㊾ ควรเก็บ Password ใน Server Information ConVar ไหม
ไม่ควร
เพราะ Information ConVar ถูกออกแบบให้ค่าปรากฏในข้อมูล Server ที่เปิดเผยแก่ผู้ใช้.
ข้อมูลลับควรอยู่ฝั่ง Server และต้องจำกัดสิทธิ์ตามความเหมาะสม
㊿ Checklist FiveM ConVar สำหรับ Server Owner
ก่อนใช้งานตรวจว่า:
เลือก
set,setrหรือsetsถูกประเภทชื่อ ConVar สะกดตรงกับ Resource
มี Default Value ใน Script
ไม่ Replicate Secret
ไม่ใส่ Secret ใน Server Information
Config ถูก Execute
Resource Start หลัง Config ตามที่ Resource ต้องการ
ตรวจค่าผ่าน Console
ตรวจ Config ที่อาจเขียนทับ
จำกัด Permission หาก ConVar มีความสำคัญ
Restart Resource เมื่อ Implementation ต้องอ่านค่าใหม่
Backup Config ก่อนแก้ชุดใหญ่
ตาราง FiveM ConVar สำหรับมือใหม่
| ต้องการทำอะไร | คำสั่ง |
|---|---|
| Config เฉพาะ Server | set |
| Client ต้องอ่านด้วย | setr |
| แสดงข้อมูล Server | sets |
| อ่าน String ใน Script | GetConvar() |
| อ่าน Integer | GetConvarInt() |
| ตั้งจาก Script | SetConvar() |
| ตั้ง Replicated จาก Script | SetConvarReplicated() |
| จำกัด Resource ที่อ่าน ConVar | add_convar_permission |
ความสามารถเหล่านี้มีอยู่ใน ConVars และ Sandbox Documentation ของ Cfx.re ปัจจุบัน.
FAQ FiveM ConVar
FiveM ConVar กับ server.cfg เหมือนกันไหม
ไม่เหมือนกัน
server.cfg คือไฟล์ Configuration ที่สามารถบรรจุ Commands หลายประเภท ส่วน ConVar คือค่าตัวแปร Configuration ที่สามารถกำหนดจาก Config, Console หรือ Resources ได้
Official Vanilla Config ของ Cfx.re ใช้ ConVars อยู่ภายใน server.cfg หลายตัว.
FiveM set กับ setr ต่างกันอย่างไร
set เป็น Standard ConVar ฝั่ง Server ส่วน setr เป็น Server Replicated ConVar ที่ Client สามารถอ่านได้ แต่ Server เป็นผู้เปลี่ยนค่า.
FiveM sets ใช้ทำอะไร
sets ใช้สร้าง Server Information ConVar ซึ่งสามารถปรากฏใน Server Information, Connect Details และ Server List ได้.
ทำไม GetConvar ได้ค่า Default ตลอด
ให้ตรวจว่า ConVar ถูกตั้งจริงหรือไม่ ชื่อสะกดตรงกันหรือไม่ และ Config ถูก Execute ก่อน Resource อ่านค่าหรือไม่
GetConvar จะคืน Default Value ที่ระบุเมื่อ ConVar ยังไม่ได้ถูกกำหนด.
Client อ่าน ConVar ที่ใช้ set ได้ไหม
Standard ConVar ถูกจำกัดไว้ฝั่ง Server ตาม Documentation หาก Client จำเป็นต้องอ่านและข้อมูลนั้นปลอดภัยที่จะเปิดเผย ให้พิจารณา Replicated ConVar.
ConVar เก็บ Secret ได้ไหม
ควรระวังอย่างมาก โดยเฉพาะ setr ที่ Client อ่านได้และ sets ที่เป็น Server Information ไม่ควรใช้เก็บข้อมูลลับ.
ConVar จำกัดให้ Resource บางตัวอ่านได้ไหม
ได้ Cfx.re มี add_convar_permission สำหรับจำกัดการอ่าน ConVar ให้ Resource ที่ได้รับอนุญาต.
สรุปสำคัญ
FiveM ConVar คือระบบ Configuration Variable ของ FXServer ที่ช่วยให้ Server Owner และ Developer กำหนดค่าจาก server.cfg, Console หรือ Resources ได้โดยไม่จำเป็นต้อง Hard-code ทุกค่าลงใน Script
สิ่งที่ต้องจำให้แม่นคือ:
set = Server
setr = Server กำหนด + Client อ่าน
sets = Server Information
Cfx.re ระบุว่า Standard ConVar ใช้ฝั่ง Server, Replicated ConVar สามารถอ่านได้ทั้ง Server/Client โดย Server เป็นผู้กำหนด และ Information ConVar ถูกเปิดเผยผ่านข้อมูล Server.
หาก ConVar ไม่ทำงาน ให้เริ่มจากตรวจชื่อและประเภทของ ConVar แล้วพิมพ์ชื่อ ConVar ใน Server Console เพื่อดูค่าจริง จากนั้นตรวจว่า Config ถูก Execute และ Resource อ่านค่าก่อนหรือหลัง Configuration ถูกกำหนด
สำหรับ Configuration ที่ต้องจำกัด Cfx.re ยังมี add_convar_permission เพื่อจำกัด Resources ที่สามารถอ่าน ConVar ได้ และเตือนให้ให้ Permission เพิ่มเฉพาะ Resources ที่เชื่อถือได้.
สำหรับผู้อ่าน comsiam สูตรที่จำง่ายที่สุดคือ “set = Server, setr = Replicated, sets = Information” ส่วน comsiam แนะนำว่าอย่าใส่ Password, Token หรือ Secret ลง setr หรือ sets และควรตรวจค่าจริงจาก Console ก่อนแก้ Script หรือ Restart Server แบบเดาสุ่ม
Comments
Post a Comment