Gamepass Ownership When Bought or Delete From Website

I read my title and made sure this isn’t the same thing as those “how to check if player owns gamepass” posts.

  1. What do you want to achieve? Keep it simple and clear!

How do I check if a player bought or delete a gamepass OUTSIDE of the game AFTER they joined?

  1. What is the issue? Include screenshots / videos if possible!

According to UserOwnsGamePassAsync:

This function will always return true if the player owns the pass upon first entering a server after having purchased the pass. … if the player deletes the pass from their inventory, this function may return true despite the player not owning the pass.

  1. What solutions have you tried so far? Did you look for solutions on the Developer Hub?

I thought about using PromptGamePassPurchase() on the player again to check if the player already bought it with PromptGamePassPurchaseFinished and then detecting its wasPurchased value. However, the wasPurchased value only returns true or false.

I need to know how it works:

  1. player joined without it → does not own

  2. player joined without it, buys it on website → does not own (wrong)

so, server prompts purchase, but already bought so return “false”

  1. player joined without it, buys in-game → does not own (wrong)

so, after successful purchase, add it to custom “does own” list

  1. player joined with it → does own

  2. player joined with it, deletes it → does own (wrong)

so, server prompts purchase, but player smartly cancels it, so return “false”

====

How do I tell the difference between scenario 2 and 5? I can’t just give the benefits for free even if they deleted it, right?