Can you use tables in the first parameter of MarketplaceService:PromptProductPurchase?

So, I’m currently trying to make a soundrequest script and I want the devproduct able to get my sound ID but it doesn’t work. I already got the processReceipt thingy ready.

For some reason whenever I try adding a table (since you have to respects its parameters) the error just says “Unable to cast value to object”.

This is the current code.
(the Textbox.Text is the soundId)

MarketplaceService:PromptProductPurchase({player, script.Parent.MainFrame.TextBox.Text}, 1148882616)

Are there any fix or alternatives I could do?
Thanks in advance.

You just pass the player, not a table.

MarketplaceService:PromptProductPurchase(player, 1148882616)

For requesting sounds you will want to make a remote event for that maybe, then just do

remote:FireServer(script.Parent.MainFrame.TextBox.Text)

Yeah, however exploiters will be able to manipulate the remoteevent. Is there a way to atleast make it so the remoteevent knows you’ve purchased?

If exploiters manipulate the remote event then they will purchase the wrong product and therefore note get the things they want. You should do anything the purchase does on the server.

Is there still any ways I can do to get the soundid from a textbox using PromptProductPurchase? I really need help with this.