Does Roblox keep track of player Gamepass purchases or not?

The wiki states that Roblox DOES NOT keep track of player purchases of game passes and it is our responsibility to do that, I’m good with that. But then we also have UserOwnsGamePassAsync.

Which one is it? UserOwnsGamePassAsync check if a player has a gamepass. This shows that Roblox does keep track or the purchase. I understand that a player can delete their gamepass, and this will report false even after a purchase but shouldn’t our code reflect the players actions?

And also, if Roblox can give us an API to track if they have the item in their inventory, why cant we just be given a way to see if they have purchased it as well? We have datastores to handle this yes, but it would simplify a little bit of code.

That is developer products, not game passes.

You just answered your own question.

No, if they deleted the game pass they likely don’t want the benefits of it any more even if they don’t get a refund.

UserOwnsGamePassAsync check is a user has a gamepass in their inventory, what do you mean by this?

That is developer products, not game passes.

it says game pass not developer product on the wiki, it checks for a GamePassID right?

Looks like I was wrong, guess the developer hub does say that. But what I do know is that developer products aren’t kept track of. I am not sure what the question is if they apparently don’t?

Can you send a link to this page? Roblox definitely keeps track of gamepass sales, given that sales can happen outside of your game. It might be something to report as a documentation bug if it is written in the way you’ve paraphrased it here, but it’s worth including the link so others can confirm you haven’t misread.

1 Like

Here is a link to the page:
Game Passes – One‑Time Purchases (roblox.com)

It says at the bottom:


https://gyazo.com/e9a5121a5cd1ab69e094df27899a2151

I understand this means they don’t keep track of the purchase, they DO keep track of if it is in inventory right?

I guess this post is part question on how people handle this in their game, do they use UserOwnsGamePassAsync to give the benefits of the gamepass or their own datastore? If they use datastore they would also then again need to check if it is in the players inventory, this seems like an unnecessary step to me or am I missing something?

Ah I understand where the confusion has come from now. It’s about statistics and “tracking” in the sense of analytics. They are talking about the developer stats, not about actually recording the purchase for the sake of giving the player their reward in most cases.

You would only need to store player-specific purchase history if the gamepass gave them a reward that should only be given once (rather than every time they enter the game). Though developer products are more suited for these types of purchase (e.g. giving someone extra currency in response to a purchase).

Continue to use UserOwnsGamePassAsync to check if they have the gamepass for things like a VIP pass, a role pass, or something else. You don’t need to do anything beyond this in most cases.

2 Likes