Skip to main content

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

SettingTypeDescription
hide_panelbooleanShow or hide the specified panel
hide_wagersbooleanShow or hide wagers within the panel
disable_overlaysbooleanEnable 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