Can you check if Premium is purchased while in-game (without prompting)?

Currently I’m wondering if there is a way to check if Roblox Premium has been purchased while someone is in-game, but I want to do this without prompting them.

Is there currently a way to do this?

I’ve already taken a look at the PlayerMembershipChanged event. It almost does what I want, but it clarifies that the event only fires strictly when the user is prompted to purchase Premium. I’m pretty certain that this holds true for the MembershipType event as well. I haven’t tested it, but I’m convinced that it only updates when a player joins or when a Premium purchase is prompted.

I’ve also found this post, which isn’t exactly what I’m asking for, but it presents the possible solution of using HttpService for this issue. Since Roblox denies HttpService requests to itself and proxies are potentially unstable and unreliable, I’m unsure if I want to try working with it.

Basically, I just want to check if a player’s membership changes while in my game and without prompting them. Is there currently a way to do this that I’m unaware of?

Edit: To clarify, for example, if a player were on the website and bought Roblox Premium through the website but while they were in my game, I want the game to be able to detect that they have Premium without prompting them.

1 Like

What’s the use-case? Why not just prompt them when they need to do a Premium-only action?

The use-case isn’t necessarily specific, I only have a few ideas in mind.

But for example, let’s say I want to teleport a player to somewhere else on a map as soon as the game recognizes they have Roblox Premium. I simply do not want the game to have to wait for them to close a prompt in order to do so, nor do I want to prompt them with anything in the first place.

From the docs:

Note, however, that the server will only attempt to check and update the membership after the Premium modal has been closed

MarketplaceService.PromptPremiumPurchaseFinished exists as well, although you’d have to check the status at the time of prompt and then after it finishes, or use PlayerMembershipChanged:Wait().

Oh

Do you mean like if they purchase premium on the website while in your game? If so, Roblox doesn’t even do this natively, it only checks again upon rejoining. Or if you mean if they join with premium, their membership type is always updated before the player object is created. In that case, their MembershipType should be up-to-date on join. Other than that, if a proxy is off the table, I suppose you could use player:GetPropertyChangedSignal(‘MembershipType’) but that probably only updates when the purchase modal is closed. Aside from that, I don’t think there is a way unfortunately.

I don’t quite understand without a specific use-case.

In your example, I cant think of a reason why you’d want to auto teleport a player instead of making the player decide when to teleport.

Yes.

Yeah, and that’s what I was asking about. Roblox also checks for this when you prompt a player, but I’m looking for another way to check because I’m trying to avoid prompts. As I said, HttpService is an option because the website does hold the information on whether a user has Premium or not, but I’m not sure if there is a way to access this information outside of HttpService.

There is a way through the web APIs, however. You’d need a proxy server to do this and check the status of someone’s premium.

1 Like

Okay, I’ll write up a more specific use case.

Let’s say I want to create neat little cutscene, or some sort of “easter egg” in my game, that only happens when someone purchases Roblox Premium while in one of my game’s servers.

Prompting them in a situation like this can easily ruin immersion, especially if I want to surprise the player with this secret. The lack of a prompt being present carries out this surprise effectively, but otherwise I have to prompt the player before showing them this cutscene, which not only helps to ruin any surprises, but also would just confuse players when they are prompted since the prompt doubles as both an “in-game membership updater” and a purchase prompt. This means the prompt would trigger for users that don’t have Premium.

I don’t want to have to ask the player “Have you purchased Roblox Premium yet?” if they had already done so on the website while in my game. And I don’t want this secret to be available to players joining who already have Premium; I want it to be strictly available to those who purchase it while in my game. Otherwise it wouldn’t be much of a secret, as anyone who had Premium could witness it.

Nope, unfortunately there isn’t afaik. I’ve looked through documentation and have nothing. If nobody comes up with anything, here’s an API endpoint that does it (which you mentioned in your OP anyway):
https://premiumfeatures.roblox.com/docs#!/PremiumFeaturesUsers/get_v1_users_userId_validate_membership

1 Like