PcoWSkbVqDnWTu_dm2ix
We use cookies on this site to enhance your user experience
Collapse Sidebar

MarketplaceService

Show deprecated

MarketplaceService

Show deprecated

MarketplaceService is the game service that is responsible for in-game transactions.

The most notable functions are MarketplaceService/PromptProductPurchase|PromptProductPurchase and MarketplaceService/PromptPurchase|PromptPurchase, as well as the callback MarketplaceService/ProcessReceipt|ProcessReceipt which must be well defined so that transactions do not fail.

MarketplaceService also has functions that fetch information about developer products (MarketplaceService/GetProductInfo|GetProductInfo and MarketplaceService/GetDeveloperProductsAsync|GetDeveloperProductsAsync), game passes (MarketplaceService/UserOwnsGamePassAsync|UserOwnsGamePassAsync), and other assets (MarketplaceService/PlayerOwnsAsset|PlayerOwnsAsset).

Monetization

Learning to use MarketplaceService is the first step towards learning to monetize a game on Roblox. Be extra mindful when using these features, as failed sales and sale-related bugs can be incredibly frustrating to deal with. Another important game service regarding monetization is DataStoreService which is responsible for saving and loading data like that of purchases. When processing purchases, it is often a good idea to check using data stores that a player hasn’t already been granted a product. Remember: all of the current financial rules of Roblox apply to in-game sales. At the moment, members of Builders Club will earn 70% of the total cost of the transaction and 10% for affiliate gear sales. If you are not a Builders Club member, you instead earn 10% of the total cost of the transaction.

Purchase Prompt

Below is an example of an in-game developer product purchase prompt for a product called “XP Boost”, with a price of R$ 25. The player is presented with the choice “Buy Now” or “Cancel”. Upon confirming the purchase, the MarketplaceService/ProcessReceipt|ProcessReceipt callback will be invoked with information about the purchase so the game may grant the product (in this case, the XP Boost). In studio, purchases will not charge the developer account and will be marked as such in the prompt.
A screenshot of the in-game purchase prompt asking "Want to buy the product XP Boost for R$ 25? This is a test purchase. Your account will not be charged "

Sale Processing

Processing the sales of developer products is done by setting the MarketplaceService/ProcessReceipt|ProcessReceipt callback once. This callback should grant the bonus associated with a developer product and return Enum.ProductPurchaseDecision.PurchaseGranted.

Properties

Functions

Instance

GetDeveloperProductsAsync ( )

[Yields]

Returns a Pages object which contains information for all of the current game’s developer products.

Dictionary

GetProductInfo ( int64 assetId , InfoType infoType )

[Yields]

Returns the product information of an asset using its assetId

bool

IsPlayerSubscribed ( Instance player , int64 subscriptionId )

[Yields]
bool

PlayerOwnsAsset ( Instance player , int64 assetId )

[Yields]

Returns whether the given player has the given asset.

void

PromptGamePassPurchase ( Instance player , int64 gamePassId )

Used to prompt a user to purchase a game pass with the given assetId.

void

PromptProductPurchase ( Instance player , int64 productId , bool equipIfPurchased , CurrencyType currencyType )

Used to prompt a user to purchase a product with the given product id.

void

PromptPurchase ( Instance player , int64 assetId , bool equipIfPurchased , CurrencyType currencyType )

Used to prompt a user to purchase an item with the given assetId.

void

PromptSubscriptionCancellation ( Instance player , int64 subscriptionId )

void

PromptSubscriptionPurchase ( Instance player , int64 subscriptionId )

void

PromptThirdPartyPurchase ( Instance player , string productId )

Prompts a third-party purchase.

bool

UserOwnsGamePassAsync ( int64 userId , int64 gamePassId )

[Yields]

Returns true if the player with the given Player/UserId|UserId owns the game pass with the given game pass ID.

Events

RBXScriptSignal

PromptGamePassPurchaseFinished ( Instance player , int64 gamePassId , bool wasPurchased )

Fires when a purchase prompt closes for a game pass

RBXScriptSignal

PromptPurchaseFinished ( Instance player , int64 assetId , bool isPurchased )

Fires when a purchase prompt closes for an affiliate gear sale or other asset (does not fire for developer product or game pass prompts)

RBXScriptSignal

PromptSubscriptionCancellationFinished ( Instance player , int64 subscriptionId , bool wasCanceled )

RBXScriptSignal

PromptSubscriptionPurchaseFinished ( Instance player , int64 subscriptionId , bool wasPurchased )

RBXScriptSignal

ThirdPartyPurchaseFinished ( Instance player , string productId , string receipt , bool wasPurchased )

Fires when a third-party purchase has been completed.

Callback

ProductPurchaseDecision

ProcessReceipt ( Dictionary receiptInfo )

A callback to process receipts of product purchases.