Skip to main content

Game Client Configuration

There are two configuration surfaces:

  • SdkConfig — provided by the wrapper to the game. It becomes available on sdk.config after openGame() resolves (accessing it earlier throws). The game MUST treat it as read-only.
  • WrapperConfig — sent by the game to the wrapper via sdk.configure(...), before openGame().
// Game -> wrapper (before openGame)
await sdk.configure({ gameName: 'myGame', gameVersion: '1.0.0' })

await sdk.openGame()

// Wrapper -> game (after openGame)
const config: SdkConfig = sdk.config

The authoritative, generated reference is SdkConfig.

SdkConfig.api

Session and integration parameters. The game SHOULD NOT need most of these — they exist for the wrapper and plugins — but they are exposed for display and integration-specific logic.

FieldTypeDescription
brandstringBrand (casino operator) identifier. Default: ''.
cashierUrlstring | undefinedURL of the casino cashier, when the integration provides one.
coinValueInCentsnumberValue of one coin in cents; used to convert coin amounts to money. Default: 1.
countrystringPlayer country code. Default: ''.
currencystringPlayer currency code. Default: ''.
gamestringGame identifier (game code). Default: ''.
gameHistoryUrlstringURL of the game history service. Default: ''.
homeUrlstring | undefinedCasino lobby / home URL, when provided by the integration.
integrationstringCasino integration identifier. Default: ''.
integrationDataunknownOpaque integration-specific payload passed through by the casino plugin.
jurisdictionstring | nullRegulatory jurisdiction code, or null when not set. Default: null.
playMode'FUN' | 'REAL'Whether the session is for fun (demo) or real money. Default: 'FUN'.
userstringUser identifier. Default: ''.
usernamestringDisplay username. Default: ''.
sessionIdstringSession identifier. Default: a random UUID.
backendSessionIdstring | undefinedBackend (RGS) session identifier, when distinct from sessionId.

SdkConfig.ui

UI parameters MUST be used to change how the Game Client UI is presented to players.

feature

Boolean flags toggling wrapper/game UI elements and capabilities. All default to false except showCurrency, showPromoPanel and showUi, which default to true.

FlagDescription
allowTelemetryEnables telemetry event collection.
allowFullscreenAllows switching the game to fullscreen.
allowGambleAllows the gamble feature.
allowQuickStopAllows the player to quick-stop a spin (implies no minimum spin duration).
showCashierShows the cashier entry point.
showClockShows the clock in the wrapper UI.
showCloseGameShows the close-game button.
showCurrencyShows the currency symbol next to monetary amounts.
showDeconstructedBetShows the bet deconstructed into base bet and multiplier.
showFastPlayShows the fast-play (turbo) option.
showFeatureBuyShows the feature-buy option.
showFeatureIntroShows the feature intro screen.
showFeatureOutroShows the feature outro screen.
showFunModeBannerShows a banner indicating fun (demo) mode; only applies when playMode is 'FUN'.
showHistoryShows the game-history entry point.
showLowWinCelebrationShows a celebration for low wins.
showMaximumWinShows the maximum-win information.
showNetPositionShows the player's net position for the session.
showPaylineLinesShows payline lines on wins.
showPaytableShows the paytable entry point.
showPromoPanelShows the promo panel.
showRoundIdShows the round identifier.
showRtpShows the RTP value.
showRulesShows the game-rules entry point.
showSessionDurationShows the elapsed session duration.
showUiShows the game UI as a whole.

autoplay

FieldTypeDefaultDescription
enabledbooleanfalseEnables autoplay.
roundsAutoplayLimitdisabledLimit on the number of autoplay rounds.
lossLimitAutoplayLimitdisabledAutoplay stop condition based on accumulated loss.
winLimitAutoplayLimitdisabledAutoplay stop condition based on a single/accumulated win.
simplebooleanfalseUses the simplified autoplay UI (no limit configuration).
stopOnFeaturebooleanfalseStops autoplay when a feature is triggered.
type AutoplayLimit = {
enabled: boolean
showNoLimit: boolean // offer a "no limit" option
showCustomLimit: boolean // allow entering a custom value
options: number[] // predefined values to choose from
}

Each AutoplayLimit defaults to { enabled: false, showNoLimit: false, showCustomLimit: false, options: [] }.

realityCheck

Controls which elements the reality-check popup presents.

type RealityCheckConfig = {
sessionDurationPeriodFormat: 'seconds' | 'minutes' | 'hours'
showCloseGame: boolean
showHistory: boolean
showNetPosition: boolean
showSessionDuration: boolean
showSumBets: boolean
showSumWins: boolean
}

Defaults: sessionDurationPeriodFormat: 'minutes', all show* flags false.

cashier

type CashierConfig = {
enabled: boolean
balanceThreshold: number[] // balance levels below which the cashier is suggested
}

Default: { enabled: false, balanceThreshold: [0] }.

Other UI parameters

FieldTypeDefaultDescription
languagestring'en'UI language code. See Localization.
minimumSpinDurationnumber0Minimum spin duration the game MUST honour (regulatory requirement in some jurisdictions).
requestTimeoutMsnumber10000Timeout for RGS requests in milliseconds.
incompleteGameResolutionsee below{ type: 'NONE' }How incomplete game rounds are resolved.
skipInsufficientFundsCheckbooleanfalseSkips the client-side insufficient-funds check before play.
skipSplashbooleanfalseSkips the splash screen.
cheatPanelbooleanfalseEnables the cheat panel (dev/test environments only).
type IncompleteGameResolution =
| { type: 'NONE' | 'MANUAL' }
| { type: 'AUTOMATIC'; daysToAutoResolution: number }

WrapperConfig

The game MUST call sdk.configure(...) before openGame(). The payload is Partial<WrapperConfig> — omitted fields keep the wrapper defaults.

FieldTypeDescription
gameNamestringName of the game.
gameVersionstringVersion of the game build.
sdkVersionstringSDK version. Auto-filled by configure() with the running SDK's version — the game MUST NOT set it.
showFreeRoundsbooleanWhether the wrapper handles the free-rounds UI.
showPromoPanelbooleanWhether the wrapper shows the promo panel.
showRealityCheckbooleanWhether the wrapper shows the reality-check popup.
showErrorsbooleanWhether the wrapper displays error popups.
showBarsbooleanWhether the wrapper renders the top/bottom UI bars.
skipErrors(RgsErrorCode | 'TIMEOUT')[]RGS error codes the wrapper MUST NOT handle, leaving handling to the game. See Error Handling.