Skip to content

What's new

This page lists what changed for game developers in the Web SDK (@frvraps/frvr-sdk). It covers new and changed APIs. Internal fixes are left out.

FRVR serves the latest released bundle from the CDN, so a game gets these changes without a rebuild. Additions are safe to feature‑detect, as shown on each linked page.

Merged, not yet released. These arrive in the release after 14.27.0.

  • FRVR.profile.getLocale(): the player’s locale as a BCP 47 tag. It uses the channel’s language on YouTube Playables and Facebook Instant, the browser’s elsewhere, and en-US as the last resort. See Profile › Locale.
  • FRVR.notifications.supportsLocalNotifications(): a synchronous check for local notification support that never prompts the player.
  • FRVR.notifications.unscheduleLocalNotification(code) and cancelAllLocalNotifications(). See Notifications.
  • The internationalization requirement now names FRVR.profile.getLocale(). Earlier versions of these docs named FRVR.locale.get() and FRVR.locale.onChange(), which never existed in the SDK.

Released between 23 June and 3 October 2026.

WhatSinceRead more
FRVR.audio: the sound and music toggles a host draws for the player14.23.0Audio state
FRVR.channelCharacteristics.hasNativeAudioControls and allowSharing14.23.0Channel characteristics
FRVR.hostUI.titlebar: read, hide, and follow the titlebar of FRVR’s native apps14.27.0Host UI
FRVR.config.host: titlebar, host session, and storage sandbox options14.27.0Configuration › host
FRVR.auth.requestLogin(): open the host’s login screen14.27.0Auth
FRVR.auth.getLoginCapabilities(): login methods and providers the channel offers14.27.0Auth
Web payments: Google Pay, Apple Pay, and card checkout on the web channel14.22.0IAP › Purchases on the web
FRVR.iap.getPurchaseOptions() and purchase(id, meta, { provider })14.22.0IAP › Purchases on the web
IAPPurchaseErrorPending, IAPPurchaseErrorPopupBlocked, IAPPurchaseErrorHeldByEconomy, IAPPurchaseErrorInProgress14.24.0IAP › Purchase
FRVR.config.iap.enabled: turn purchases off for a build14.21.0Configuration
frvr.com game page support: the page around the game owns the loader, login, share button, and audio toggles14.23.0Channels
Sign in with FRVR accounts in the Google Play, iOS, and Samsung Galaxy Store apps14.27.0Auth
  • FRVR.iap.onReady can fire more than once. It runs again when the player signs in to a different account mid‑session, so the game can restore that account’s purchases. Make the callback safe to run twice. See IAP › Account changes. (14.26.0)
  • A paid but unconfirmed web purchase now rejects. FRVR.iap.purchase() throws IAPPurchaseErrorPending instead of resolving, and the purchase arrives later through getUnconsumedPurchases(). (14.24.0)
  • FRVR.cloudStorage works on every channel. Channels without a cloud backend now store the data on the device instead of leaving the module unusable. That data doesn’t follow the player to another device. (14.20.0)
  • Facebook Instant scores are posted without a player name. Scores from players whose name the platform withholds used to be dropped. (14.25.0)
  • Purchases are turned off on YouTube Playables, which has no on‑platform payments. FRVR.iap.isReady() stays false there. (14.23.0)

These were wrong on the page, not changed in the SDK:

  • FRVR.auth.addStatusChangeListener passes a single boolean, isLoggedIn. The docs showed an object with isLoggedIn and platform. See Auth.
  • The profile image method is FRVR.profile.image(). The docs called it photo().
  • Analytics events don’t carry a locale field.
  • Email code login (FRVR.auth.requestEmailLoginCode) has been available since 14.18.0 and is now documented in Auth.