So I have a bunch of Gamepasses on my game page, but since our game gained a Gifting system we found this Gamepass system controversial since the Gifted players could buy a Gamepass from the game page to then find out they spent money on nothing.
So My question is: Will taking off these gamepasses off the Page make them not detectable by MarketPlaceService:UserOwnsGamePassAsync()?
MarketPlaceService:UserOwnsGamePassAsync() checks the players’ inventory for the gamepass, so even if you take it off-sale, it’ll still be detected as long as the player specifically doesn’t delete it from their inventory.
True, but people will blame the devs if this happens. People sometimes just buy all gamepasses quickly or do something else dumb and “accidentally” buy the gamepass again. They then proceed to blame the devs and demand a refund many times
Warrior Cats: Ultimate Edition uses a gifting system. From what I understand, they use Developer Products alongside Gamepasses in this system, and have some sort of script in place that detects whether or not the player owns either of these in their inventory, and prevents them from even having the option to buy the Gamepass ingame, unless to gift another player.
This is basically what I’d suggest. Check to see if the player has the Gamepass or Developer Product in their inventory, then prevent them from buying it ingame. Unfortunately you can’t do anything to keep them from rebuying the Gamepass off of the game’s front page, but this is rarely an issue. If you like, perhaps think of a way to identify if the player has two copies of the Gamepass/DevProduct and give them an option to regift that copy. I don’t know how possible this is though. ^.^
Also, no. If you take the Gamepass offsale, it will still be in the player’s inventory. You can still detect it with a script. So feel free to do that if you need to!