MarketplaceService¶
The service responsible for in-experience transactions.
Partially implemented
Prompt, product info, ownership, and ProcessReceipt are present; newer commerce APIs are not.
Description¶
MarketplaceService is responsible for in-experience transactions. The
most notable methods are
PromptProductPurchase and
PromptPurchase, as well as the
callback ProcessReceipt which must
be defined so that developer product transactions do not fail.
BindReceiptHandler is a newer
alternative that processes developer product receipts (and Robux transfer
receipts) through one or more bound handlers instead of the single
ProcessReceipt callback.
MarketplaceService also has methods that fetch information about developer products (GetProductInfoAsync and GetDeveloperProductsAsync), passes (UserOwnsGamePassAsync()), and other assets (PlayerOwnsAssetAsync, PlayerOwnsBundleAsync).
Understanding MarketplaceService is the first step towards learning to monetize an experience on Roblox, as well as learning to use DataStoreService, which is responsible for saving and loading all data related to purchases.
Inheritance¶
Object → Instance → MarketplaceService
Nova inheritance: Instance → MarketplaceService
Methods¶
GetDeveloperProductsAsync Supported Function Returns a Pages object which contains information for all of the current experience's developer products.
Returns a Pages object which contains information for all of the current experience's developer products.
GetProductInfo Supported Function Deprecated Returns the product information of an asset using its asset ID.
Returns the product information of an asset using its asset ID.
Roblox reference signature
PlayerOwnsAsset Supported Function Deprecated Returns whether the given user has the given asset.
Returns whether the given user has the given asset.
Roblox reference signature
PromptNativePurchase Supported Function
No description available.
Roblox reference signature
RobloxScriptSecurityPromptProductPurchase Supported Function Prompts a user to purchase a developer product with the given productId.
MarketplaceService:PromptProductPurchase(Instance player, int productId, bool equipIfPurchased = true, CurrencyType currencyType = Default)
Prompts a user to purchase a developer product with the given productId.
Prompts a user to purchase a
developer product
with the given productId.
You can only prompt purchases of developer products that belong to the current game. Purchases of developer products from other games fail, even if you own both games.
In Studio, mocked purchases don't check that the product belongs to the
current game, so prompting a product purchase from another game might
appear to succeed. Before you publish, verify that the productId belongs
to the current game.
Roblox reference signature
PromptPurchase Supported Function Prompts a user to purchase an item with the given assetId. Does not work for USD Creator Store purchases.
MarketplaceService:PromptPurchase(Instance player, int assetId, bool equipIfPurchased = true, CurrencyType currencyType = Default)
Prompts a user to purchase an item with the given assetId. Does not work
for USD Creator Store purchases.
Prompts a user to purchase an item with the given assetId.
- This does not work for USD Creator Store purchases.
- If the item has the
Sale Location
set as
Experience By Place ID (API Only), you must call MarketplaceService.PromptPurchase from a server script. - If prompting a purchase of a limited item:
- (Recommended) Server requests prompt original copies until they run out, regardless of the price. Once original copies run out, resale copies are prompted.
- Client requests prompt from the lowest resale price even if original copies are available.
Roblox reference signature
PromptThirdPartyPurchase Supported Function
No description available.
Roblox reference signature
RobloxPlaceSecuritySignalClientPurchaseSuccess Supported Function
No description available.
Roblox reference signature
RobloxScriptSecuritySignalPromptProductPurchaseFinished Supported Function
No description available.
Roblox reference signature
RobloxScriptSecuritySignalPromptPurchaseFinished Supported Function
No description available.
Roblox reference signature
RobloxScriptSecuritySignalServerLuaDialogClosed Supported Function
No description available.
RobloxScriptSecurityEvents¶
ClientLuaDialogRequested Supported Event
No description available.
RobloxScriptSecurityClientPurchaseSuccess Supported Event
No description available.
RobloxScriptSecurityNativePurchaseFinished Supported Event
No description available.
Roblox reference signature
RobloxScriptSecurityPromptProductPurchaseFinished Supported Event Deprecated Fires when a purchase prompt for a developer product is closed. Do not use this event to process purchases.
Fires when a purchase prompt for a developer product is closed. Do not use this event to process purchases.
IMPORTANT: Do not use the PromptProductPurchaseFinished event to
process purchases; instead, use the
ProcessReceipt callback. The
firing of PromptProductPurchaseFinished does not mean that a user
has successfully purchased an item.
This event fires when a purchase prompt for a developer product closes. For example, when a user receives the purchase prompt and clicks Cancel, or when they receive a success or error message and click OK. The firing of this event does not mean that a user has successfully purchased an item.
While you can use the PromptProductPurchaseFinished event to detect when
a user closes a purchase prompt, you should not use it to process
purchases because those purchases might still fail in the backend for
several reasons. For example, if a Roblox system is offline, or if the
product price has changed and the user now doesn't have enough Robux to
make the purchase. To process purchases, you must use
ProcessReceipt. Using
ProcessReceipt allows you to confirm that the purchase has succeeded
before you grant the user the item they have purchased.
The PromptProductPurchaseFinished event fires with a Player.UserId
instead of a reference to the Player object.
See Also¶
- PromptGamePassPurchaseFinished to prompt a user to purchase a pass.
- PromptPurchaseFinished to prompt a user to purchase affiliate gear or other assets.
- For more information on saving and replicating user data like purchases and progress, see Implementing player data and purchases.
Roblox reference signature
PromptProductPurchaseRequested Supported Event
PromptPurchaseFinished Supported Event Fires when a purchase prompt for an affiliate gear sale or other asset is closed. Does not fire for developer product or pass prompts.
Fires when a purchase prompt for an affiliate gear sale or other asset is closed. Does not fire for developer product or pass prompts.
This event fires when a purchase prompt for an affiliate gear sale or other asset closes. For example, when a user receives the purchase prompt and clicks Cancel, or when they receive a success or error message and click OK.
This event does not fire for developer product or pass prompts.
See Also¶
- PromptGamePassPurchaseFinished to prompt a user to purchase a pass.
- PromptProductPurchaseFinished to prompt a user to purchase a developer product.
- For more information on saving and replicating user data like purchases and progress, see Implementing player data and purchases.
Roblox reference signature
PromptPurchaseRequested Supported Event
ServerPurchaseVerification Supported Event
No description available.
RobloxScriptSecurityThirdPartyPurchaseFinished Supported Event
No description available.
Roblox reference signature
RobloxPlaceSecurityCallbacks¶
ProcessReceipt Supported Callback A callback to process receipts of developer product purchases.
A callback to process receipts of developer product purchases.
ProcessReceipt is a callback to process receipts from
developer product purchases.
You can sell developer products inside an experience using
MarketplaceService functions, or outside an experience on the Store tab
of your experience details page.
You should only set the ProcessReceipt callback one time in a single
server-side Script. This callback must handle the receipts
for all developer products you have for sale.
IMPORTANT: It's highly recommended that you properly implement the
ProcessReceipt callback in order to sell your developer products. You
should use ProcessReceipt to grant users their purchased product over
any other granting method. If your ProcessReceipt implementation isn't
correct, you will not be able to grant users the products they have
purchased on the Store tab of your experience details page.
Guarantees¶
The ProcessReceipt callback is called for all unresolved developer
product purchases when:
- A user successfully completes the purchase of a developer product.
- A successful developer product purchase prompt appears to the user.
- A user joins the server.
A purchase is considered successfully initiated when:
- The purchase is processed on Roblox's backend.
- The funds are placed in escrow.
A purchase is considered resolved when:
- The
ProcessReceiptcallback returns a ProductPurchaseDecision enum of PurchaseGranted. - The purchase is successfully recorded on Roblox's backend.
Unresolved Developer Product Purchases¶
An unresolved developer product purchase takes place when a user's
purchase of a developer product has not yet been acknowledged by the
server through the ProcessReceipt function.
Unresolved developer product purchases are not removed or refunded after the escrow period expires.
Retries and Timeouts¶
ProcessReceipt has no time-based retry mechanism. If a user makes a
purchase that returns a ProductPurchaseDecision enum of
NotProcessedYet, the
ProcessReceipt callback is only called again on the same server if:
- The user successfully initiates another developer product purchase.
- The user re-joins any server under the same experience.
ProcessReceipt also has no timeout for yielded callbacks. A
ProcessReceipt callback can yield for as long as the server is running,
and the callback result is still accepted when the result returns.
Limitations¶
- If you don't implement a
ProcessReceiptcallback, your receipts will be auto-acknowledged. You can't get a receipt back after it has been acknowledged. - When there are multiple purchases pending for a user,
ProcessReceiptcallbacks are called in a non-deterministic order. - The user must be on the server for the
ProcessReceiptcallback to be invoked. - The user does not have to be on the server for the result of the
ProcessReceiptcallback to be recorded on the backend. - The
ProcessReceiptcallback for a specific purchase might run on two different servers at the same time if the user joins the second server before the callback returns on the first server. - The
ProcessReceiptcallback might still fail to be recorded on the backend, even if it returns a ProductPurchaseDecision enum of PurchaseGranted. When this happens, the purchase remains unresolved.
Inherited members¶
Inherited from Instance: 8 properties, 36 methods, 7 events. They are documented on the base class page.
88 modern Roblox member(s) are not implemented yet — expand to inspect
Members declared by Roblox's MarketplaceService class (or by a missing base class) that Nova does not expose. Use this list to scope a migration; the compatibility guide has the recommended workaround.
Methods¶
| Member | Signature | Status | Notes | Flags |
|---|---|---|---|---|
BindReceiptHandler |
MarketplaceService:BindReceiptHandler(transactionType: ReceiptType, handler: Function, filter: Array?): RBXScriptConnection |
Not yet | Registers a callback to process receipts of a specific type. | — |
ClearProductInfoCaches |
MarketplaceService:ClearProductInfoCaches(): null |
Not yet | — | RobloxScriptSecurity |
GetAvailableSubscriptionProductsAsync |
MarketplaceService:GetAvailableSubscriptionProductsAsync(productType: string): Array |
Not yet | — | Yields, RobloxScriptSecurity |
GetProductInfoAsync |
MarketplaceService:GetProductInfoAsync(assetId: int64, infoType: InfoType = Asset): Dictionary |
Not yet | Returns the product information of an asset using its asset ID. | Yields |
GetRobloxSubscriptionDetailsAsync |
MarketplaceService:GetRobloxSubscriptionDetailsAsync(user: Player): Dictionary |
Not yet | Returns the subscription details for the given user for the Roblox Subscription ecosystem. | Yields |
GetRobuxBalance |
MarketplaceService:GetRobuxBalance(): int |
Not yet | — | Yields, RobloxScriptSecurity |
GetSubscriptionProductInfoAsync |
MarketplaceService:GetSubscriptionProductInfoAsync(subscriptionId: string): Dictionary |
Not yet | Returns the product information of a subscription for the given subscriptionId. |
Yields |
GetSubscriptionPurchaseInfoAsync |
MarketplaceService:GetSubscriptionPurchaseInfoAsync(subscriptionId: string): Dictionary |
Not yet | — | Yields, RobloxScriptSecurity |
GetUsersPriceLevelsAsync |
MarketplaceService:GetUsersPriceLevelsAsync(userIds: Array): Array |
Not yet | Returns the regionalized price levels of users, representing the recommended price for an item in each user's regional market. | Yields |
GetUserSubscriptionDetailsAsync |
MarketplaceService:GetUserSubscriptionDetailsAsync(user: Player, subscriptionId: string): Dictionary |
Not yet | Returns a table that contains the details of the user's subscription for a given subscriptionId. |
Yields |
GetUserSubscriptionDetailsInternalAsync |
MarketplaceService:GetUserSubscriptionDetailsInternalAsync(subscriptionId: string): Dictionary |
Not yet | — | Yields, RobloxScriptSecurity |
GetUserSubscriptionPaymentHistoryAsync |
MarketplaceService:GetUserSubscriptionPaymentHistoryAsync(user: Player, subscriptionId: string): Array |
Not yet | Returns an Array that contains up to one year of the user's subscription payment history for the given subscriptionId. |
Yields |
GetUserSubscriptionStatusAsync |
MarketplaceService:GetUserSubscriptionStatusAsync(user: Player, subscriptionId: string): Dictionary |
Not yet | Returns a table that contains the subscription status of the user for the given subscriptionId. |
Yields |
IsPurchaseSimulated |
MarketplaceService:IsPurchaseSimulated(): bool |
Not yet | — | RobloxScriptSecurity |
OpenShop |
MarketplaceService:OpenShop(player: Player): null |
Not yet | Opens a personalized in-game Shop for the given player. | — |
PerformBulkPurchase |
MarketplaceService:PerformBulkPurchase(orderRequest: Dictionary, options: Dictionary): Dictionary |
Not yet | — | Yields, RobloxScriptSecurity |
PerformCancelSubscription |
MarketplaceService:PerformCancelSubscription(subscriptionId: string): null |
Not yet | — | Yields, RobloxScriptSecurity |
PerformPurchase |
MarketplaceService:PerformPurchase(infoType: InfoType, productId: int64, expectedPrice: int, requestId: string, isRobloxPurchase: bool, collectibleItemId: string, collectibleProductId: string, idempotencyKey: string, purchaseAuthToken: string, timedOptionsDays: int64 = 0, purchasePayload: string, purchaseOptions: Dictionary = nil): Dictionary |
Not yet | — | Yields, RobloxScriptSecurity |
PerformPurchaseV2 |
MarketplaceService:PerformPurchaseV2(infoType: InfoType, productId: int64, expectedPrice: int, requestId: string, isRobloxPurchase: bool, collectiblesProductDetails: Dictionary): Dictionary |
Not yet | — | Yields, RobloxScriptSecurity |
PerformSubscriptionPurchase |
MarketplaceService:PerformSubscriptionPurchase(subscriptionId: string): string |
Not yet | — | Yields, RobloxScriptSecurity |
PerformSubscriptionPurchaseV2 |
MarketplaceService:PerformSubscriptionPurchaseV2(subscriptionId: string, paymentProvider: string): null |
Not yet | — | Yields, RobloxScriptSecurity |
PerformSubscriptionPurchaseV3Async |
MarketplaceService:PerformSubscriptionPurchaseV3Async(productType: string, productId: string, paymentProvider: string, paymentSessionId: string): null |
Not yet | — | Yields, RobloxScriptSecurity |
PerformSubscriptionPurchaseWithRobuxAsync |
MarketplaceService:PerformSubscriptionPurchaseWithRobuxAsync(subscriptionId: string, priceInRobux: int): null |
Not yet | — | Yields, RobloxScriptSecurity |
PlayerCanMakePurchases |
MarketplaceService:PlayerCanMakePurchases(player: Instance): bool |
Not yet | — | RobloxScriptSecurity |
PlayerOwnsAssetAsync |
MarketplaceService:PlayerOwnsAssetAsync(player: Instance, assetId: int64): bool |
Not yet | Returns whether the given user has the given asset. | Yields |
PlayerOwnsBundle |
MarketplaceService:PlayerOwnsBundle(player: Player, bundleId: int64): bool |
Not yet | Returns whether the given player owns the given bundle. | Yields, PreferredDescriptorName, ThreadSafety, PreferredDes… |
PlayerOwnsBundleAsync |
MarketplaceService:PlayerOwnsBundleAsync(player: Player, bundleId: int64): bool |
Not yet | Returns whether the given player owns the given bundle. | Yields |
PrepareCollectiblesPurchase |
MarketplaceService:PrepareCollectiblesPurchase(player: Instance, assetId: int64, collectibleItemId: string, collectibleItemInstanceId: string, collectibleProductId: string, expectedPrice: int): null |
Not yet | — | RobloxScriptSecurity |
PromptBulkPurchase |
MarketplaceService:PromptBulkPurchase(player: Player, lineItems: Array, options: Dictionary): null |
Not yet | Prompts a user to purchase multiple avatar items with the given assetId or bundleId. |
— |
PromptBundlePurchase |
MarketplaceService:PromptBundlePurchase(player: Instance, bundleId: int64): null |
Not yet | Prompts a user to purchase a bundle with the given bundleId. |
— |
PromptCancelSubscription |
MarketplaceService:PromptCancelSubscription(user: Player, subscriptionId: string): null |
Not yet | Prompts a user to cancel a subscription for the given subscriptionId. |
— |
PromptCollectiblesPurchase |
MarketplaceService:PromptCollectiblesPurchase(player: Instance, assetId: int64, collectibleItemId: string, collectibleItemInstanceId: string, collectibleProductId: string, expectedPrice: int): null |
Not yet | — | RobloxScriptSecurity |
PromptGamePassPurchase |
MarketplaceService:PromptGamePassPurchase(player: Instance, gamePassId: int64): null |
Not yet | Prompts a user to purchase a pass with the given gamePassId. |
— |
PromptNativePurchaseWithLocalPlayer |
MarketplaceService:PromptNativePurchaseWithLocalPlayer(productId: string): null |
Not yet | — | RobloxScriptSecurity |
PromptNativePurchaseWithLocalPlayerWithPaymentSessionId |
MarketplaceService:PromptNativePurchaseWithLocalPlayerWithPaymentSessionId(productId: string, paymentSessionId: string): null |
Not yet | — | RobloxScriptSecurity |
PromptNativePurchaseWithPaymentSessionId |
MarketplaceService:PromptNativePurchaseWithPaymentSessionId(player: Instance, productId: string, paymentSessionId: string): null |
Not yet | — | RobloxScriptSecurity |
PromptPremiumPurchase |
MarketplaceService:PromptPremiumPurchase(player: Instance): null |
Not yet | Prompts a user to purchase Roblox Premium. | PreferredDescriptorName, ThreadSafety, PreferredDescriptorN… |
PromptRobloxPurchase |
MarketplaceService:PromptRobloxPurchase(assetId: int64, equipIfPurchased: bool): null |
Not yet | — | RobloxScriptSecurity |
PromptRobloxSubscriptionPurchase |
MarketplaceService:PromptRobloxSubscriptionPurchase(user: Player): null |
Not yet | Prompts a user to purchase a Roblox Plus subscription. | — |
PromptRobuxTransferAsync |
MarketplaceService:PromptRobuxTransferAsync(sender: Player, receiverUserId: int64, amount: int64): string |
Not yet | Initiates a Robux transfer from the sender to another user. | Yields |
PromptSubscriptionPurchase |
MarketplaceService:PromptSubscriptionPurchase(user: Player, subscriptionId: string): null |
Not yet | Prompts a user to purchase a subscription for the given subscriptionId. |
— |
RankProductsAsync |
MarketplaceService:RankProductsAsync(productIdentifiers: Array): Array |
Not yet | Takes a list of product IDs and returns a personalized ordered list of those products. | Yields |
RecommendTopProductsAsync |
MarketplaceService:RecommendTopProductsAsync(infoTypes: Array): Array |
Not yet | - Takes an array of InfoType and returns up to 50 items representing the products a user is most likely to engage with and purchase. | Yields |
RefreshBulkPurchase |
MarketplaceService:RefreshBulkPurchase(batchPurchaseAuthToken: string, options: Dictionary = nil): null |
Not yet | — | RobloxScriptSecurity |
ReportAssetSale |
MarketplaceService:ReportAssetSale(assetId: string, robuxAmount: int): null |
Not yet | — | RobloxScriptSecurity |
ReportRobuxUpsellStarted |
MarketplaceService:ReportRobuxUpsellStarted(): null |
Not yet | — | RobloxScriptSecurity |
SignalAssetTypePurchased |
MarketplaceService:SignalAssetTypePurchased(player: Instance, assetType: AssetType): null |
Not yet | — | RobloxScriptSecurity |
SignalCheckPlayerHasRobloxSubscription |
MarketplaceService:SignalCheckPlayerHasRobloxSubscription(): null |
Not yet | — | RobloxScriptSecurity |
SignalMockPurchasePremium |
MarketplaceService:SignalMockPurchasePremium(): null |
Not yet | — | RobloxScriptSecurity |
SignalMockPurchaseRobloxSubscription |
MarketplaceService:SignalMockPurchaseRobloxSubscription(): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptBulkPurchaseFinished |
MarketplaceService:SignalPromptBulkPurchaseFinished(status: MarketplaceBulkPurchasePromptStatus, results: Dictionary): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptBundlePurchaseFinished |
MarketplaceService:SignalPromptBundlePurchaseFinished(player: Instance, bundleId: int64, success: bool): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptGamePassPurchaseFinished |
MarketplaceService:SignalPromptGamePassPurchaseFinished(player: Instance, gamePassId: int64, success: bool): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptPremiumPurchaseFinished |
MarketplaceService:SignalPromptPremiumPurchaseFinished(didTryPurchasing: bool): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptRobloxSubscriptionPurchaseFinished |
MarketplaceService:SignalPromptRobloxSubscriptionPurchaseFinished(subscriptionId: string, didTryPurchasing: bool): null |
Not yet | — | RobloxScriptSecurity |
SignalPromptSubscriptionPurchaseFinished |
MarketplaceService:SignalPromptSubscriptionPurchaseFinished(subscriptionId: string, didTryPurchasing: bool): null |
Not yet | — | RobloxScriptSecurity |
SignalRobuxTransferCompleted |
MarketplaceService:SignalRobuxTransferCompleted(userId: int64): null |
Not yet | — | RobloxScriptSecurity |
SignalUserSubscriptionStatusChanged |
MarketplaceService:SignalUserSubscriptionStatusChanged(subscriptionId: string): null |
Not yet | — | RobloxScriptSecurity |
UserOwnsGamePassAsync |
MarketplaceService:UserOwnsGamePassAsync(userId: User, gamePassId: int64): bool |
Not yet | Returns true if the player with the given UserId owns the pass with the given gamePassId. |
Yields |
Events¶
| Member | Signature | Status | Notes | Flags |
|---|---|---|---|---|
NativePurchaseFinishedV2 |
NativePurchaseFinishedV2(player: Instance, productId: string, wasPurchased: bool, checkoutSessionId: string) |
Not yet | — | RobloxScriptSecurity |
NativePurchaseFinishedWithLocalPlayer |
NativePurchaseFinishedWithLocalPlayer(productId: string, wasPurchased: bool) |
Not yet | — | RobloxScriptSecurity |
NativePurchaseFinishedWithLocalPlayerV2 |
NativePurchaseFinishedWithLocalPlayerV2(productId: string, wasPurchased: bool, checkoutSessionId: string) |
Not yet | — | RobloxScriptSecurity |
OpenShopRequested |
OpenShopRequested(player: Player) |
Not yet | — | RobloxScriptSecurity |
PrepareCollectiblesPurchaseRequested |
PrepareCollectiblesPurchaseRequested(player: Instance, assetId: int64, collectibleItemId: string, collectibleItemInstanceId: string, collectibleProductId: string, expectedPrice: int) |
Not yet | — | RobloxScriptSecurity |
PromptBulkPurchaseFinished |
PromptBulkPurchaseFinished(player: Instance, status: MarketplaceBulkPurchasePromptStatus, results: Dictionary) |
Not yet | Fires when a purchase prompt for bulk avatar items is closed. | — |
PromptBulkPurchaseRefreshed |
PromptBulkPurchaseRefreshed(player: Instance, status: MarketplaceBulkPurchasePromptStatus, response: Dictionary) |
Not yet | — | RobloxScriptSecurity |
PromptBulkPurchaseRequested |
PromptBulkPurchaseRequested(player: Instance, displayData: Array, orderRequest: Dictionary, purchaserRobuxBalance: int64, orderTotalRobux: int64, options: Dictionary) |
Not yet | — | RobloxScriptSecurity |
PromptBulkPurchaseRequestedV2 |
PromptBulkPurchaseRequestedV2(player: Instance, displayData: Array, orderRequest: Dictionary, purchaserRobuxBalance: int64, orderTotalRobux: int64, options: Dictionary, discountInformation: Dictionary) |
Not yet | — | RobloxScriptSecurity |
PromptBundlePurchaseFinished |
PromptBundlePurchaseFinished(player: Instance, bundleId: int64, wasPurchased: bool) |
Not yet | Fires when a bundle purchase prompt closes. | — |
PromptBundlePurchaseRequested |
PromptBundlePurchaseRequested(player: Instance, bundleId: int64) |
Not yet | — | RobloxScriptSecurity |
PromptCancelSubscriptionRequested |
PromptCancelSubscriptionRequested(subscriptionId: string) |
Not yet | — | RobloxScriptSecurity |
PromptCollectibleBundlePurchaseRequested |
PromptCollectibleBundlePurchaseRequested(player: Instance, bundleId: int64, collectibleItemId: string, collectibleItemInstanceId: string, collectibleProductId: string, expectedPrice: int, idempotencyKey: string, purchaseAuthToken: string) |
Not yet | — | RobloxScriptSecurity |
PromptCollectiblesPurchaseRequested |
PromptCollectiblesPurchaseRequested(player: Instance, assetId: int64, collectibleItemId: string, collectibleItemInstanceId: string, collectibleProductId: string, expectedPrice: int, idempotencyKey: string, purchaseAuthToken: string) |
Not yet | — | RobloxScriptSecurity |
PromptGamePassPurchaseFinished |
PromptGamePassPurchaseFinished(player: Instance, gamePassId: int64, wasPurchased: bool) |
Not yet | Fires when a purchase prompt for a pass is closed. | — |
PromptGamePassPurchaseRequested |
PromptGamePassPurchaseRequested(player: Instance, gamePassId: int64) |
Not yet | — | RobloxScriptSecurity |
PromptPremiumPurchaseFinished |
PromptPremiumPurchaseFinished() |
Not yet | Fires when a purchase prompt for Roblox Premium is closed. | — |
PromptPremiumPurchaseRequested |
PromptPremiumPurchaseRequested(player: Instance) |
Not yet | — | RobloxScriptSecurity |
PromptPurchaseRequestedV2 |
PromptPurchaseRequestedV2(player: Instance, assetId: int64, equipIfPurchased: bool, currencyType: CurrencyType, idempotencyKey: string, purchaseAuthToken: string) |
Not yet | — | RobloxScriptSecurity |
PromptRobloxPurchaseRequested |
PromptRobloxPurchaseRequested(assetId: int64, equipIfPurchased: bool) |
Not yet | — | RobloxScriptSecurity |
PromptRobloxSubscriptionPurchaseFinished |
PromptRobloxSubscriptionPurchaseFinished(user: Player, didTryPurchasing: bool) |
Not yet | Fires when a purchase prompt for Roblox Plus is closed. | — |
PromptRobloxSubscriptionPurchaseRequested |
PromptRobloxSubscriptionPurchaseRequested() |
Not yet | — | RobloxScriptSecurity |
PromptRobuxTransferRequested |
PromptRobuxTransferRequested(player: Instance, jsonResponse: string) |
Not yet | — | RobloxScriptSecurity |
PromptRobuxTransferSubscriptionUpsellRequested |
PromptRobuxTransferSubscriptionUpsellRequested() |
Not yet | — | RobloxScriptSecurity |
PromptSubscriptionPurchaseFinished |
PromptSubscriptionPurchaseFinished(user: Player, subscriptionId: string, didTryPurchasing: bool) |
Not yet | Fires when a purchase prompt for a subscription is closed. | — |
PromptSubscriptionPurchaseRequested |
PromptSubscriptionPurchaseRequested(subscriptionId: string) |
Not yet | — | RobloxScriptSecurity |
RefreshBulkPurchaseRequested |
RefreshBulkPurchaseRequested(playerId: int64, batchPurchaseAuthToken: string, options: Dictionary) |
Not yet | — | RobloxScriptSecurity |
RobuxTransferCompleted |
RobuxTransferCompleted(userId: int64) |
Not yet | — | RobloxScriptSecurity |
UserSubscriptionStatusChanged |
UserSubscriptionStatusChanged(subscriptionId: string) |
Not yet | — | RobloxScriptSecurity |
Roblox reference: MarketplaceService
Generated from Nova's API dump and Roblox creator-docs. Nova-only members come from the engine's reflection metadata.