Erfahrungskonfigurationen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Erfahrungskonfigurationen ermöglichen es Ihnen, Werte im Spiel in Echtzeit zu aktualisieren, ohne Server neu zu starten:

  • Aktivieren oder Deaktivieren von Funktionen, wie das Aktivieren oder Deaktivieren eines neuen Onboarding-Dungeons.
  • Anpassen von Werten im Spiel wie Bossgesundheit, Erfahrungspunkte oder Artikelpreise.
  • Starten von zeitlich begrenzten Inhalten, wie einem Halloween-Event, das um Mitternacht beginnt.
  • Verschiedene Werte für verschiedene Spieler festlegen, wie das Gewähren von zusätzlicher Rüstung für neue Spieler.

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 zu aktualisieren, ohne eine neue Version Ihrer Erfahrung 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 diese im Creator Hub oder in Roblox Studio verwalten.

Übersicht der Konfigurationsseite im Creator Hub

Konfigurationen erstellen und bearbeiten

  1. Gehen Sie auf die Creator Hub Konfigurationen-Seite für Ihre Erfahrung und klicken Sie auf Konfiguration erstellen.

  2. 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. Klicken Sie auf Weiter.

  3. (Optional) Fügen Sie Zielbedingungen und Werte hinzu. Bedingungen ermöglichen es Ihnen, Konfigurationswerte auf Benutzer anzuwenden, die bestimmten Kriterien entsprechen (oder nicht entsprechen), wie Benutzer, die Ihr Spiel noch nie gespielt haben, oder solche, die Portugiesisch sprechen. Um mehr zu erfahren, siehe Zielkonfigurationen für bestimmte Spieler.

  4. Kopieren Sie den generierten Code-Schnipsel in ein Server-Skript in Ihrer Erfahrung, wahrscheinlich in ServerScriptService. Für "globale" Konfigurationen, die sich nicht nach Spieler unterscheiden, könnte der Code so aussehen:

    local ConfigService = game:GetService("ConfigService")
    local configSnapshot = ConfigService:GetConfigAsync()
    local MY_KEY = "my_key" -- optional, speichern Sie den Konfigurationsschlüssel als Konstante
    local myValue = configSnapshot:GetValue(MY_KEY)

    Für bedingte Konfigurationen und Experimente ist der Code etwas anders:

    local ConfigService = game:GetService("ConfigService")
    local Players = game:GetService("Players")
    local MY_KEY = "my_key" -- optional, speichern Sie den Konfigurationsschlüssel als Konstante
    local function onPlayerAdded(player)
    local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)
    local myValue = playerConfigSnapshot:GetValue(MY_KEY)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
  5. 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 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.

TypMaximale Größe
String100.000 Zeichen
Zahl±1.7976931348623157e+308, ±2^53 für exakte Ganzzahl-Darstellungen
BooleanN/A
JSON100.000 Zeichen

Konfigurationen veröffentlichen

Nachdem Sie eine Konfiguration erstellt haben, wechselt sie in einen staged Zustand, damit Sie sie testen können, bevor sie öffentlich verfügbar wird. Gestufte Änderungen sind für Sie und Ihr Team in Studio-Spiel-Sitzungen verfügbar, nicht für Spieler in Live-Erfahrungen. Die Konfigurationen-Seite im Creator Hub zeigt alle aktiven und gestuften Änderungen.

Die Konfigurationsseite zeigt unveröffentlichte Änderungen
  1. Nachdem Sie Ihre gestuften Änderungen getestet haben, klicken Sie auf Jetzt veröffentlichen, um sie fast sofort (ungefähr zwischen 15 Sekunden und 1 Minute) für alle Spieler zu veröffentlichen. Sie können auch Über 15 Minuten veröffentlichen wählen, wenn Sie einen längeren, schrittweisen Rollout-Zeitraum bevorzugen. In einigen Fällen kann es einige Minuten dauern, bis die Clients die Änderungen nach der Veröffentlichung widerspiegeln.
  2. (Empfohlen) Fügen Sie eine beschreibende Veröffentlichungsnachricht 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.

Zielkonfigurationen für bestimmte Spieler

Standardmäßig liefert eine Konfiguration denselben Wert an alle. Bedingte Konfigurationen ermöglichen es Ihnen, unterschiedlichen Spielern basierend auf Spielerattributen (Land, Dauer, Sprache, Zahlungsstatus usw.) unterschiedliche Werte zu liefern.

Bedingte Konfigurationen bestehen aus drei Teilen, die bestimmen, welchen Wert ein Spieler erhält:

  • Bedingte Regeln definieren, wer übereinstimmt. Jede Regel ist ein logischer Ausdruck, wie "aktive Zahler in ihren ersten 30 Tagen", der die Spielerattribute bewertet.
  • Regelreihenfolge definiert, wie ausgewählt wird, wenn ein Spieler mehr als einer Regel entspricht. Roblox bewertet die Regeln von oben nach unten und wendet den ersten übereinstimmenden Zweig an. Regeln sind global geordnet, unabhängig von der Reihenfolge, in der Sie bedingte Werte zu einem einzelnen Schlüssel hinzufügen.
  • Bedingte Werte definieren, was ein übereinstimmender Spieler erhält. Für jede Bedingung fügen Sie einen Wert hinzu. Wenn ein Spieler einer Regel innerhalb dieser Bedingung entspricht, erhält er den zugehörigen Wert; andernfalls erhält er den Standardwert der Konfiguration.

Unterstützte Attribute

Bedingte Konfigurationen unterstützen die folgenden Attribute. Diese Attribute teilen sich die gleichen Definitionen wie die entsprechenden Filter und Aufschlüsselungen in den Analyse-Dashboards.

AttributBeschreibung
LandDer geografische Standort des Spielers.
SpracheDie Spracheinstellung des Spielers.
Neu vs. zurückkehrendOb der Spieler Ihre Erfahrung zum ersten Mal spielt oder sie zuvor gespielt hat.
QuelleWie der Spieler Ihre Erfahrung gefunden hat, z. B. durch eine Empfehlung auf der Startseite, Suche oder eine gesponserte Anzeige.
Wann der Benutzer zum ersten Mal gespielt hatWie lange es her ist, dass der Spieler Ihre Erfahrung zum ersten Mal gespielt hat, z. B. vor 0-30 Tagen oder vor 31-90 Tagen. Täglich berechnet.
Aktiver Zahlerstatus im SpielDie Zahlungsaktivität des Spielers innerhalb Ihrer Erfahrung, die es Ihnen ermöglicht, verschiedene Segmente zahlender Benutzer anzusprechen. Täglich berechnet.
Aktivitätsstatus im SpielWie kürzlich der Spieler Ihre Erfahrung gespielt hat, was es Ihnen ermöglicht, neue, aktive, inaktive und reaktivierte Spieler unterschiedlich zu behandeln. Täglich berechnet.
BenutzerengagementWie viel der Spieler jede Woche Ihre Erfahrung spielt, was es Ihnen ermöglicht, Ihre engagiertesten Spieler von den eher gelegentlichen zu trennen. Täglich berechnet.
PlattformausgabenstatusOb der Spieler ein aktiver Ausgeber auf der Roblox-Plattform ist. Täglich berechnet.
PlattformaktivitätsstatusWie kürzlich der Spieler irgendwo auf Roblox gespielt hat, nicht nur in Ihrer Erfahrung. Täglich berechnet.

Bedingte Werte erstellen

Sie fügen Bedingungen hinzu, wenn Sie eine Konfiguration erstellen oder bearbeiten. Im Schritt Ziel hinzufügen fügen Sie eine Bedingung hinzu:

  1. Wählen Sie eine vorhandene Bedingung oder klicken Sie auf Eine neue erstellen.
  2. Fügen Sie eine oder mehrere Regeln hinzu.
  3. Legen Sie den Wert fest, den übereinstimmende Spieler erhalten.

Zum Beispiel, um eine schwierigere Erfahrung für die aktivsten Zahler zu bieten, die innerhalb der letzten 30 Tage mit dem Spielen begonnen haben, könnten Sie ihren Wert für dynamicBossHealth erhöhen.

Der Schritt Ziel hinzufügen zeigt bedingte Regeln für eine Konfiguration

Zugriff auf gezielte Werte im Code

Um gezielte Werte abzurufen, verwenden Sie ConfigService:GetConfigForPlayerAsync(), das die Regeln und die Reihenfolge für einen einzelnen Spieler bewertet. ConfigService:GetConfigAsync() wendet keine Zielsetzung an, da es nicht spezifisch für einen einzelnen Spieler ist. Für weitere Informationen siehe Fügen Sie Konfigurationen zu Ihrem Code hinzu.

Best Practices und Grenzen

  • Jeder bedingte Wert muss dem Datentyp (Boolean, String, Zahl oder JSON) des Standardwerts der Konfiguration entsprechen.
  • Sie können bis zu 100 Bedingungen pro Spiel haben.
  • Jeder Konfigurationsschlüssel unterstützt bis zu 20 Bedingungen.
  • Überprüfen Sie die Regelreihenfolge, bevor Sie veröffentlichen. Da Regeln global geordnet sind, bestätigen Sie, dass Ihre Bewertungsreihenfolge korrekt priorisiert ist. Um die Reihenfolge zu überprüfen, klicken Sie auf die Registerkarte Bedingungen.

Konfigurationen in Studio erstellen und bearbeiten

Wenn Sie möchten, können Sie Konfigurationen in Roblox Studio erstellen, bearbeiten, stufen und veröffentlichen. Klicken Sie auf Datei > Konfigurationen öffnen, um das Widget zu öffnen. Die Studio-Oberfläche ist besonders praktisch für das Stufen und Testen neuer Werte.

Studio-Fenster zur Arbeit mit Konfigurationen

Konfigurationen in eine andere Erfahrung veröffentlichen

In Studio können Sie Ihre Konfigurationen in eine andere Erfahrung veröffentlichen, wodurch die Konfigurationen für diese Erfahrung vollständig überschrieben werden. Dies kann besonders nützlich sein, um Konfigurationen von einer Staging- oder Entwicklungs-Erfahrung in die Live-Erfahrung zu synchronisieren.

  1. Gehen Sie in Roblox Studio zum oberen Menü und wählen Sie Datei > Konfigurationen öffnen.

  2. Klicken Sie im Veröffentlicht-Tab des Konfigurations-Widgets auf das ⋮-Symbol und wählen Sie Als veröffentlichen.

    Studio-Fenster zur Arbeit mit Konfigurationen
  3. Wählen Sie im Dialogfeld, das erscheint, die Ziel-Erfahrung aus der Liste der Gruppen aus, in denen Sie Bearbeitungsrechte haben.

    Konfigurationen in Erfahrungen veröffentlichen

Verlauf anzeigen und Konfigurationen wiederherstellen

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

Die Verlaufsseite mit erweitertem Diff für einen Konfigurationswert

  • 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 Zustand wiederherzustellen:

  1. Klicken Sie auf Wiederherstellen neben der Änderung, um den "vorher"-Wert zu stufen. Beachten Sie, dass das Wiederherstellen einer Konfiguration alle vorhandenen gestuften Änderungen verwirft.
  2. Kehren Sie zur Konfigurationen-Seite zurück und veröffentlichen Sie die Konfiguration.

Fügen Sie Konfigurationen zu Ihrem Code hinzu

Die Hauptklasse zur Arbeit mit Konfigurationen ist ConfigService, die die neuesten Schlüssel und Werte für Ihre Erfahrung 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 zur Arbeit mit Konfigurationen 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 in der Erfahrung anwenden möchten:

    local ConfigService = game:GetService("ConfigService")
    local configSnapshot = ConfigService:GetConfigAsync()
    local bossHealth = configSnapshot:GetValue("bossHealth")
  • ConfigService:GetConfigForPlayerAsync() ruft spielerspezifische Konfigurationen ab, sodass verschiedene Spieler unterschiedliche Werte erhalten können. Verwenden Sie es für bedingte Konfigurationen und Experimente.

    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)

In beiden Fällen, wenn der Schlüssel nicht existiert, gibt ConfigSnapshot:GetValue() nil zurück.

Autocomplete

Konfigurationen sind in die Autovervollständigung des Skripteditor integriert. Wenn Sie ConfigSnapshot:GetValue() aufrufen, schlägt der Editor die Namen Ihrer Konfigurationsschlüssel vor und zeigt den Typ jeder Konfiguration an, wenn Sie mit der Maus über den Variablennamen fahren.

Wenn Ihr Skript den Modus --!strict verwendet, kann der Linter den Typ für Sie erkennen und überprüfen.

Die Autovervollständigung funktioniert auch mit Konfigurationen, die komplexe verschachtelte JSON-Typen verwenden.

Snapshots aktualisieren

ConfigSnapshots repräsentieren einen Zeitpunkt, den Zustand der Konfiguration, als Sie den Snapshot angefordert haben. Um Störungen im Gameplay zu vermeiden, werden Updates an einer Konfiguration nicht automatisch an Snapshots weitergegeben. In einem wettbewerbsorientierten Shooter möchten Sie beispielsweise möglicherweise nur neue Konfigurationswerte zwischen den Runden, damit sich die Waffenattribute nicht mitten im Spiel ändern.

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 an einem bestimmten Schlüssel zu hören, damit Sie den Code Ihrer Erfahrung aktualisieren können:

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

Fehlerbehandlung

In seltenen Fällen, wenn die Konfiguration nicht geladen werden kann und noch nie zuvor geladen wurde, wirft ConfigService:GetConfigAsync() einen Fehler.

Wenn ConfigService die Verbindung zu den Roblox-Servern verliert, nachdem sie zuvor geladen wurde, gibt ConfigService:GetConfigAsync() einen Snapshot mit den zuletzt verfügbaren Werten zurück. Diese Snapshots versuchen, sich wieder zu verbinden und lösen das Ereignis UpdateAvailable aus, wenn sie erfolgreich neue Updates laden.

Wie Sie mit diesen ungewöhnlichen Situationen umgehen, liegt an 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.

Konfigurationen testen

ConfigService verfügt über integrierte Methoden zum vorübergehenden Testen von Konfigurationsänderungen sowohl in Studio als auch auf Live-Servern, ohne die gesamte Erfahrung 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 Lebensdauer 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.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.