Configs
This API is used to retrieve configurations from the Gamebeast platform.
For more information about Configurations, visit the Configurations Guide.
var gamebeastConfigs = GamebeastSdk.Configs;Values are addressed by dot-path where the first segment is the configuration alias: "MyConfig.PlayerSpeed" reads the PlayerSpeed key of the MyConfig configuration. Paths can reach deeper ("MyConfig.UI.ButtonColor") and index arrays ("MyConfig.Levels.0"). A bare alias ("MyConfig") returns the whole configuration document.
Configurations are evaluated for the local user: if the user is enrolled in an active experiment, the values returned already include the assigned group's changes.
Configurations load on demand. The first access through any of these methods fetches the configuration automatically. Declaring configurations in GamebeastSettings.Configurations additionally preloads them at startup and lets OnReady await them. Configurations are cached on-device, so values are available instantly on launch and offline.
Get<TValue>(configPath)
TValuereturn type
This method retrieves a configuration value from Gamebeast, converted to TValue. Returns
default(TValue) when the path is missing or the configuration has not loaded yet. Prefer Observe
when the value may still be loading.
configPathstringThe path of the configuration value to retrieve.
Usage
var playerSpeed = gamebeastConfigs.Get<float>("MyConfig.PlayerSpeed");
// Whole configuration document into a class
public class MyConfigData
{
public float PlayerSpeed;
}
var myConfig = gamebeastConfigs.Get<MyConfigData>("MyConfig");Get<TValue>(configPath, defaultValue)
TValuereturn type
This method retrieves a configuration value from Gamebeast, falling back to defaultValue when the
path is missing or conversion fails.
configPathstringThe path of the configuration value to retrieve.
defaultValueTValueThe value returned when the path is missing or conversion fails.
Usage
var playerSpeed = gamebeastConfigs.Get("MyConfig.PlayerSpeed", 16f);TryGet<TValue>(configPath, out value)
boolreturn type
This method attempts to retrieve a configuration value from Gamebeast. Returns false when the path
is missing or conversion fails.
configPathstringThe path of the configuration value to retrieve.
valueout TValueThe retrieved value when the method returns true.
Usage
if (gamebeastConfigs.TryGet<float>("MyConfig.PlayerSpeed", out var playerSpeed))
{
// Value was available, do something.
}IsReady
boolreturn type
This property indicates whether all configurations declared in GamebeastSettings.Configurations have been loaded and are ready to be accessed.
Usage
if (gamebeastConfigs.IsReady)
{
// Configurations are ready to be accessed, do something.
}OnReady(callback)
IDisposablereturn type
This callback is triggered when the configurations declared in GamebeastSettings.Configurations are fully loaded and ready to be accessed.
If the configurations are already loaded, the callback will be invoked immediately upon subscription.
callbackActionThe callback function to be invoked when configurations are ready.
Usage
gamebeastConfigs.OnReady(() =>
{
// Configurations are ready to be accessed, do something.
});OnChanged(configPath, callback)
IDisposablereturn type
This callback is triggered whenever the value at a specific configuration path changes. It does not fire for the initial load; use Observe for that.
configPathstringThe path of the configuration value to listen for changes.
callbackActionThe callback function to be invoked when the value changes.
Usage
gamebeastConfigs.OnChanged("MyConfig.PlayerSpeed", () =>
{
var newValue = gamebeastConfigs.Get<float>("MyConfig.PlayerSpeed");
Debug.Log($"Config 'MyConfig.PlayerSpeed' changed! New value: {newValue}");
});Observe<TValue>(configPath, callback)
IDisposablereturn type
Similar to OnChanged, this callback fires with the current value as soon as it is available, and again with the new value each time it changes. This is the best fit for values that may still be loading.
configPathstringThe path of the configuration value to observe.
callbackAction<TValue>The callback function to be invoked with the value when it is ready, or is changed.
Usage
gamebeastConfigs.Observe<float>("MyConfig.PlayerSpeed", playerSpeed =>
{
Debug.Log($"Player speed is now {playerSpeed}");
});RefreshAsync()
Taskreturn type
This method forces a refresh of all known configurations now, in addition to the automatic background refresh.
Usage
await gamebeastConfigs.RefreshAsync();