# Purchases

Gamepasses and asset sales are already handled through the SDK automatically, meaning all you need to add yourself is support for developer products.

# Developer products

After installing the SDK via the plugin, game.ServerScriptService will have a folder called RoMonitor, inside RoMonitor will be Events which contains the event we want to trigger when processing a developer product.

TrackProduct event is inside of game.ServerScriptService.RoMonitor.Events

# Code implementation

TrackProduct should be fired at the start of game:GetService("MarketPlaceService").ProcessReceipt function, with the receiptInfo as the argument.



 






local function processReceipt(receiptInfo)

    game.ServerScriptService.RoMonitor.Events.TrackProduct:Fire(receiptInfo)

    -- Code to handle giving the player what they bought
end

game:GetService("MarketPlaceService").ProcessReceipt = processReceipt

Warning

game:GetService("MarketPlaceService").ProcessReceipt can only be called once per game! Make sure to implement this into beginning of your pre-existing ProcessReceipt.

Debugging

If something goes wrong, open the developer console (F9) and look out for a "[RoMonitor] [Developer produdct] Error message" which will explain why it isn't working as intended.