User Settings
Overview
The User Settings feature allows client applications to customize the Maestro SDK behavior based on user preferences. This enables personalized experiences including panel hiding, wager visibility, and overlay controls.
Basic Configuration
User settings override specific defaults defined in the SDK or default settings defined for that event. Multiple settings can be defined at a time.
' Hide the Bet panel
m.lib.userSettings = {bet: {hide_panel: true}}
' Show the Bet panel
m.lib.userSettings = {bet: {hide_panel: false}}
' Hide wagers in the Bet panel
m.lib.userSettings = {bet: {hide_wagers: true}}
' Show wagers in the Bet panel
m.lib.userSettings = {bet: {hide_wagers: false}}
' Disable Bet overlays
m.lib.userSettings = {bet: {disable_overlays: true}}
' Enable Bet overlays
m.lib.userSettings = {bet: {disable_overlays: false}}
Available Settings
Panel Settings
| Setting | Type | Description |
|---|---|---|
hide_panel | boolean | Show or hide the specified panel |
hide_wagers | boolean | Show or hide wagers within the panel |
disable_overlays | boolean | Enable or disable overlays for the panel |
Supported Panels
User settings can be configured for the following panels:
bet- Bet panel- Additional panels may be supported based on your Maestro configuration
Multiple Settings Example
You can configure multiple settings at once:
m.lib.userSettings = {
bet: {
hide_panel: false,
hide_wagers: true,
disable_overlays: false
}
}
Best Practices
- Persist User Preferences: Store user settings in Roku's registry to maintain preferences across app sessions
- Validate Settings: Ensure settings values are valid before applying them
- Update Dynamically: User settings can be updated at any time during the app lifecycle
- Respect User Choices: Honor user preferences for panel visibility and overlay behavior
Example: Storing User Preferences
' Save user preference to registry
sub saveUserPreference(key as String, value as Boolean)
sec = createObject("roRegistrySection", "UserPreferences")
sec.write(key, value.toStr())
sec.flush()
end sub
' Load user preference from registry
function loadUserPreference(key as String) as Boolean
sec = createObject("roRegistrySection", "UserPreferences")
if sec.exists(key) then
return sec.read(key) = "true"
end if
return false ' Default value
end function
' Apply saved preferences
sub applyUserSettings()
hideBetPanel = loadUserPreference("hideBetPanel")
hideWagers = loadUserPreference("hideWagers")
disableOverlays = loadUserPreference("disableOverlays")
m.lib.userSettings = {
bet: {
hide_panel: hideBetPanel,
hide_wagers: hideWagers,
disable_overlays: disableOverlays
}
}
end sub