Skip to content

MarketplaceService

Partial Class Services NotCreatable Service

The service responsible for in-experience transactions.

Partially implemented

Prompt, product info, ownership, and ProcessReceipt are present; newer commerce APIs are not.

21 Nova members · 88 modern Roblox members not implemented yet

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.
MarketplaceService:GetDeveloperProductsAsync(): Instance

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

Roblox documentation

GetProductInfo Supported Function Deprecated Returns the product information of an asset using its asset ID.
MarketplaceService:GetProductInfo(int assetId, InfoType infoType = Asset): Dictionary

Returns the product information of an asset using its asset ID.

Roblox reference signature
MarketplaceService:GetProductInfo(assetId: int64, infoType: InfoType = Asset): Dictionary

Roblox documentation

PlayerOwnsAsset Supported Function Deprecated Returns whether the given user has the given asset.
MarketplaceService:PlayerOwnsAsset(Instance player, int assetId): bool

Returns whether the given user has the given asset.

Roblox reference signature
MarketplaceService:PlayerOwnsAsset(player: Instance, assetId: int64): bool

Roblox documentation

PromptNativePurchase Supported Function
MarketplaceService:PromptNativePurchase(Instance player, string productId)

No description available.

Roblox reference signature
MarketplaceService:PromptNativePurchase(player: Instance, productId: string): null
Security: RobloxScriptSecurity

Roblox documentation

PromptProductPurchase 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
MarketplaceService:PromptProductPurchase(player: Instance, productId: int64, equipIfPurchased: bool = true, currencyType: CurrencyType = Default): null

Roblox documentation

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
MarketplaceService:PromptPurchase(player: Instance, assetId: int64, equipIfPurchased: bool = true, currencyType: CurrencyType = Default): null

Roblox documentation

PromptThirdPartyPurchase Supported Function
MarketplaceService:PromptThirdPartyPurchase(Instance player, string productId)

No description available.

Roblox reference signature
MarketplaceService:PromptThirdPartyPurchase(player: Instance, productId: string): null
Security: RobloxPlaceSecurity

Roblox documentation

SignalClientPurchaseSuccess Supported Function
MarketplaceService:SignalClientPurchaseSuccess(string ticket, int playerId, int productId)

No description available.

Roblox reference signature
MarketplaceService:SignalClientPurchaseSuccess(ticket: string, playerId: int64, productId: int64): null
Security: RobloxScriptSecurity

Roblox documentation

SignalPromptProductPurchaseFinished Supported Function
MarketplaceService:SignalPromptProductPurchaseFinished(int userId, int productId, bool success)

No description available.

Roblox reference signature
MarketplaceService:SignalPromptProductPurchaseFinished(userId: int64, productId: int64, success: bool): null
Security: RobloxScriptSecurity

Roblox documentation

SignalPromptPurchaseFinished Supported Function
MarketplaceService:SignalPromptPurchaseFinished(Instance player, int assetId, bool success)

No description available.

Roblox reference signature
MarketplaceService:SignalPromptPurchaseFinished(player: Instance, assetId: int64, success: bool): null
Security: RobloxScriptSecurity

Roblox documentation

SignalServerLuaDialogClosed Supported Function
MarketplaceService:SignalServerLuaDialogClosed(bool value)

No description available.

Roblox reference signature
MarketplaceService:SignalServerLuaDialogClosed(value: bool): null
Security: RobloxScriptSecurity

Roblox documentation

Events

ClientLuaDialogRequested Supported Event
ClientLuaDialogRequested(Tuple arguments)

No description available.

Roblox reference signature
ClientLuaDialogRequested(arguments: Tuple)
Security: RobloxScriptSecurity

Roblox documentation

ClientPurchaseSuccess Supported Event
ClientPurchaseSuccess(string ticket, int playerId, int productId)

No description available.

Roblox reference signature
ClientPurchaseSuccess(ticket: string, playerId: int64, productId: int64)
Security: RobloxScriptSecurity

Roblox documentation

NativePurchaseFinished Supported Event
NativePurchaseFinished(Instance player, string productId, bool wasPurchased)

No description available.

Roblox reference signature
NativePurchaseFinished(player: Instance, productId: string, wasPurchased: bool)
Security: RobloxScriptSecurity

Roblox documentation

PromptProductPurchaseFinished Supported Event Deprecated Fires when a purchase prompt for a developer product is closed. Do not use this event to process purchases.
PromptProductPurchaseFinished(int userId, int productId, bool isPurchased)

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

Roblox reference signature
PromptProductPurchaseFinished(userId: int64, productId: int64, isPurchased: bool)
Nova behaviour: Nova keeps this legacy member for compatibility. Roblox's modern deprecation wording may describe later Roblox behaviour; verify it against Nova before relying on the copied text.

Roblox documentation

PromptProductPurchaseRequested Supported Event
PromptProductPurchaseRequested(Instance player, int productId, bool equipIfPurchased, CurrencyType currencyType)

No description available.

Roblox reference signature
PromptProductPurchaseRequested(player: Instance, productId: int64, equipIfPurchased: bool, currencyType: CurrencyType)
Security: RobloxScriptSecurity

Roblox documentation

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.
PromptPurchaseFinished(Instance player, int assetId, bool isPurchased)

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

Roblox reference signature
PromptPurchaseFinished(player: Instance, assetId: int64, isPurchased: bool)

Roblox documentation

PromptPurchaseRequested Supported Event
PromptPurchaseRequested(Instance player, int assetId, bool equipIfPurchased, CurrencyType currencyType)

No description available.

Roblox reference signature
PromptPurchaseRequested(player: Instance, assetId: int64, equipIfPurchased: bool, currencyType: CurrencyType)
Security: RobloxScriptSecurity

Roblox documentation

ServerPurchaseVerification Supported Event
ServerPurchaseVerification(Dictionary serverResponseTable)

No description available.

Roblox reference signature
ServerPurchaseVerification(serverResponseTable: Dictionary)
Security: RobloxScriptSecurity

Roblox documentation

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

No description available.

Roblox reference signature
ThirdPartyPurchaseFinished(player: Instance, productId: string, receipt: string, wasPurchased: bool)
Security: RobloxPlaceSecurity

Roblox documentation

Callbacks

ProcessReceipt Supported Callback A callback to process receipts of developer product purchases.
ProcessReceipt(Dictionary receiptInfo) -> ProductPurchaseDecision

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:

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 ProcessReceipt callback, 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, ProcessReceipt callbacks are called in a non-deterministic order.
  • The user must be on the server for the ProcessReceipt callback to be invoked.
  • The user does not have to be on the server for the result of the ProcessReceipt callback to be recorded on the backend.
  • The ProcessReceipt callback 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 ProcessReceipt callback 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.
Roblox reference signature
ProcessReceipt(receiptInfo: Dictionary) -> ProductPurchaseDecision
Nova note: Receipt verification is handled by the platform economy backend.

Roblox documentation

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.