Features
โข ๐ฎ Xbox Store IAP โ Full Xbox Store purchase flow from the client: GetXboxServiceTicket() retrieves a collection ID and purchase token, RedeemXboxStorePurchaseForPlayer() and RedeemXboxStorePurchaseForClass() redeem the purchase through LootLocker.
โข ๐ฅ Multi-User Session Modes โ Three new session management strategies via ELootLockerMultiUserSessionMode:
- Hotseat โ Multiple players can hold active sessions simultaneously. The first authenticated player is the default. Ideal for local multiplayer / couch co-op.
- SingleSession โ Starting a new session automatically ends the previous one. The default for new SDK installs.
- ProfileSwitching โ The current player is deactivated but kept in a cold cache. Use
SetPlayerUlidToActiveto switch back without re-authenticating.
Existing projects auto-migrate to Hotseat for backwards compatibility. See the multi-user guide for details.
โข ๐ซ Player Ban Support โ GetPlayerBanStatus() lets you query whether a player is banned and why. Ban details (reason, dates, permanent flag) are also now included in FLootLockerErrorData.ban when a session start fails with the player_banned error code.
โข ๐ก Connection State Check โ CheckConnectionStatus() pings the LootLocker server and returns a detailed ELootLockerConnectionState (8 states: SignedInAndConnected, SessionExpired, Banned, NoConnection, ServerError, etc.). Automatically queries ban status on 401/403 responses so you get a precise reason when something goes wrong.
โข ๐ Catalog Items by ID โ ListCatalogItemsById() looks up catalog entries directly by catalog_listing_id (up to 100 at a time). Returns inlined entity details (asset, currency, progression, group with nested associations) and optional metadata with key filtering.
โข ๐ Leaderboard Upcoming Resets โ FLootLockerLeaderboardUpcomingReset struct and Upcoming_resets array now exposed on leaderboard details, so you can surface pending manual resets in your UI.
โข ๐ค Character ULID โ FLootLockerListCharacterResponseItem now includes a ulid field.
โข ๐ Notification Asset Instance IDs โ FLootLockerNotificationRewardAsset now exposes Asset_instance_ids, listing the specific instance IDs granted for multi-quantity purchases.
โข ๐ง File-Based Pre-Configuration โ Place a LootLockerPreConfig.bytes file in the plugin's Config directory to override ALL SDK settings without touching DefaultGame.ini. Supports plain JSON or AES-256-ECB encrypted content. Editor UI is locked when active, preventing drift. Ideal for CI/CD pipelines.
โข ๐ฃ In-Editor Update Checker โ Tools โ LootLocker Tools โ Check for Updates queries GitHub Releases and shows a non-modal notification when a newer SDK is available. Options: Update Now, Skip This Version, Remind in 7 Days, Never Notify. Auto-checks on startup after 180s.
โข ๐ Credential Obfuscation โ 14 additional sensitive fields (steam_ticket, id_token, auth_code, bearer_token, etc.) are now redacted in log output, and all request/response bodies pass through ObfuscateJsonStringForLogging().
Fixes
โข Fixed FindPlugin string literals โ wrapped in TEXT() macro for correct Unicode handling.
โข Fixed test runner script โ proper process timeout handling prevents hung CI runs; commas in test filters now correctly translate to UE automation OR syntax.
โข Fixed compile verification script โ path corrected from scripts/verify-compile.ps1 to .github\scripts\verify-compilation.ps1 with proper -Clean flag support.
Deprecations
โข FLootLockerCatalogGroupMetadata โ Marked deprecated (was never used and will be removed).
Full Changelog: v10.4.0...v10.5.0