Identity Providers #

Pragma Engine enables cross-play, cross-progression, and cross-platform experiences by supporting multiple identity providers with account linking. This allows players to start on one platform and link their account when switching to another platform.

Pragma maintains a Social ID and Player IDs independent of identity providers. The Social ID is shared across a studio’s whole portfolio, creating a single social ecosystem across games. Player IDs store game data and use a UUID, enabling cross-shard and cross-region transfers where relevant.

Identity providers are linked to a Pragma account and used for authentication and platform-specific social integration. These accounts are isolated from player and social data to enable seamless cross-platform experiences.

Test Provider #

The Pragma Engine test provider uses the name Unsafe Provider to indicate that it’s only for internal and testing use cases and should not be enabled in production. It can also be used in load testing to allow the creation of millions of test accounts.

Test Provider is enabled by default in development mode and disabled for production mode.

Quick Guides #

Configuring Identity Providers #

Add the relevant configuration code blocks to LocalConfig.yml (for testing) or CommonConfig.yml (for production) under the social section.

Steam configuration
social: 
  pluginConfigs:
    AccountService.steamIdentityProvider:
      class: "SteamIdentityProvider"
        config:
          appId: "$steamAppId"
          steamWebAPIKey: "$steamWebApiKey"
Discord configuration
social:
  pluginConfigs:
    AccountService.discordIdentityProvider:
      class: "DiscordIdentityProviderPlugin"
        config:
          clientId: "$discordClientId"
          clientSecret: "$discordClientSecret"
          redirectUri: "http://localhost:11000/v1/account/discord-redirect"

Managing identity providers in Portal #

  1. From the Social Pragma Portal, click Services, then click Accounts Service.

Navigate to Accounts Service

  1. Select the relevant player name to view individual account information.

Select a player name

  1. View the player’s identity providers.

View identity provider information