Konfiguracje doświadczeń

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Konfiguracje doświadczeń pozwalają na aktualizację wartości w grze w czasie rzeczywistym bez ponownego uruchamiania serwerów:

  • Włączanie i wyłączanie funkcji, takich jak włączenie lub wyłączenie nowego lochu wprowadzającego.
  • Dostosowywanie wartości w grze, takich jak zdrowie bossa, zdobywane doświadczenie lub ceny przedmiotów.
  • Uruchamianie treści czasowych, takich jak wydarzenie Halloween, które zaczyna się o północy.

Konfiguracje przyjmują formę kluczy i wartości. Zamiast używać stałych w kodzie, możesz użyć klucza, aby uzyskać wartość (ciąg, liczba, boolean lub obiekt JSON) i 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ć do 1,000 aktywnych konfiguracji w dowolnym momencie i zarządzać nimi w Creator Hub lub w Roblox Studio.

Przegląd strony Konfiguracji w Creator Hub

Tworzenie i edytowanie konfiguracji

  1. Na stronie Creator Hub Konfiguracje dla swojego doświadczenia, kliknij Utwórz konfigurację.

  2. Określ 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.

  3. 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" -- opcjonalne, przechowuj klucz konfiguracji jako stałą
    local myValue = configSnapshot:GetValue(MY_KEY)
  4. Użyj wartości tak, jak używasz każdej innej zmiennej. Konfiguracje nic nie robią, chyba że używasz ich w swoim kodzie.

Aby uzyskać więcej informacji na temat pracy z konfiguracjami w swoich skryptach, zobacz Dodaj konfiguracje do swojego kodu.

Edycja konfiguracji nie różni się od jej tworzenia. Kliknij przycisk Edytuj i zaktualizuj wartość oraz opis według potrzeb.

Limity

Wartości konfiguracji mają następujące limity według typu.

TypMaksymalny rozmiar
Ciąg100,000 znaków
Liczba±1.7976931348623157e+308, ±2^53 dla dokładnych reprezentacji całkowitych
BooleanN/A
JSON100,000 znaków

Publikowanie konfiguracji

Po utworzeniu konfiguracji przechodzi ona w stan wstępny, abyś mógł ją przetestować, zanim stanie się publicznie dostępna. Zmiany wstępne są dostępne dla Ciebie i Twojego zespołu w sesjach gry w Studio, ale nie dla graczy w aktywnych doświadczeniach. Strona Konfiguracje w Creator Hub pokazuje wszystkie aktywne i wstępne zmiany.

Strona Konfiguracji pokazująca nieopublikowane zmiany
  1. Po przetestowaniu swoich zmian wstępnych kliknij Opublikuj teraz, aby opublikować je dla wszystkich graczy niemal natychmiast (w przybliżeniu od 15 sekund do 1 minuty). Możesz również wybrać Opublikuj przez 15 minut, jeśli wolisz dłuższy, bardziej stopniowy okres wdrażania. W niektórych przypadkach klienci mogą potrzebować kilku minut, aby odzwierciedlić zmiany po publikacji.
  2. (Zalecane) Dodaj opisową wiadomość publikacyjną, która wskazuje, co zaktualizowałeś. Ta wiadomość pojawi 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ć, wstępnie ustawiać i publikować konfiguracje w Roblox Studio. Kliknij Plik > Otwórz konfiguracje, aby otworzyć widżet. Interfejs Studio jest szczególnie wygodny do wstępnego ustawiania i testowania nowych wartości.

Okno Studio do pracy z konfiguracjami

Publikowanie konfiguracji do innego doświadczenia

W Studio możesz publikować swoje konfiguracje do innego doświadczenia, co całkowicie nadpisuje konfiguracje dla tego doświadczenia. Może to być szczególnie przydatne do synchronizacji konfiguracji z doświadczenia wstępnego lub deweloperskiego do aktywnego doświadczenia.

  1. W Roblox Studio przejdź do górnego menu i wybierz Plik > Otwórz konfiguracje.

  2. W zakładce Opublikowane widżetu Konfiguracji kliknij ikonę ⋮ i wybierz Opublikuj jako.

    Okno Studio do pracy z konfiguracjami
  3. W oknie dialogowym, które się pojawi, znajdź i wybierz docelowe doświadczenie z listy grup, w których masz uprawnienia do edycji.

    Publikowanie konfiguracji do doświadczeń

Wyświetlanie historii i przywracanie konfiguracji

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

Strona historii z rozwiniętym różnicowaniem dla wartości konfiguracji

  • 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 pozwala również przywrócić konfiguracje do poprzedniego stanu:

  1. Kliknij Przywróć obok zmiany, aby wstępnie ustawić wartość "przed". Zauważ, że przywrócenie konfiguracji odrzuca wszelkie istniejące zmiany wstępne.
  2. 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 dla skryptów serwera. Próba wywołania jego metod z skryptu klienta skutkuje błędem.

Pierwszym krokiem do pracy z konfiguracjami jest pobranie ConfigSnapshot, najnowszych wartości dla wszystkich konfiguracji w danym momencie. Istnieją dwie metody uzyskania 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 specyficzne dla gracza konfiguracje, aby różni gracze mogli otrzymać 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")
    end
    Players.PlayerAdded:Connect(onPlayerAdded)

W każdym przypadku, jeśli klucz nie istnieje, ConfigSnapshot:GetValue() zwraca nil.

Autouzupełnianie

Konfiguracje są zintegrowane z autouzupełnianiem w Edytorze Skryptów. Kiedy wywołujesz ConfigSnapshot:GetValue(), edytor sugeruje nazwy kluczy konfiguracji i wyświetla typ każdej konfiguracji, gdy najedziesz na nazwę zmiennej.

Jeśli Twój skrypt używa trybu --!strict, linter może wykryć i zweryfikować typ za Ciebie.

Autouzupełnianie działa również z konfiguracjami, które używają złożonych zagnieżdżonych typów JSON.

Odświeżanie migawek

ConfigSnapshots reprezentują punkt w czasie, stan konfiguracji, gdy poprosiłeś o migawkę. Aby uniknąć zakłócania rozgrywki, aktualizacje konfiguracji nie propagują się automatycznie do migawek. W przypadku konkurencyjnego strzelca, na przykład, możesz chcieć, aby nowe wartości konfiguracji były dostępne tylko między rundami, aby atrybuty broni nie zmieniały się w trakcie meczu.

Aby ręcznie uzyskać najnowsze wartości, użyj metody ConfigSnapshot:Refresh(). Opcjonalnie, połącz funkcję z wydarzeniem 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ć zmian w konkretnym kluczu, 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 ładuje się i nigdy wcześniej nie była ładowana, ConfigService:GetConfigAsync() zgłasza błąd.

Jeśli ConfigService traci połączenie z serwerami Roblox po wcześniejszym załadowaniu, ConfigService:GetConfigAsync() zwraca migawkę z najnowszymi dostępnymi wartościami. Te migawki próbują ponownie połączyć się i uruchamiają zdarzenie UpdateAvailable, gdy pomyślnie załadują nowe aktualizacje.

Jak poradzisz 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.

Testowanie konfiguracji

ConfigService ma wbudowane metody do tymczasowego testowania zmian konfiguracji 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 skryptu serwera lub przez Konsolę Dewelopera. Zmiany wartości testowych wyzwalają aktualizację konfiguracji wraz z sygnałem ConfigSnapshot.UpdateAvailable. Tak jak w przypadku aktualizacji produkcyjnej, 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 obowiązują 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 wyczyścić zmiany testowe za pomocą ConfigService:ClearTestingValue().

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.