diff --git a/include/customDefinitions.d.ts b/include/customDefinitions.d.ts index bf11736cc..412337919 100644 --- a/include/customDefinitions.d.ts +++ b/include/customDefinitions.d.ts @@ -672,6 +672,12 @@ interface MarketplaceService extends Instance { user: Player, subscriptionId: string, ): UserSubscriptionStatus; + PromptBulkPurchase( + this: MarketplaceService, + player: Player, + lineItems: Array, + options: object, + ): void; PromptBundlePurchase(this: MarketplaceService, player: Player, bundleId: number): void; PromptGamePassPurchase(this: MarketplaceService, player: Player, gamePassId: number): void; PromptPremiumPurchase(this: MarketplaceService, player: Player): void; diff --git a/include/roblox.d.ts b/include/roblox.d.ts index 4a246ad4c..0f750ea36 100644 --- a/include/roblox.d.ts +++ b/include/roblox.d.ts @@ -195,11 +195,26 @@ interface ProductInfo { interface AssetProductInfo extends ProductInfo { /** Describes whether the asset is a User Product, Developer Product, or Game Pass */ - ProductType: "User Product"; + ProductType: "Collectible Item" | "User Product" | undefined; /** If InfoType was Asset, this is the ID of the given asset. */ AssetId: number; /** The [type of asset](https://developer.roblox.com/articles/Asset-types) (e.g. place, model, shirt). In TypeScript, you should compare this value to a member of the `AssetTypeId` const enum. */ AssetTypeId: AssetTypeId; + /** Describes whether the asset is purchasable in the current experience. */ + CanBeSoldInThisGame: boolean | undefined; + CollectibleItemId: string | undefined; + CollectibleProductId: string | undefined; + /** A table of information describing the item collectible details. */ + CollectiblesItemDetails?: { + /** Describes whether the asset is purchasable */ + IsForSale: boolean; + /** Describes whether the asset is a "limited item" that is no longer (if ever) sold */ + IsLimited: boolean; + /** The number of limited copies, 0 if it's not a limited item */ + TotalQuantity: number; + }; + /** The asset ID of the product/pass icon, or 0 if there isn't one. */ + IconImageAssetId: number; /** Describes whether the asset is marked as "new" in the catalog */ IsNew: boolean; /** Describes whether the asset is a "limited item" that is no longer (if ever) sold */ @@ -210,6 +225,12 @@ interface AssetProductInfo extends ProductInfo { IsPublicDomain: boolean; /** The remaining number of items a limited unique item may be sold */ Remaining: number | undefined; + /** A table of information describing the sale location of the product. */ + SaleLocation?: { + SaleLocationType: number; + /** A list of universe IDs where the product is available for purchase. */ + UniverseIds: Array; + }; /** Indicates whether the item is marked as 13+ in catalog */ ContentRatingTypeId: number; /** The minimum Builder's Club subscription necessary to purchase the item */ @@ -3320,6 +3341,11 @@ interface ExpirationDetails { ExpirationReason: Enum.SubscriptionExpirationReason; } +interface PromptBulkPurchaseItem { + Id: string; + Type: Enum.MarketplaceProductType; +} + interface PromptBulkPurchaseFinishedResults { RobuxSpent: number; Items: Array<{