Konfiguracje doświadczenia pozwalają na aktualizację wartości w grze w czasie rzeczywistym bez ponownego uruchamiania serwerów:
- Włączanie i wyłączanie funkcji, takich jak uruchamianie lub wyłączanie nowego lochu wprowadzającego.
- Dostosowywanie wartości w grze, takich jak zdrowie bossa, zdobywanie doświadczenia lub ceny przedmiotów.
- Uruchamianie treści na czas, takich jak wydarzenie Halloween, które zaczyna się o północy.
Konfiguracje przyjmują formę kluczy i wartości. Zamiast używać stałych kodowanych na twardo w swoim kodzie, możesz użyć klucza, aby uzyskać wartość (ciąg, liczba, boolean lub obiekt JSON), a następnie zaktualizować tę wartość, kiedy tylko chcesz, bez publikowania nowej wersji swojego doświadczenia. Wymagane zmiany w kodzie są minimalne:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local myValue = configSnapshot:GetValue("my_key_name")
Możesz mieć jednocześnie do 1 000 aktywnych konfiguracji i zarządzać nimi w Creator Hub lub w Roblox Studio.

Tworzenie i edytowanie konfiguracji
Na stronie Konfiguracje w Creator Hub dla swojego doświadczenia kliknij Utwórz konfigurację.
Wprowadź klucz, typ, wartość i opcjonalnie opis, aby pomóc sobie lub swojemu zespołowi później zidentyfikować cel konfiguracji. Obsługiwane typy to ciąg, liczba, boolean i obiekt JSON.
Skopiuj wygenerowany fragment kodu do skryptu serwera w swoim doświadczeniu, prawdopodobnie w ServerScriptService. Kod powinien wyglądać mniej więcej tak:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local MY_KEY = "my_key" -- opcjonalnie, przechowuj klucz konfiguracji jako stałąlocal myValue = configSnapshot:GetValue(MY_KEY)Użyj wartości tak, jak każdej innej zmiennej. Konfiguracje nie robią nic dopóki nie użyjesz ich w swoim kodzie.
Aby uzyskać więcej informacji o pracy z konfiguracjami w swoich skryptach, zobacz Dodaj konfiguracje do swojego kodu.
Edycja konfiguracji nie różni się od tworzenia nowej. Kliknij przycisk Edytuj i zaktualizuj wartość oraz opis według potrzeb.
Limity
Wartości konfiguracji mają następujące limity w zależności od typu.
| Typ | Maksymalny rozmiar |
|---|---|
| Ciąg | 100 000 znaków |
| Liczba | ±1.7976931348623157e+308, ±2^53 dla dokładnych reprezentacji całkowitych |
| Boolean | N/D |
| JSON | 100 000 znaków |
Publikowanie konfiguracji
Po utworzeniu konfiguracji przechodzi ona w stan wstrzymany, abyś mógł ją przetestować, zanim stanie się dostępna publicznie. Zmiany wstrzymane są dostępne dla Ciebie i Twojego zespołu podczas sesji gry w Studio, nie dla graczy w żywych doświadczeniach. Strona Konfiguracje w Creator Hub pokazuje wszystkie aktywne i wstrzymane zmiany.

- Po przetestowaniu wstrzymanych zmian kliknij Opublikuj teraz, aby opublikować dla wszystkich graczy w ciągu pięciu minut. Możesz również wybrać Publikuj przez 15 min, jeśli wolisz dłuższy okres wprowadzania zmian.
- (Zalecane) Dodaj opisową wiadomość publikacyjną, która wskazuje, co zaktualizowałeś. Ta wiadomość pojawia się na stronie Historia i może pomóc Tobie i Twojemu zespołowi później zidentyfikować cel zmiany.
Tworzenie i edytowanie konfiguracji w Studio
Jeśli wolisz, możesz tworzyć, edytować, wstrzymywać i publikować konfiguracje w Roblox Studio. Kliknij Plik > Otwórz konfiguracje. Interfejs Studio jest szczególnie wygodny do wstrzymywania i testowania nowych wartości.

Wyświetlanie historii i przywracanie konfiguracji
Na stronie Konfiguracje kliknij Historia, aby zobaczyć wcześniejsze aktualizacje. Każda aktualizacja zawiera czas i datę zmiany, kto dokonał zmiany oraz wiadomość publikacyjną.

- Rozwiń każdy wiersz, aby zobaczyć klucz, wartość przed zmianą i wartość po niej.
- Użyj pola Szukaj klucz, aby wyszukiwać klucze - nie opisy ani wartości, tylko klucze.
Strona Historia umożliwia również przywracanie konfiguracji do poprzedniego stanu:
- Kliknij Przywróć obok zmiany, aby wstrzymać wartość „przed”. Zauważ, że przywrócenie konfiguracji odrzuca wszelkie istniejące wstrzymane zmiany.
- Wróć do strony Konfiguracje i opublikuj konfigurację.
Dodaj konfiguracje do swojego kodu
Główną klasą do pracy z konfiguracjami jest ConfigService, która pobiera najnowsze klucze i wartości dla Twojego doświadczenia. ConfigService jest dostępny tylko w skryptach serwera. Próba wywołania jej metod z skryptu klienta skutkuje błędem.
Pierwszym krokiem w pracy z konfiguracjami jest uzyskanie ConfigSnapshot, najnowszych wartości dla wszystkich konfiguracji w danym punkcie czasu. Istnieją dwa sposoby na uzyskanie migawki:
ConfigService:GetConfigAsync() jest przeznaczone dla globalnych konfiguracji, które chcesz zastosować do wszystkich graczy w doświadczeniu:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth")ConfigService:GetConfigForPlayerAsync() jest przeznaczone dla eksperymentów. Pobiera konfiguracje specyficzne dla gracza, aby różni gracze mogli uzyskać różne wartości.
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)
W obu przypadkach, jeśli klucz nie istnieje, ConfigSnapshot:GetValue() zwraca nil.
Odświeżanie migawek
ConfigSnapshots reprezentują punkt w czasie, stan konfiguracji w momencie, gdy poprosiłeś o migawkę. Aby uniknąć zakłóceń w rozgrywce, aktualizacje konfiguracji nie propagują się automatycznie do migawek. W konkurencyjnej strzelance, na przykład, możesz chcieć tylko nowych wartości konfiguracji między rundami, aby atrybuty broni nie wahały się w trakcie meczu.
Aby uzyskać najnowsze wartości ręcznie, użyj metody ConfigSnapshot:Refresh(). Opcjonalnie, podłącz funkcję do wydarzenia ConfigSnapshot.UpdateAvailable, aby automatycznie odświeżać:
configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)
Po odświeżeniu migawki możesz użyć ConfigSnapshot:GetValueChangedSignal(), aby nasłuchiwać zmiany konkretnego klucza, aby zaktualizować kod swojego doświadczenia:
configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)
Obsługa błędów
W rzadkich przypadkach, gdy konfiguracja nie uda się załadować i nigdy wcześniej nie była ładowana, ConfigService:GetConfigAsync() zgłasza błąd.
Jeśli ConfigService traci połączenie z serwerami Roblox po tym, jak wcześniej była załadowana, ConfigService:GetConfigAsync() zwraca migawkę z najnowszymi dostępnymi wartościami. Te migawki próbują nawiązać ponowne połączenie i uruchamiają wydarzenie UpdateAvailable, gdy pomyślnie załadują nowe aktualizacje.
Jak radzisz sobie z tymi rzadkimi sytuacjami, zależy od Ciebie. Możesz owinąć wywołanie w pcall() i mieć wartości zapasowe w swoim kodzie, pokazać graczowi błąd i czekać na ponowne połączenie migawki lub zastosować inne rozwiązanie.
Testuj konfiguracje
ConfigService ma wbudowane metody do tymczasowego testowania zmian w konfiguracjach zarówno w Studio, jak i na żywych serwerach bez wpływu na całe doświadczenie.
Aby ustawić lokalną wartość testową, wywołaj ConfigService:SetTestingValue() z poziomu skryptu serwera lub przez Konsolę dewelopera. Zmiany w wartościach testowych wyzwalają aktualizację konfiguracji wraz z sygnałem ConfigSnapshot.UpdateAvailable. Tak jak w przypadku aktualizacji produkcji, musisz odświeżyć istniejące migawki, aby uzyskać wartość testową:
local ConfigService = game:GetService("ConfigService")ConfigService:SetTestingValue("bossHealth", 200)local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth") -- Teraz 200!
Zmiany testowe mają zastosowanie przez czas działania bieżącego serwera i nie propagują się do innych serwerów. W Studio mają zastosowanie do bieżącej sesji gry i nie wpływają na żywe serwery. Możesz ręcznie usunąć zmiany testowe za pomocą ConfigService:ClearTestingValue().