การตั้งค่าประสบการณ์

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

การตั้งค่าประสบการณ์ ช่วยให้คุณอัปเดตค่าภายในเกมได้แบบเรียลไทม์โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์:

  • เปิดและปิดฟีเจอร์ต่างๆ เช่น การเปิดหรือปิดดันเจี้ยนการเริ่มต้นใหม่
  • ปรับค่าภายในเกมเช่นสุขภาพของบอส, การได้รับประสบการณ์ หรือราคาสินค้า
  • เปิดเนื้อหาที่มีเวลาจำกัด เช่น อีเวนต์ฮัลโลวีนที่เริ่มต้นเที่ยงคืน

การตั้งค่ามีรูปแบบเป็นกุญแจและค่า แทนที่จะใช้ค่าคงที่ที่กำหนดไว้ในโค้ดของคุณ คุณสามารถใช้กุญแจเพื่อดึงค่าที่ต้องการ (สตริง, หมายเลข, บูลีน หรือวัตถุ JSON) และอัปเดตค่านั้นเมื่อใดก็ได้โดยไม่ต้องเผยแพร่เวอร์ชันใหม่ของประสบการณ์ของคุณ การเปลี่ยนแปลงโค้ดที่จำเป็นนั้นน้อยมาก:


local ConfigService = game:GetService("ConfigService")
local configSnapshot = ConfigService:GetConfigAsync()
local myValue = configSnapshot:GetValue("my_key_name")

คุณสามารถมีการตั้งค่าได้สูงสุดถึง 1,000 รายการที่ใช้งานอยู่ในเวลาใดเวลาหนึ่งและจัดการพวกมันได้ใน Creator Hub หรือใน Roblox Studio

ภาพรวมของหน้าการตั้งค่าใน Creator Hub

สร้างและแก้ไขการตั้งค่า

  1. ในหน้าการตั้งค่า Creator Hub สำหรับประสบการณ์ของคุณ คลิก สร้างการตั้งค่า

  2. ระบุชื่อกุญแจ ประเภท ค่าที่ต้องการ และตัวเลือกเพิ่มเติม คือ คำอธิบายเพื่อช่วยคุณหรือทีมในการระบุวัตถุประสงค์ของการตั้งค่า ประเภทที่รองรับคือ สตริง, หมายเลข, บูลีน, และวัตถุ JSON

  3. คัดลอกโค้ดที่สร้างขึ้นไปวางในสคริปต์เซิร์ฟเวอร์ในประสบการณ์ของคุณ โดยปกติจะอยู่ใน ServerScriptService โค้ดควรดูประมาณนี้:


    local ConfigService = game:GetService("ConfigService")
    local configSnapshot = ConfigService:GetConfigAsync()
    local MY_KEY = "my_key" -- ตัวเลือก, เก็บกุญแจการตั้งค่าเป็นค่าคงที่
    local myValue = configSnapshot:GetValue(MY_KEY)
  4. ใช้ค่าดังกล่าวเหมือนกับตัวแปรอื่นๆ การตั้งค่า จะไม่ทำอะไร หากคุณไม่ใช้มันในโค้ดของคุณ

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับการตั้งค่าในสคริปต์ของคุณ โปรดดูที่ เพิ่มการตั้งค่าในโค้ดของคุณ.

การแก้ไขการตั้งค่าไม่แตกต่างจากการสร้างหนึ่ง คลิกที่ปุ่ม แก้ไข และอัปเดตค่าและคำอธิบายตามที่ต้องการ

ข้อจำกัด

ค่าการตั้งม่มีข้อจำกัดดังนี้ ตามประเภท

ประเภทขนาดสูงสุด
สตริง100,000 ตัวอักษร
หมายเลข±1.7976931348623157e+308, ±2^53 สำหรับการแสดงผลจำนวนเต็มที่ถูกต้อง
บูลีนไม่มี
JSON100,000 ตัวอักษร

เผยแพร่การตั้งค่า

หลังจากคุณสร้างการตั้งค่า มันจะเข้าสู่สถานะ การจัดเตรียม เพื่อให้คุณสามารถทดสอบก่อนที่จะเปิดให้ใช้งานสำหรับผู้เล่นทั่วไป การเปลี่ยนแปลงที่จัดเตรียมจะสามารถใช้งานได้กับคุณและทีมในเซสชันการเล่น Studio ไม่ใช่ผู้เล่นในประสบการณ์ที่ใช้งานจริง หน้าการตั้งค่าใน Creator Hub จะแสดงการเปลี่ยนแปลงทั้งหมดที่ใช้งานและที่จัดเตรียมไว้

หน้าการตั้งค่าที่แสดงการเปลี่ยนแปลงที่ยังไม่ได้เผยแพร่
  1. หลังจากที่คุณทดสอบการเปลี่ยนแปลงในสเตจ คลิก เผยแพร่ตอนนี้ เพื่อเผยแพร่ให้กับผู้เล่นทั้งหมดภายในห้านาที คุณยังสามารถเลือก เผยแพร่ภายใน 15 นาที หากคุณต้องการระยะเวลาการเผยแพร่ที่ยาวนานขึ้น
  2. (แนะนำ) เพิ่มข้อความเผยแพร่ที่มีคำอธิบายซึ่งบ่งบอกสิ่งที่คุณได้อัปเดต ข้อความนี้จะปรากฏในหน้าประวัติและช่วยคุณและทีมในการระบุวัตถุประสงค์ของการเปลี่ยนแปลงในภายหลัง

สร้างและแก้ไขการตั้งค่าใน Studio

หากคุณต้องการ คุณสามารถสร้าง แก้ไข จัดเตรียม และเผยแพร่การตั้งค่าใน Roblox Studio คลิก ไฟล์ > เปิดการตั้งค่า อินเตอร์เฟซของ Studio มีความสะดวกมากสำหรับการจัดเตรียมและทดสอบค่าที่ใหม่

หน้าต่าง Studio สำหรับการทำงานกับการตั้งค่า

ดูประวัติและกู้คืนการตั้งค่า

ในหน้าการตั้งค่า คลิก ประวัติ เพื่อดูการอัปเดตก่อนหน้านี้ แต่ละการอัปเดตมีเวลาและวันที่ของการเปลี่ยนแปลง ผู้ที่ทำการเปลี่ยนแปลง และข้อความเผยแพร่

หน้าประวัติที่มีการขยายความแตกต่างสำหรับค่าการตั้งค่า

  • ขยายแต่ละแถวเพื่อดูคีย์ ค่าก่อนการเปลี่ยนแปลง และค่าหลังการเปลี่ยนแปลง
  • ใช้กล่อง ค้นหาคีย์ เพื่อค้นหาคีย์เท่านั้น—ไม่ใช่คำอธิบายหรือตัวเลข เพียงแค่คีย์

หน้าประวัติยังให้คุณกู้คืนการตั้งค่าไปยังสถานะก่อนหน้านี้:

  1. คลิก กู้คืน ข้างการเปลี่ยนแปลงเพื่อจัดเตรียมค่าก่อน เราอยากจะเตือนว่าการกู้คืนการตั้งค่าจะทำให้เปลี่ยนแปลงที่จัดเตรียมอยู่ในปัจจุบันหายไป
  2. กลับไปที่หน้าการตั้งค่าและ เผยแพร่การตั้งค่า.

เพิ่มการตั้งค่าในโค้ดของคุณ

คลาสหลักสำหรับการทำงานกับการตั้งคือ ConfigService ซึ่งดึงคีย์และค่าสำหรับประสบการณ์ของคุณ ConfigService จะสามารถใช้งานได้เฉพาะในสคริปต์เซิร์ฟเวอร์เท่านั้น การพยายามเรียกใช้วิธีของมันจากสคริปต์ของลูกค้าจะทำให้เกิดข้อผิดพลาด

ขั้นตอนแรกในการทำงานกับการตั้งคือการดึง ConfigSnapshot ซึ่งเป็นค่าล่าสุดสำหรับการตั้งค่าทั้งหมด ณ จุดเวลาในปัจจุบัน มีสองวิธีในการรับภาพรวม:

  • ConfigService:GetConfigAsync() ใช้สำหรับการตั้งค่าทั่วไปที่คุณต้องการนำไปใช้กับผู้เล่นทั้งหมดในประสบการณ์:


    local ConfigService = game:GetService("ConfigService")
    local configSnapshot = ConfigService:GetConfigAsync()
    local bossHealth = configSnapshot:GetValue("bossHealth")
  • ConfigService:GetConfigForPlayerAsync() ใช้สำหรับ การทดลอง. มันจะดึงการตั้งค่าที่เฉพาะเจาะจงสำหรับผู้เล่นเพื่อให้ผู้เล่นแต่ละคนสามารถได้รับค่าส่วนแตกต่างกันได้


    local ConfigService = game:GetService("ConfigService")
    local Players = game:GetService("Players")
    local function onPlayerAdded(player)
    local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
    local bossHealth = playerConfigSnapshot:GetValue("bossHealth")
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

ไม่ว่าในกรณีใด ถ้ากุญแจไม่อยู่ ConfigSnapshot:GetValue() จะส่งกลับ nil

รีเฟรชภาพรวม

ConfigSnapshots แสดงถึงจุดเวลา สถานะของการตั้งค่าเมื่อต้องการภาพรวม การอัปเดตการตั้งค่าจะ ไม่ ถูกส่งตรงไปยังภาพรวมโดยอัตโนมัติ เพื่อหลีกเลี่ยงการรบกวนการเล่นเกม ในเกมยิงที่แข่งขันกัน เช่น คุณอาจต้องการค่าการตั้งค่าใหม่ในช่วงพักระหว่างรอบเพื่อไม่ให้ลักษณะของอาวุธเปลี่ยนแปลงกลางแมตช์

เพื่อรับค่าล่าสุดด้วยตนเอง ให้ใช้วิธี ConfigSnapshot:Refresh() ตัวเลือกหนึ่งคือเชื่อมต่อฟังก์ชันกับเหตุการณ์ ConfigSnapshot.UpdateAvailable เพื่อรีเฟรชโดยอัตโนมัติ:


configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)

หลังจากที่คุณรีเฟรชภาพรวมแล้ว คุณสามารถใช้ ConfigSnapshot:GetValueChangedSignal() เพื่อฟังการเปลี่ยนแปลงของคีย์เฉพาะเพื่อให้คุณสามารถอัปเดตโค้ดของประสบการณ์ได้:


configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)

การจัดการข้อผิดพลาด

ในกรณีที่หายากเมื่อการตั้งค่าไม่สามารถโหลดได้และไม่เคยถูกโหลดก่อนหน้านี้ ConfigService:GetConfigAsync() จะสร้างข้อผิดพลาด

ถ้า ConfigService สูญเสียการเชื่อมต่อกับเซิร์ฟเวอร์ Roblox หลังจากที่มันถูกโหลดไว้ก่อนหน้านี้ ConfigService:GetConfigAsync() จะส่งกลับภาพรวมที่มีค่าล่าสุดที่สามารถใช้งานได้ ภาพรวมเหล่านี้จะพยายามเชื่อมต่อใหม่และส่งเหตุการณ์ UpdateAvailable เมื่อต้องโหลดการอัปเดตใหม่ได้สำเร็จ

ว่าคุณจัดการกับสถานการณ์ที่ไม่ธรรมดาเหล่านี้อย่างไรนั้นขึ้นอยู่กับคุณ คุณสามารถห่อหุ้มการเรียกใน pcall() และมีค่าตั้งต้นในโค้ดของคุณ แสดงข้อผิดพลาดให้ผู้เล่นเห็นและรอให้ภาพรวมรีเชื่อมต่อ หรือแก้ไขวิธีอื่น

ทดสอบการตั้งค่า

ConfigService มีวิธีการในตัวสำหรับการทดสอบการเปลี่ยนแปลงการตั้งค่าแบบชั่วคราวทั้งใน Studio และบนเซิร์ฟเวอร์ที่ใช้งานอยู่โดยไม่ทำให้เกิดผลกระทบต่อประสบการณ์ทั้งหมด

ในการตั้งค่าค่าทดสอบเฉพาะ ให้เรียกใช้ ConfigService:SetTestingValue() จากสคริปต์เซิร์ฟเวอร์หรือผ่าน Developer Console การเปลี่ยนแปลงค่าทดสอบจะแจ้งให้การอัปเดตการตั้งค่าพร้อมกับสัญญาณ ConfigSnapshot.UpdateAvailable เช่นเดียวกับการอัปเดตในผลิตภัณฑ์ คุณต้องรีเฟรชภาพรวมที่มีอยู่เพื่อให้ได้ค่าทดสอบ:


local ConfigService = game:GetService("ConfigService")
ConfigService:SetTestingValue("bossHealth", 200)
local configSnapshot = ConfigService:GetConfigAsync()
local bossHealth = configSnapshot:GetValue("bossHealth") -- ตอนนี้คือ 200!

การเปลี่ยนแปลงการทดสอบจะมีผลเป็นเวลากว่าอายุของเซิร์ฟเวอร์ปัจจุบันและจะไม่ถูกส่งต่อไปยังเซิร์ฟเวอร์อื่น ใน Studio จะมีผลต่อเซสชันการเล่นปัจจุบันและจะไม่ส่งผลต่อเซิร์ฟเวอร์ที่ใช้งานอยู่ คุณสามารถลบการเปลี่ยนแปลงการทดสอบด้วย ConfigService:ClearTestingValue().

©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ