Erlebniskonfigurationen ermöglichen es Ihnen, In-Game-Werte in Echtzeit zu aktualisieren, ohne Server neu zu starten:
- Schalten Sie Funktionen ein und aus, wie z. B. das Aktivieren oder Deaktivieren eines neuen Onboarding-Dungeons.
- Passen Sie In-Game-Werte wie Bossgesundheit, Erfahrungspunkte oder Itempreise an.
- Starten Sie zeitlich begrenzte Inhalte, wie z. B. ein Halloween-Event, das um Mitternacht beginnt.
Konfigurationen bestehen aus Schlüsseln und Werten. Anstatt fest kodierte Konstanten in Ihrem Code zu verwenden, können Sie den Schlüssel verwenden, um einen Wert (String, Zahl, Boolean oder JSON-Objekt) zu erhalten und diesen Wert jederzeit aktualisieren, ohne eine neue Version Ihres Erlebnisses zu veröffentlichen. Die erforderlichen Codeänderungen sind minimal:
local ConfigService = game:GetService("ConfigService")
local configSnapshot = ConfigService:GetConfigAsync()
local myValue = configSnapshot:GetValue("my_key_name")Sie können zu jedem Zeitpunkt bis zu 1.000 aktive Konfigurationen haben und sie im Creator Hub oder in Roblox Studio verwalten.

Konfigurationen erstellen und bearbeiten
Gehen Sie auf die Creator Hub Konfigurationen-Seite für Ihr Erlebnis und klicken Sie auf Konfiguration erstellen.
Geben Sie einen Schlüssel, einen Typ, einen Wert und optional eine Beschreibung an, um Ihnen oder Ihrem Team später zu helfen, den Zweck der Konfiguration zu identifizieren. Unterstützte Typen sind String, Zahl, Boolean und JSON-Objekt.
Kopieren Sie den generierten Code-Schnipsel in ein Server-Skript in Ihrem Erlebnis, wahrscheinlich in ServerScriptService. Der Code sollte ungefähr so aussehen:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local MY_KEY = "my_key" -- optional, speichern Sie den Konfigurationsschlüssel als Konstantelocal myValue = configSnapshot:GetValue(MY_KEY)Verwenden Sie den Wert wie jede andere Variable. Konfigurationen tun nichts, es sei denn, Sie verwenden sie in Ihrem Code.
Für weitere Informationen zum Arbeiten mit Konfigurationen in Ihren Skripten siehe Fügen Sie Konfigurationen zu Ihrem Code hinzu.
Das Bearbeiten einer Konfiguration unterscheidet sich nicht von der Erstellung einer. Klicken Sie auf die Schaltfläche Bearbeiten und aktualisieren Sie den Wert und die Beschreibung nach Wunsch.
Grenzen
Konfigurationswerte haben die folgenden Grenzen nach Typ.
| Typ | Maximale Größe |
|---|---|
| String | 100.000 Zeichen |
| Zahl | ±1.7976931348623157e+308, ±2^53 für exakte Ganzzahl-Darstellungen |
| Boolean | N/A |
| JSON | 100.000 Zeichen |
Konfigurationen veröffentlichen
Nachdem Sie eine Konfiguration erstellt haben, wird sie in einen statischen Zustand versetzt, damit Sie sie testen können, bevor sie öffentlich verfügbar wird. Statische Änderungen sind für Sie und Ihr Team in Studio-Spiel-Sitzungen verfügbar, nicht für Spieler in Live-Erlebnissen. Die Konfigurationen-Seite im Creator Hub zeigt alle aktiven und statischen Änderungen an.

- Nachdem Sie Ihre statischen Änderungen getestet haben, klicken Sie auf Jetzt veröffentlichen, um sie innerhalb von fünf Minuten für alle Spieler zu veröffentlichen. Sie können auch Über 15 Minuten veröffentlichen wählen, wenn Sie einen längeren Rollout-Zeitraum bevorzugen.
- (Empfohlen) Fügen Sie eine beschreibende Veröffentlichungsnachricht hinzu, die angibt, was Sie aktualisiert haben. Diese Nachricht erscheint auf der Historien-Seite und kann Ihnen und Ihrem Team später helfen, den Zweck der Änderung zu identifizieren.
Konfigurationen in Studio erstellen und bearbeiten
Wenn Sie möchten, können Sie Konfigurationen in Roblox Studio erstellen, bearbeiten, in den statischen Zustand versetzen und veröffentlichen. Klicken Sie auf Datei > Konfigurationen öffnen, um das Widget zu öffnen. Die Studio-Oberfläche ist besonders praktisch, um neue Werte in den statischen Zustand zu versetzen und zu testen.

Konfigurationen für ein anderes Erlebnis veröffentlichen
Nur in Studio können Sie Ihre Konfigurationen in ein anderes Erlebnis veröffentlichen, wodurch die Konfigurationen für dieses Erlebnis vollständig überschrieben werden. Dies kann besonders nützlich sein, um Konfigurationen von einem statischen oder Entwicklungs-Erlebnis in das Live-Erlebnis zu synchronisieren. Navigieren Sie zu dem Veröffentlicht-Tab im Studio-Widget und klicken Sie auf Als veröffentlichen im ⋮-Menü.

Verlauf anzeigen und Konfigurationen wiederherstellen
Auf der Konfigurationen-Seite klicken Sie auf Verlauf, um vergangene Updates zu sehen. Jedes Update hat die Uhrzeit und das Datum der Änderung, wer die Änderung vorgenommen hat, und die Veröffentlichungsnachricht.

- Erweitern Sie jede Zeile, um den Schlüssel, den Wert vor der Änderung und den Wert danach zu sehen.
- Verwenden Sie das Feld Schlüssel suchen, um nach Schlüsseln zu suchen - nicht nach Beschreibungen oder Werten, nur nach Schlüsseln.
Die Verlauf-Seite ermöglicht es auch, Konfigurationen in einen vorherigen Zustand wiederherzustellen:
- Klicken Sie auf Wiederherstellen neben der Änderung, um den "Vorher"-Wert in den statischen Zustand zu versetzen. Beachten Sie, dass das Wiederherstellen einer Konfiguration alle bestehenden statischen Änderungen verwirft.
- Kehren Sie zur Konfigurationen-Seite zurück und veröffentlichen Sie die Konfiguration.
Fügen Sie Konfigurationen zu Ihrem Code hinzu
Die Hauptklasse zum Arbeiten mit Konfigurationen ist ConfigService, die die neuesten Schlüssel und Werte für Ihr Erlebnis abruft. ConfigService ist nur für Server-Skripte verfügbar. Der Versuch, ihre Methoden von einem Client-Skript aus aufzurufen, führt zu einem Fehler.
Der erste Schritt, um mit Konfigurationen zu arbeiten, besteht darin, einen ConfigSnapshot abzurufen, die neuesten Werte für alle Konfigurationen zu diesem Zeitpunkt. Es gibt zwei Methoden, um einen Snapshot zu erhalten:
ConfigService:GetConfigAsync() ist für globale Konfigurationen, die Sie auf alle Spieler im Erlebnis anwenden möchten:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth")ConfigService:GetConfigForPlayerAsync() ist für Experimente. Es ruft spieler-spezifische Konfigurationen ab, sodass verschiedene Spieler unterschiedliche Werte erhalten können.
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)
In beiden Fällen, wenn der Schlüssel nicht existiert, gibt ConfigSnapshot:GetValue() nil zurück.
Snapshots aktualisieren
ConfigSnapshots repräsentiert einen Punkt in der Zeit, den Zustand der Konfiguration, als Sie den Snapshot angefordert haben. Um Gameplay-Störungen zu vermeiden, werden Updates für eine Konfiguration nicht automatisch an Snapshots weitergegeben. In einem wettbewerbsorientierten Shooter möchten Sie beispielsweise möglicherweise nur neue Konfigurationswerte zwischen Runden, damit die Waffenattribute nicht mitten im Spiel schwanken.
Um die neuesten Werte manuell zu erhalten, verwenden Sie die Methode ConfigSnapshot:Refresh(). Optional können Sie eine Funktion mit dem Ereignis ConfigSnapshot.UpdateAvailable verbinden, um automatisch zu aktualisieren:
configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)Nachdem Sie einen Snapshot aktualisiert haben, können Sie ConfigSnapshot:GetValueChangedSignal() verwenden, um auf Änderungen eines bestimmten Schlüssels zu hören, sodass Sie den Code Ihres Erlebnisses aktualisieren können:
configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)Fehlerbehandlung
In seltenen Fällen, in denen die Konfiguration nicht geladen werden kann und noch nie zuvor geladen wurde, löst ConfigService:GetConfigAsync() einen Fehler aus.
Wenn ConfigService die Verbindung zu den Roblox-Servern verliert, nachdem es zuvor geladen wurde, gibt ConfigService:GetConfigAsync() einen Snapshot mit den neuesten verfügbaren Werten zurück. Diese Snapshots versuchen, die Verbindung herzustellen und senden das Ereignis UpdateAvailable, wenn sie erfolgreich neue Updates laden.
Wie Sie mit diesen ungewöhnlichen Situationen umgehen, liegt bei Ihnen. Sie können den Aufruf in ein pcall() einwickeln und Fallback-Werte in Ihrem Code haben, dem Spieler einen Fehler anzeigen und auf die Wiederverbindung des Snapshots warten oder eine andere Lösung finden.
Testen Sie Konfigurationen
ConfigService hat integrierte Methoden, um Konfigurationsänderungen vorübergehend sowohl in Studio als auch auf Live-Servern zu testen, ohne das gesamte Erlebnis zu beeinträchtigen.
Um einen lokalen Testwert festzulegen, rufen Sie ConfigService:SetTestingValue() von einem Server-Skript oder über die Entwicklerkonsole auf. Änderungen an Testwerten lösen ein Konfigurationsupdate zusammen mit dem Signal ConfigSnapshot.UpdateAvailable aus. Genau wie bei einem Produktionsupdate müssen Sie vorhandene Snapshots aktualisieren, um den Testwert zu erhalten:
local ConfigService = game:GetService("ConfigService")
ConfigService:SetTestingValue("bossHealth", 200)
local configSnapshot = ConfigService:GetConfigAsync()
local bossHealth = configSnapshot:GetValue("bossHealth") -- Jetzt 200!Teständerungen gelten für die Dauer des aktuellen Servers und werden nicht auf andere Server übertragen. In Studio gelten sie für die aktuelle Spielsitzung und beeinflussen keine Live-Server. Sie können Teständerungen manuell mit ConfigService:ClearTestingValue() löschen.