Donation game test purchase fix

Roblox just pushed the most useless feature ever and it ruins every single donation game. Theres some code that will help you fix it.

-- client
local MarketplaceService = game:GetService('MarketplaceService')
local ReplicatedStorage = game:GetService('ReplicatedStorage')

ReplicatedStorage:WaitForChild('PriceCheck').OnClientInvoke = function(GamepassId)
    return MarketplaceService:GetProductInfo(GamepassId, Enum.InfoType.GamePass).PriceInRobux
end
-- Server script
local ReplicatedStorage = game:GetService('ReplicatedStorage')

function GetClientPrice(Player: Player, GamepassId: number)
    return ReplicatedStorage.PriceCheck:InvokeClient(Player, GamepassId)
end

Explorer
image

In your donation handler, check if Client price is different from server price and it is one of the following: 1, 42, 1007


If user is caught using test prices, take action.

2 Likes
-- client
local MarketplaceService = game:GetService('MarketplaceService')
local ReplicatedStorage = game:GetService('ReplicatedStorage')

ReplicatedStorage.RemoteFunction.OnClientInvoke = function(GamepassId)
    return 123456789 -- whatever crazy price you want
end

Wouldn’t this be easily bypassable with exploits?

1 Like

It would. But let’s be honest - as temporary workaround it will work. We don’t have any better choice in the current situation. Hopefully not each bug-user is exploiter.

really bad way to fix it what if someone legit has gamepass for one of those prices :skull: its not that hard to fix and yes this can be exploited why would you ever return a number on cllient this would make it easier to exploit your game

1 Like

image

Please read the post before commenting your non-sense.


How are you going to get the test price on the server otherwise? My post literally tells you to COMPARE the price with server for mismatch. If players in your game are using regional prices, check if the change is above 30%.

Check if the price is different


Trust me I know I am talking about the way you are doing isn’t the best nore is it the safest

What is that supposed to mean :sob:

had fix for this for while i never said your fix was wrong issues is how its being done isnt the safest or the best way dont think you read what i said

Roblox doesn’t let you check test prices on server though? The only way is through client. Even though it’s exploitable, 99% of people doing that won’t be smart enough.

Yes and no checking from client needs to be done just in this case how its being done like a child could watch a exploiting video could know how to do it this the return could be fire off with any value its not a bad way to do it just not safest or best way to do it also each time a player joins you are making a request api is gonna hate you then having it only check for those prices its not worst way you can do it but its just not the safest

Explain how are you detecting test price purchases then?

You only do a single check on client and server when some user buys a gamepass. And no, roblox doesn’t rate limit you so much.

The problem here is that the client can just not return any value and hang up the code. This is always the issue with InvokeClient and its the reason you shouldn’t use it. As a workaround until this gets fixed is probably acceptable though

It wont be critical if it hangs up an event connection.