![]() |
LootLocker Unreal SDK 10.4.0
Game backend SDK for Unreal Engine
|
Initiate and validate purchases — both real-money (IAP) and virtual-currency.
Real-money purchases integrate with first-party payment systems (Apple App Store, Google Play, Steam) to process and server-side validate IAP receipts. Virtual purchases debit a player's Wallet and grant the catalog item. Both flows produce an entitlement inspectable via Entitlements.
See the LootLocker documentation — Real-Money Purchases and Virtual Purchases.
| typedef void(* FActivateRentalAssetResponseDelegate) (FLootLockerActivateRentalAssetResponse) |
C++ response callback delegate; receives an FLootLockerActivateRentalAssetResponse result.
| typedef void(* FLootLockerAsyncPurchaseInitiatedDelegate) (FLootLockerAsyncPurchaseInitiatedResponse) |
C++ response callback delegate; receives an FLootLockerAsyncPurchaseInitiatedResponse result.
| typedef void(* FLootLockerAsyncPurchaseStatusDelegate) (FLootLockerAsyncPurchaseStatusResponse) |
C++ response callback delegate; receives an FLootLockerAsyncPurchaseStatusResponse result.
| typedef void(* FLootLockerBeginSteamPurchaseRedemptionDelegate) (FLootLockerBeginSteamPurchaseRedemptionResponse) |
C++ response callback delegate; receives an FLootLockerBeginSteamPurchaseRedemptionResponse result.
| typedef void(* FLootLockerCreateStripeCheckoutSessionDelegate) (FLootLockerCreateStripeCheckoutSessionResponse) |
C++ response callback delegate; receives an FLootLockerCreateStripeCheckoutSessionResponse result.
| typedef void(* FLootLockerQuerySteamPurchaseRedemptionStatusDelegate) (FLootLockerQuerySteamPurchaseRedemptionStatusResponse) |
C++ response callback delegate; receives an FLootLockerQuerySteamPurchaseRedemptionStatusResponse result.
| typedef void(* FLootLockerRefundByEntitlementIdsDelegate) (FLootLockerRefundByEntitlementIdsResponse) |
C++ response callback delegate; receives an FLootLockerRefundByEntitlementIdsResponse result.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
static |
Activate a purchased rental asset so it becomes available to the player.
| AssetInstanceId | Asset instance id |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Begin a Steam purchase (player) that can later be finalized and redeemed.
Use QuerySteamPurchaseRedemptionStatus for status; finalize with FinalizeSteamPurchaseRedemption when Approved.
| SteamId | Steam user id |
| Currency | Currency code |
| Language | Language code |
| CatalogItemId | Catalog item id |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Begin a Steam purchase (class) to later finalize and redeem to that class.
Use QuerySteamPurchaseRedemptionStatus for status; finalize with FinalizeSteamPurchaseRedemption when Approved.
| ClassId | Class id |
| SteamId | Steam user id |
| Currency | Currency code |
| Language | Language code |
| CatalogItemId | Catalog item id |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Cancel an ongoing async purchase polling process.
| ProcessID | The process id returned by StartAsyncPurchasePolling |
|
static |
Create a Stripe Checkout session for a catalog item.
This initiates a Stripe-hosted checkout flow. The response contains a checkout_link — open it in a browser or webview so the player can complete the payment on Stripe's hosted checkout page. The response also contains an entitlement_id which can be used to track the purchase progress via the entitlements endpoint.
Stripe in-app purchases must be configured in the LootLocker dashboard for this to work.
| CatalogItemId | The ULID of the catalog item to purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Finalize an Approved Steam purchase and redeem associated catalog items.
| EntitlementId | Entitlement id (must be Approved) |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Get the current status of an async purchase.
| EntitlementId | The entitlement id returned when initiating the async purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Initiate an async purchase of one or more catalog items using a specified wallet.
| WalletId | The id of the wallet to use for the purchase |
| Items | The catalog items with quantities to purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Purchase multiple catalog items (with quantities) using a wallet.
| WalletId | Wallet id to debit |
| ItemsToPurchase | Items and quantities to purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Purchase a single catalog item using a wallet.
| WalletId | Wallet id to debit |
| CatalogItemListingId | Catalog item listing id to purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Query Steam purchase status for an entitlement (poll until Approved before finalizing).
| EntitlementId | Entitlement id |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem an Apple App Store transaction for a class.
| ClassId | Class id to receive items |
| TransactionId | Apple transaction id |
| Sandboxed | Optional: Redeem against sandbox store (default false) |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem an Apple App Store transaction for the player.
| TransactionId | Apple transaction id |
| Sandboxed | Optional: Redeem against sandbox store (default false) |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem Epic Games Store entitlements for the player.
| AccountId | Epic account id |
| BearerToken | Epic bearer/auth token (server auth ticket) |
| EntitlementIds | Entitlement ids to redeem |
| SandboxId | Epic sandbox id |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem Epic Games Store entitlements for a character.
| CharacterId | Character ULID |
| AccountId | Epic account id |
| BearerToken | Epic bearer/auth token |
| EntitlementIds | Entitlement ids to redeem |
| SandboxId | Epic sandbox id (use for sandbox purchases) |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem a Google Play Store purchase for a class.
| ClassId | Class id |
| ProductId | Product id |
| PurchaseToken | Google Play purchase token |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Redeem a Google Play Store purchase for the player.
| ProductId | Product id |
| PurchaseToken | Google Play purchase token |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Refund one or more entitlements by their IDs.
Submits a refund request for the specified entitlement IDs. Assets associated with the entitlements will be removed from the player's inventory where possible, the original purchase currency will be credited back, and any currency rewards tied to the entitlement will be clawed back. The response includes details on what was reversed and any warnings for items that could not be fully reversed.
| EntitlementIds | The IDs of the entitlements to refund |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Retry a failed async purchase.
| EntitlementId | The entitlement id of the failed purchase |
| WalletId | The id of the wallet to use for the retry |
| Items | The catalog items with quantities from the original purchase |
| OnCompletedRequest | Delegate for handling the server response |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
|
static |
Initiate an async purchase and automatically poll for its result.
While pending, OnStatusUpdate is called on each poll. When the purchase reaches a terminal state (active or failed, or timeout), OnComplete is called.
| WalletId | The id of the wallet to use for the purchase |
| Items | The catalog items with quantities to purchase |
| OnStatusUpdate | Delegate called on each poll while the purchase is pending |
| OnComplete | Delegate called when the purchase reaches a terminal state |
| PollingIntervalSeconds | How often to poll in seconds (minimum 1) |
| TimeoutAfterMinutes | How many minutes before the process times out |
| ForPlayerWithUlid | Optional: Execute for the specified player ULID (default player if empty) |
Data Structures | |
| struct | FLootLockerAsyncPurchaseProcess |
| struct | FLootLockerCreateStripeCheckoutSessionRequest |
| Request to create a Stripe Checkout session for a catalog item. More... | |
| struct | FLootLockerCreateStripeCheckoutSessionResponse |
| Response from creating a Stripe Checkout session. More... | |
Functions | |
| static FString | ULootLockerSDKManager::ActivateRentalAsset (int AssetInstanceId, const FActivateRentalAssetResponseDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Activate a purchased rental asset so it becomes available to the player. | |
| static FString | ULootLockerSDKManager::LootLockerPurchaseSingleCatalogItem (const FString &WalletId, const FString &CatalogItemListingId, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Purchase a single catalog item using a wallet. | |
| static FString | ULootLockerSDKManager::LootLockerPurchaseCatalogItems (const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > ItemsToPurchase, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Purchase multiple catalog items (with quantities) using a wallet. | |
| static FString | ULootLockerSDKManager::RedeemAppleAppStorePurchaseForPlayer (const FString &TransactionId, const FLootLockerDefaultDelegate &OnCompletedRequest, bool Sandboxed=false, const FString &ForPlayerWithUlid="") |
| Redeem an Apple App Store transaction for the player. | |
| static FString | ULootLockerSDKManager::RedeemAppleAppStorePurchaseForClass (const int ClassId, const FString &TransactionId, const FLootLockerDefaultDelegate &OnCompletedRequest, bool Sandboxed=false, const FString &ForPlayerWithUlid="") |
| Redeem an Apple App Store transaction for a class. | |
| static FString | ULootLockerSDKManager::RedeemGooglePlayStorePurchaseForPlayer (const FString &ProductId, const FString &PurchaseToken, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Redeem a Google Play Store purchase for the player. | |
| static FString | ULootLockerSDKManager::RedeemGooglePlayStorePurchaseForClass (const int ClassId, const FString &ProductId, const FString &PurchaseToken, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Redeem a Google Play Store purchase for a class. | |
| static FString | ULootLockerSDKManager::RedeemEpicStorePurchase (const FString &AccountId, const FString &BearerToken, const TArray< FString > &EntitlementIds, const FString &SandboxId, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Redeem Epic Games Store entitlements for the player. | |
| static FString | ULootLockerSDKManager::RedeemEpicStorePurchaseForCharacter (const FString &CharacterId, const FString &AccountId, const FString &BearerToken, const TArray< FString > &EntitlementIds, const FString &SandboxId, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Redeem Epic Games Store entitlements for a character. | |
| static FString | ULootLockerSDKManager::BeginSteamPurchaseRedemption (const FString &SteamId, const FString &Currency, const FString &Language, const FString &CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Begin a Steam purchase (player) that can later be finalized and redeemed. | |
| static FString | ULootLockerSDKManager::BeginSteamPurchaseRedemptionForClass (const int ClassId, const FString &SteamId, const FString &Currency, const FString &Language, const FString &CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Begin a Steam purchase (class) to later finalize and redeem to that class. | |
| static FString | ULootLockerSDKManager::QuerySteamPurchaseRedemptionStatus (const FString &EntitlementId, const FLootLockerQuerySteamPurchaseRedemptionStatusDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Query Steam purchase status for an entitlement (poll until Approved before finalizing). | |
| static FString | ULootLockerSDKManager::FinalizeSteamPurchaseRedemption (const FString &EntitlementId, const FLootLockerDefaultDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Finalize an Approved Steam purchase and redeem associated catalog items. | |
| static FString | ULootLockerSDKManager::InitiateAsyncPurchaseCatalogItems (const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseInitiatedDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Initiate an async purchase of one or more catalog items using a specified wallet. | |
| static FString | ULootLockerSDKManager::GetAsyncPurchaseStatus (const FString &EntitlementId, const FLootLockerAsyncPurchaseStatusDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Get the current status of an async purchase. | |
| static FString | ULootLockerSDKManager::RetryAsyncPurchase (const FString &EntitlementId, const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseInitiatedDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Retry a failed async purchase. | |
| static FString | ULootLockerSDKManager::StartAsyncPurchasePolling (const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseStatusDelegate &OnStatusUpdate, const FLootLockerAsyncPurchaseStatusDelegate &OnComplete, float PollingIntervalSeconds=1.0f, float TimeoutAfterMinutes=5.0f, const FString &ForPlayerWithUlid="") |
| Initiate an async purchase and automatically poll for its result. | |
| static void | ULootLockerSDKManager::CancelAsyncPurchasePolling (const FString &ProcessID) |
| Cancel an ongoing async purchase polling process. | |
| static FString | ULootLockerSDKManager::RefundByEntitlementIds (const TArray< FString > &EntitlementIds, const FLootLockerRefundByEntitlementIdsDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Refund one or more entitlements by their IDs. | |
| static FString | ULootLockerSDKManager::CreateStripeCheckoutSession (const FString &CatalogItemId, const FLootLockerCreateStripeCheckoutSessionDelegate &OnCompletedRequest, const FString &ForPlayerWithUlid="") |
| Create a Stripe Checkout session for a catalog item. | |