體驗配置 讓您在不重新啟動伺服器的情況下即時更新遊戲中的值:
- 開啟或關閉功能,例如啟用或禁用新的上手地牢。
- 調整遊戲中的值,例如 Boss 血量、經驗獲得或物品價格。
- 發佈定時內容,例如在午夜開始的萬聖節活動。
配置的形式是鍵和值。您可以使用鍵獲取值(字符串、數字、布林值或 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 配置 頁面上,單擊 創建配置。
指定一個鍵、一種類型、一個值,並可選擇性地添加描述,以幫助您或您的團隊稍後識別配置的用途。支持的類型包括字符串、數字、布林值和 JSON 對象。
將生成的代碼片段複製到您體驗中的伺服器腳本中,可能位於 ServerScriptService。代碼應如下所示:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local MY_KEY = "my_key" -- 可選,將配置鍵保存為常量local myValue = configSnapshot:GetValue(MY_KEY)像使用其他任何變量一樣使用該值。配置 不會做任何事,除非您在代碼中使用它們。
有關在您的腳本中使用配置的更多信息,請參見 將配置添加到您的代碼。
編輯配置與創建配置沒有區別。單擊 編輯 按鈕,並根據需要更新值和描述。
限制
配置值按類型具有以下限制。
| 類型 | 最大大小 |
|---|---|
| 字符串 | 100,000 個字符 |
| 數字 | ±1.7976931348623157e+308,±2^53 用於精確整數表示 |
| 布林值 | N/A |
| JSON | 100,000 個字符 |
發佈配置
創建配置後,它會移至 待定 狀態,以便您可以在公開可用之前對其進行測試。待定更改對您和您的團隊在 Studio 遊玩時可用,但對遊戲中的玩家不可用。 Creator Hub 上的 配置 頁面顯示所有活動和待定的更改。

- 在測試完您的待定更改後,單擊 立即發佈 以在五分鐘內發佈給所有玩家。如果您更喜歡更長的推送時間,也可以選擇 在 15 分鐘內發佈。
- (建議)添加描述性發佈消息,指明您更新的內容。該消息將出現在 歷史 頁面上,可以幫助您和您的團隊稍後識別更改的目的。
在 Studio 中創建和編輯配置
如果您願意,您可以在 Roblox Studio 中創建、編輯、階段和發佈配置。單擊 文件 > 打開配置。Studio 界面對於階段和測試新值特別方便。

查看歷史和還原配置
在 配置 頁面上,單擊 歷史 以查看過去的更新。每次更新都有變更的時間和日期、誰進行了更改以及發佈消息。

- 展開每一行以查看鍵、變更前的值和變更後的值。
- 使用 搜索鍵 框搜索鍵—不包括描述或值,只搜尋鍵。
歷史 頁面還允許您將配置恢復到之前的狀態:
- 單擊變更旁邊的 還原 以將 "之前" 的值階段化。請注意,恢復配置會丟棄所有現有的待定更改。
- 返回 配置 頁面並 發佈配置。
將配置添加到您的代碼
處理配置的主要類是 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")endPlayers.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()。對測試值的更改會觸發配置更新以及 ConfigSnapshot.UpdateAvailable 信號。就像生產更新一樣,您必須刷新現有快照以獲取測試值:
local ConfigService = game:GetService("ConfigService")ConfigService:SetTestingValue("bossHealth", 200)local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth") -- 現在是 200!
測試更改適用於當前伺服器的生命週期,並且不會傳播到其他伺服器。在 Studio 中,它們適用於當前的遊玩會話,不會影響線上伺服器。您可以使用 ConfigService:ClearTestingValue() 手動清除測試更改。