I’m fairly sure that the MarketplaceService only works with catalog IDs; so clothes and accessories. Bundles have their special little tag. I’ve never actually had any use for prompting bundle purchases but maybe they should add a function for it.
Unfortunately, I don’t think you may prompt the Headless Horseman bundle. I looked through MarketPlaceService, attempted to get its product info and asset type id (to see if it was an actual thing), but had no outcome. Other accessories worked fine, just not the bundle itself. As I researched, there’s no special tag for this bundle, and I highly doubt you can prompt it.
It is indeed possible. Using the “Examine Avatar” button after clicking someone’s name on the leaderboard, you can prompt a purchase for any bundle that they are wearing items from. For example, you can simply click “Headless Head” and the Headless Horseman bundle will pop up. Proof:
Until we can figure out how to do this ourselves (assuming that it is possible), you can have a friend with the bundle join your game and wear the Headless Head. You will then be able to prompt the purchase for the bundle and be able to buy it in your own game. You have now saved 3,100 robux, making the total cost of the bundle 27,900 robux. I hope this helped.
The script you are using is outdated. It goes into the description to find the old id. Now, the old ids are removed from the descriptions of most bundles/animations. Regardless, they no longer work (at least, for bundles in my testing).
local bundleId = 39
local AssetService = game:GetService('AssetService')
local MarketplaceService = game:GetService('MarketplaceService')
local BundleItems = AssetService:GetBundleDetailsAsync(bundleId).Items
local FirstBundleInfo = MarketplaceService:GetProductInfo(BundleItems[1].Id)
local OldBundleId = string.match(FirstBundleInfo.Description, "%d+")
MarketplaceService:PromptPurchase(game.Players.LocalPlayer, OldBundleId)
This actually works with avatar animations but with bundles not
When using the old id of the Headless Horseman package found here:
This is what happens when prompting the id:
So, it’s not just the issue of the old id not being in the description (the script works by grabbing the old id in the description). The old ids don’t even work anymore.