As many of you know, the AllowThirdPartySales property under workspace is deprecated and non-functional. AllowThirdPartySales has been an internal game configuration for years now, unchangable and even unreadable at runtime for normal scripts.
ThirdPartyPrompt is a lightweight utility designed to indirectly restore the readability of that setting.
Get the Asset here for free
The ModuleScript provides two simple client-side functions.
module.PromptThirdPartyPurchase(modelId: number): boolean
Prompts the purchase of a specific modelId to the user. This function assumes the asset does not belong to the experience owner (it does not perform owner verification).
Returned boolean is neither a consistent marker for a successful purchase nor for the AllowThirdPartySales property.
Note: You must call this function first to force Roblox to evaluate the purchase request and trigger the possible rejection of transaction needed for the next function!
module.GetAllowThirdPartySales(): boolean
This returns the deduced AllowThirdPartySales property after PromptThirdPartyPurchase was ran.
The returned value should be interpreted as follows:
nil = PromptThirdPartyPurchase hasn’t been run yet or has been run incorrectly
false = AllowThirdPartySales is very likely disabled
true = It is assumed that AllowThirdPartySales is enabled