MarketplaceService:GrantGamepassOwnership | Grant website ownership of gamepass API

As a Roblox developer, it is currently impossible to grant ownership of a gamepass that is owned by the same group by a Server Command / API call.

I have 2 use-cases:

  1. Giving away website/legitimate gamepasses ownership to developers / team members, so they do not have to purchase the gamepass. This can be done currently by calling a boolean value to true within the Player’s data structure. Hook up the boolean to then give the gamepass perks. Legitimate ownership would be better.

  2. Setting up a developer product discount system that checks if they own a gamepass from another game in the same group. Returning / loyalty reward discounts. This is currently possible by using UserOwnsGamepassAsync to the other gamepass Id, and prompting them with a different Id of a developer product, rather than the normal gamepass one. Then do a server side check as well. Then making sure the same gamepass perk code runs on each purchase: gamepass, dev product discounted purchase, and rejoining.

If Roblox is able to address this issue, it would improve my game development experience by making a more fleshed out system for on-boarding new developers to my group, as well as rewarding discounts to loyal players who keep coming back to each new game.

32 Likes

Even this doesn’t seem enough to me, since the player can still buy the gamepass on the website accidentally in this case when they already have the discounted perks. Or they might forget they have them. An official way to grant gamepasses from in game would be great.

2 Likes

Yes, it would be more consistent if it worked the same way as awarding Badges.

Not to detract from your suggestion, but if I understand it correctly you want to be able to change the price of Dev Products on-the-fly?
That might make the analytics in Developer Stats a bit muddy. I think the best answer for algorithmically discounting products in your game is to leverage the versatility of a premium in-game currency, for which you can charge any amount, and even automate recurring discounts, discounts on whole products, etc (this of course doesn’t solve the problem of automatically or batch discounting of the dev products used to purchase the premium currency :frowning:)

on a related note, lately I’ve been deliberating the pros/cons of being able to charge a variable amount of Robux for products during gameplay. I’d certainly use it, but I don’t know how keen they are on giving us this freedom, or in what ways it could be abused

1 Like

I have a system in place that if players own a gamepass in one of my games, they get a developer product prompt (which is a discounted price from the gamepass) while in a different game purchasing a similar gamepass.

Not dynamic changes of developer product prices, but dynamic prompts depending on my own code’s logic.

The only thing I would need Roblox to do is allow an API to GrantGamepassOwnership, much like how badges currently work as you first posted

I like this idea. There are more uses for this other than just “give stuff away for free.” Although, developers should have more ways of doing this regardless.

If you want to give your team members the gamepass perks without having them buy said gamepass, just give them the perks? I don’t see why new API is needed for that, “legitimate ownership would be better” isn’t much of an argument

you also just showed why it isn’t really necessary in your second point
yeah it’s a bit more work to make a duplicate of every dev product, but the uses of something like this seem fairly niche

if you want to have an item that people normally buy, but certain people get for free, just make a badge that you buy with a dev product
some people have to buy it, but special people are awarded it for free
having a dev product you can dynamically change the price of would be great though

This is why I put it as a feature request, to get feedback and raise awareness
Disagreeing against an argument isn’t an argument

I showed that I take proactive measures to get things done regardless of official Roblox features. Currently, players who have purchased the discounted dev product to get the same gamepass perks can still buy the gamepass on the website (if they either forgot or want to add extra support). I am arguing against my potential own well-being. Because I think it is a better overall experience for players not to “accidentally” purchase something they already have access to.

This is irrelevant, the point is so they see gamepass ownership, due to the potential to repurchase perks they already have, not badge ownership

2 Likes

roblox isn’t going to add an API for something as simple as saving a boolean as true in a datastore

on the off chance they actually do that, you can simply award them the equivalent amount of in game currency that the price of the gamepass they bought translates to

irrelevant?
you’re wanting an API called “GrantGamepassOwnership”, which essentially grants a gamepass to a user account for free, instead of charging for it
most users would simply buy the gamepass, but select people would be awarded it for free with this new API

that functions almost exactly like badge service, and you can achieve the same effect by making a paid badge in the manner I mentioned above
I can see something like this being useful in very specific situations, but I don’t think it would have enough use cases to justify it’s existence

Some games do not have, and do not want to have in game currencies that are tied to Robux/real money. Some games might not even want to have an in game currency at all.

I don’t think comparing gamepasses to badges in this way is a fair comparison, they both have distinct use cases and players know them specifically by their use cases. Players never really ask about new paid perks, or paid badges, in a games discord/other community pages. They ask specifically about gamepasses.

1 Like

I think the point is being missed.

It would be up to the developer and their own gamepasses. Those are the only ones being affected. If a developer wants to give their gamepasses away for free to users, they will suffer whatever financial consequences that entails. As for me, I would like to use it to give my developer product discount system more official credence. Of which you brushed off as “[not] much of an argument”. To which I don’t see your disagreement of my argument as any better than, if not worse, than mine, imo.

Point stands, adding badges to this was irrelevant, with exception to the original mention of the word in this entire thread which was comparing it to another system on Roblox that already exists with similar execution functionality, though different implications. The different implication being, you cannot accidentally purchase badges. Awarding badges on the website is already doable. Awarding gamepasses therefore, could not be that much different or difficult for the smart engineers at Roblox to do.

The difference between our understandings is I have a use-case, and simply not everyone is going to agree with it. That is okay, I doubt every single API on Roblox has everyone agreeing that it has enough use cases to “justify its existence”. That’s not up to me, or you.

1 Like

I understand that it may seem like a cool idea to be able to discount or give GamePasses or Developer Products on the fly, however this is actually counter to industry standards for one-time purchase products (both singleton and repeatable purchases that don’t automatically reoccour).

Although granting non-repeatable purchases (Game Passes) makes an amount of sense, it makes more sense to use a DataStore to track whitelisted “grants” of the product and then check against owning the GamePass and the purchase DataStore to see if they should have access to the content.

For discounted price items you should use developer products (even if it’s a non-repeatable purchase) and control this on the coding side. If the user doesn’t own the product, allow them to purchase it. If they meet certain criteria, offer a different product that is cheaper instead. Then have purchasing either of those items set the same value in a DataStore upon receipt processing.

This is how major mobile developers do sales, which improves analytical data, keeps products static (which is good for things you need to make sure are stable like purchases), and allows better receipt processing for users.

Example of how confusing this is to real players

I want to pioneer discount systems for group games with similar games. It is currently hard to get everyone to understand that buying the Dev Product gives the powers, but does not give the gamepass ownership. I simply want this changed with the API call within the OP and title.

1 Like

Being able to grant ownership of any asset as long as the developer of the game owns the asset would be a really useful feature

game:GetService("AssetService"):GrantAssetOwnership(Player, AssetId)

Some use cases are:

  • Being able to award a player a UGC hat, shirt or pants for completing an in-game mission/event/contest/whatever
  • Gamepass bundles, “Buy Gamepass 1, Gamepass 2 and Gamepass 3 for R$500 or R$250 each”
3 Likes