Erfahrungskonfigurationen ermöglichen es Ihnen, Spielwerte in Echtzeit zu aktualisieren, ohne Server neu zu starten:
- Aktivieren und Deaktivieren von Funktionen, wie das Aktivieren oder Deaktivieren eines neuen Onboarding-Dungeons.
- Anpassung von Spielwerten wie Bossgesundheit, Erfahrungsgain oder Artikelpreisen.
- Starten von zeitlich begrenzten Inhalten, wie einem Halloween-Event, das um Mitternacht beginnt.
Konfigurationen bestehen aus Schlüsseln und Werten. Anstatt fest codierte Konstanten in Ihrem Code zu verwenden, können Sie den Schlüssel verwenden, um einen Wert (String, Zahl, Boolean oder JSON-Objekt) abzurufen 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 einem beliebigen Zeitpunkt bis zu 1.000 aktive Konfigurationen haben und diese im Creator Hub oder in Roblox Studio verwalten.

Konfigurationen erstellen und bearbeiten
Gehen Sie zur 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-Snippet 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 zur Arbeit mit Konfigurationen in Ihren Skripten siehe Konfigurationen zu Ihrem Code hinzufügen.
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.
Limits
Konfigurationswerte haben die folgenden Limits 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, wechselt sie in einen gestaffelten Zustand, damit Sie sie testen können, bevor sie öffentlich verfügbar wird. Gestaffelte Änderungen sind für Sie und Ihr Team in Studio-Spielesitzungen verfügbar, nicht für Spieler in Live-Erlebnissen. Die Konfigurationen-Seite im Creator Hub zeigt alle aktiven und gestaffelten Änderungen.

- Nachdem Sie Ihre gestaffelten Änderungen getestet haben, klicken Sie auf Jetzt veröffentlichen, um sie innerhalb von fünf Minuten an 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öffentlichung Nachricht hinzu, die angibt, was Sie aktualisiert haben. Diese Nachricht erscheint auf der Historie-Seite und kann Ihnen und Ihrem Team später helfen, den Zweck der Änderung zu identifizieren.
Konfigurationen im Studio erstellen und bearbeiten
Wenn Sie möchten, können Sie Konfigurationen in Roblox Studio erstellen, bearbeiten, staggen und veröffentlichen. Klicken Sie auf Datei > Konfigurationen öffnen. Die Studio-Oberfläche ist besonders praktisch für das Stagen und Testen neuer Werte.

Verlauf anzeigen und Konfigurationen wiederherstellen
Auf der Konfigurationen-Seite klicken Sie auf Verlauf, um frühere Updates zu sehen. Jede Aktualisierung 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 Schlüssel suchen-Feld, um nach Schlüsseln zu suchen - nicht nach Beschreibungen oder Werten, nur nach Schlüsseln.
Die Verlauf-Seite ermöglicht es Ihnen auch, Konfigurationen in einen vorherigen Status wiederherzustellen:
- Klicken Sie auf Wiederherstellen neben der Änderung, um den "vorher" Wert zu staggen. Beachten Sie, dass das Wiederherstellen einer Konfiguration alle vorhandenen gestaffelten Änderungen verwirft.
- Kehren Sie zur Konfigurationen-Seite zurück und veröffentlichen Sie die Konfiguration.
Konfigurationen zu Ihrem Code hinzufügen
Die Hauptklasse für die Arbeit mit Konfigurationen ist ConfigService, die die neuesten Schlüssel und Werte für Ihr Erlebnis abrufen. ConfigService ist nur für Server-Skripte verfügbar. Der Versuch, seine Methoden von einem Client-Skript aus aufzurufen, führt zu einem Fehler.
Der erste Schritt zur Arbeit mit Konfigurationen besteht darin, eine ConfigSnapshot abzurufen, die die neuesten Werte für alle Konfigurationen zu diesem Zeitpunkt darstellt. Es gibt zwei Methoden zum Abrufen eines Snapshots:
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 holt spielerspezifische Konfigurationen, 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 zu dem Zeitpunkt, an dem Sie den Snapshot angefordert haben. Um zu vermeiden, dass das Gameplay gestört wird, verbreiten Updates für eine Konfiguration nicht automatisch die Snapshots. In einem kompetitiven Shooter möchten Sie beispielsweise möglicherweise nur neue Konfigurationswerte zwischen den Runden, sodass die Waffenattribute nicht während des Spiels schwanken.
Um die neuesten Werte manuell zu erhalten, verwenden Sie die ConfigSnapshot:Refresh() Methode. Optional können Sie eine Funktion mit dem ConfigSnapshot.UpdateAvailable Ereignis 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 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 zuletzt verfügbaren Werten zurück. Diese Snapshots versuchen, eine Verbindung wiederherzustellen, und geben das UpdateAvailable-Ereignis aus, wenn sie erfolgreich neue Updates laden.
Wie Sie mit diesen ungewöhnlichen Situationen umgehen, liegt bei Ihnen. Sie können den Aufruf in einem pcall() einwickeln und haben Fallback-Werte in Ihrem Code, dem Spieler einen Fehler anzeigen und warten, dass der Snapshot wieder verbunden wird, oder eine andere Lösung wählen.
Konfigurationen testen
ConfigService hat integrierte Methoden für das vorübergehende Testen von Konfigurationsänderungen sowohl im Studio als auch auf Live-Servern, ohne das gesamte Erlebnis zu beeinträchtigen.
Um einen lokalen Testwert festzulegen, rufen Sie ConfigService:SetTestingValue() aus einem Server-Skript oder über die Entwickler-Konsole auf. Änderungen an Testwerten lösen ein Konfigurationsupdate zusammen mit dem ConfigSnapshot.UpdateAvailable Signal aus. Genau wie bei einem Produktionsupdate müssen Sie bestehende 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 Lebensdauer des aktuellen Servers und verbreiten sich nicht auf andere Server. Im Studio gelten sie für die aktuelle Spielsitzung und beeinflussen keine Live-Server. Sie können Teständerungen manuell mit ConfigService:ClearTestingValue() zurücksetzen.