Provider Entitlements #

The Provider Entitlement feature seamlessly integrates with third-party providers’ monetization systems to grant players the items from their entitlements. Pragma Engine supports preimplemented and custom entitlement plugins to integrate with a provider of your choice:

  • Epic Games Store
  • Steamworks
  • Twitch
  • PlayStation
  • a custom plugin for all other cases
For information on how to integrate with Playstation, contact us for details.

In the following sections, we’ll go over entitlements, the Provider Entitlement flow, integration steps with Pragma Engine, and how to create a custom plugin.

Understanding Entitlements #

An “entitlement” refers to an item a player owns in a third-party provider’s system. Entitlements include cosmetics, DLCs, and in-game currency. Below are two circumstances for why players might receive an entitlement on their account:

  • an item was purchased or redeemed on the third-party provider’s store
  • a watch time quota was met (e.g. Twitch Drops)

For a player to receive their items, entitlements must be mapped to Pragma Engine’s Content Data system. This creates identifiers that Pragma Engine uses to grant players the corresponding content from their entitlements. Third-party provider’s entitlements can be mapped to these data types in Pragma Engine: instanced item, stackable item and item bundle. See Items for more information about these data types.

Flow Overview #

Below are examples demonstrating how a player can receive their items through the Provider Entitlement flow:

  1. A player makes a purchase in Epic Games Store for 100 gems.
  2. Epic Games Store processes payment and associates the entitlement to the player’s account.
  3. The entitlement has an identifier which Pragma Engine’s Content Data system knows to interpret as 100 gems.
  4. syncEntitlements is called. This endpoint handles the logic for granting items to the player:
    • Pragma Engine uses the Epic Entitlement Provider Plugin to query for the player’s entitlements from Epic Games Store and sees an unused entitlement.
    • The Epic Entitlement Provider Plugin notifies Epic Games Store to mark the entitlement as consumed and grants the player 100 gems.
    • Pragma Engine records which entitlements have been granted through the fullfillment database table in the Inventory service; this prevents repeated processing of entitlements.
  1. A player makes a purchase in Steam for 100 gems.
  2. Steam processes payment and associates the entitlement to the player’s account.
  3. The entitlement has an identifier which Pragma Engine’s Content Data system knows to interpret as 100 gems.
  4. syncEntitlements is called. This endpoint handles the logic for granting items to the player:
    • Pragma Engine uses the Steam Entitlement Provider Plugin to query for the player’s entitlements from Steam and sees an unused entitlement.
    • The Steam Entitlement Provider Plugin notifies Steam to mark the entitlement as consumed and grants the player 100 gems.
    • Pragma Engine records which entitlements have been granted through the fullfillment database table in the Inventory service; this prevents repeated processing of entitlements.
  1. A viewer watches an eligible channel with enabled Twitch Drops and meets the watch time quota.
  2. On Twitch the viewer claims their Drop of 100 gems which associates the entitlement to the viewer’s account.
  3. The entitlement has an identifier which Pragma Engine’s Content Data system knows to interpret as 100 gems.
  4. syncEntitlements is called. This endpoint handles the logic for granting items to the viewer:
    • Pragma Engine uses the Twitch Entitlement Provider Plugin to query for the viewer’s entitlements from Twitch and sees an unused entitlement.
    • The Twitch Entitlement Provider Plugin notifies Twitch to mark the entitlement as consumed and grants the player 100 gems.
    • Pragma Engine records which entitlements have been granted through the fullfillment database table in the Inventory service; this prevents repeated processing of entitlements.
  1. A player makes a purchase in the third-party provider’s store interface for 100 gems.
  2. After processing payment, the provider gives the player’s account an entitlement.
  3. The entitlement has an identifier which Pragma Engine’s Content Data system knows to interpret as 100 gems.
  4. syncEntitlements is called. This endpoint handles the logic for granting items to the player:
    • Pragma Engine uses the Entitlement Provider Plugin to query for the player’s entitlements from the provider and sees an unused consumable entitlement.
    • The Entitlement Provider Plugin notifies the provider to mark the entitlement as consumed and grants the player 100 gems.
    • Pragma Engine records which entitlements have been granted through the fullfillment database table in the Inventory service; this prevents repeated processing of entitlements.

Contents #

TopicDescription
Integrate and Use Provider EntitlementsIntegrating and using Provider Entitlements with third-party providers.