First of all, thank you so much for the fast response - it’s not something you see from engineers every day.
Hmmm. It works differently to dev products, though? Dev products are instantly processed on the server using ProcessReceipt when purchased… shouldn’t it be the same behavior across all purchase types?
The main probleme here is with game Commissions.
In Donations games like PLS BUY ME, PLS DONATE, Starving Artist, Clothing Selling games and Many more… the players are selling their own Gamepasses and Cloths … So there is NO way for us to verify the purchase in that case if the player never pressed the OK button.
You’re welcome! I’m not an engineer, I work for DevRel and enjoy coding in my free time, so that inquiry should be left for them. I’m still going to pass this forward for some further insight.
Wanted to speak my two cents since I ran into this before with previous projects.
As for the difference, I can only guess it’s since one is a one-time-use consumable, whereas the other is a permanent item. I’ll let them comment on that one.
Thanks so much – appreciate the info here. Even if this is intended behavior and not something that could be changed just like that, there’s quite a few solutions at hand here (returning a price in the second parameter of the purchase finished events, making them fire as soon as it’s purchased, etc) and I’d be happy to provide a list of them to you/the engineer that takes a look at this to consider.
I’m also more than happy to DM you with a list of vulnerabilities (most of which are almost unpatchable from a developer’s pov) that allow users to fake donations and bypass most of our server checks. It could give engineers a bit more insight into how this is actually happening and why we are begging for a resolution on Roblox’s end let me know!
Unfortunatly, your solution above isnt valid with Comission For Passes and Commission For Avatar Shop Items.
There is nothing in the Data that we have access that can Verify that the Gamepass or Avatar shop product has been purchased from our game.
Fixing the problem at the source would be to return the event as soon as it has been sold.
An other solution would be to add the Game the Gamepass or Avatar item got purchased in. So we would be able to Verify in some way. ( not my favorite fix tho )
We are investigating this internally to find the best path forward. We do think providing a mechanism where the sales location and price of an item transaction can be verified is useful and reasonable.
It’s been 3 months since this reply with no update. We’re hoping to support the sale of in-experience limited items from resellers in our donation game but this would be practically impossible without this improvement. We’d really appreciate an update on this and I sincerely hope it hasn’t been forgotten about.
It’s been 10 months since your last reply. Are there any updates you or any other engineer can provide us with on the status of this fix? I appreciate it is going to require somewhat of a restructure of purchase handling methods but communication would be appreciated.
This is a significant change which could break existing games, so it needs careful consideration before rollout. We don’t have a timeline to share at this moment.
So you’re reluctant to implement this minor change citing ‘backwards compatibility,’ yet your team recently released a feature that has decimated one of the most popular games on Roblox, and you’re refusing to revert it because a feature that is “coming soon” will address the issue?
Last year, you guys made a similar breaking change that caused PLS DONATE and other donation games to have to remove support for avatar items in their experiences due to a Roblox change making it impossible to validate these purchases:
You guys promised a solution—ProcessReceipt for avatar items—slating release for November of last year:
It’s now nearing the end of April 2025, and not a single sign of this being anywhere close to release. Engineers repeatedly state ‘we’re working on it,’ but it’s evident that minimal resources have actually been allocated to resolving this.
So here, the team broke half of a top Roblox’s game’s functionality, reassured us that a solution was coming in a month’s time, and the solution was never even released! How professional!
You’d assume things couldn’t possibly get worse—but you’d be mistaken. Yesterday you released the Regional Pricing update, and a few hours later, users realized they could exploit this feature to spoof gamepass prices in donation games that rely on these prices to increment user stats and grant them special abilities in-game.
This has resulted in the purchase validation systems in nearly all donation games breaking (as there’s no way to detect these spoofed prices), and PLS DONATE has had to disable stat incrementing and global effects (the entire reason people make donations) as a result of this issue.
This whole “backwards compatibility” excuse is bullshit—you guys release features that cripple top earning games on Roblox, and refuse to revert or make ANY changes to them in hopes that some unconfirmed feature slated for release in 10 years time will resolve the issue.
Unbelievable. Most other teams immediately roll back changes as soon as issues emerge—even if just a small game with a few dozen players is affected—but the team behind these specific changes (presumably yours) shows the most ignorance I’ve ever seen.
And the most ironic part of this entire situation? Engineers had the audacity to use a PLS DONATE booth as an example photo in the documentation for the exact feature that has now decimated their game’s entire economy. Coincidence? I think not.
I’m posting this here because a feature request will go unanswered, and it’s too complicated of an issue that involves mainly engineers being ignorant rather than any actual “bug” to be posted in #bug-reports (plus there’s already been 3 bug reports made on the most recent issue).
Strong agreement on this. Just to add to the discussion, you’d be shocked at the lengths these games are going to in order to implement so many resource intensive workarounds just to verify a transaction, particularly via use of ROBLOX’s web API; this is easily solved by the methods posted in this thread, and future-proofs these genres of game on the platform, despite regional pricing changes or whatever else.
As a result of the latest updates, it’s now impossible to verify the price that a user has bought a product for. I cannot stress how important this is. A fix needs to be provided immediately, as there is nothing we can do in order to support our experiences. Thank you for taking the time to read this.
I agree to this %100. It’s a terrible move for Roblox to roll out an update this disruptive, especially one that negatively impacts major games like PLS DONATE and others that depend on gamepasses.
To demonstrate just how many players are abusing this issue: we’ve had almost a 10,000% day-by-day increase in fake donations after this exploit emerged. Hundreds of players are cycling through each and every donation game to see if these exploits work and trying to abuse them to gain benefits unfairly.
This issue needs to be addressed. Ideally, the development of ProcessReceipt for avatar items and a new callback that shows the gamepass price in the purchase finished event should be prioritized to have these methods released as soon as possible. A RegionalPricingEnabled field in :GetProductInfo() would help temporarily, but would not completely resolve the issue as this would still be bypassable by the end user. I can provide more info here if this is what’s needed for a resolution.
Agreed. Roblox clearly doesn’t prioritize donation games or their developers. If they don’t plan to revert the change, the least they could do is make it a toggleable setting for developers.
Nope, that only applies to the user who owns the game the gamepasses are tied to — in this case, the person receiving the donation. Donation games pull gamepasses from the player’s own games, not from the donation game itself. So the donation game owner can’t control the pricing toggle, nor even check for it at the moment without going through some tricky loopholes.