i am using promptproduct purchase for developer products i'm selling and promptpurchase for me gamepasses. i'm getting complaints from players about being prompted to purchase my game passes, but i don't have any auto-prompts running, only clickdetectors to prompt whoever clicks it. i've been selling developer products for awhile and haven't had complaints about being prompted, but i just added gamepasses to be purchased ingame and now i'm getting the complaints about being prompted to buy a pass, so i assume it's only doing this when a player clicks to purchase a gamepass, and not a developer product. the only difference between the two one uses promptproductpurchase and the other uses promptpurchase. i have the prompt script in a serverscript located inside player gui. this is what i'm doing, what dshould i do differently?
buyButton.MouseClick:connect(function(player)
game:GetService("MarketplaceService"):PromptPurchase(player, productId)
end)
EDIT
here's the test place with a copy of the scripts.
I've moved the prompt script to a local script inside of playergui
here's my code
--this is the localscript
local assetid
local player
local function showinfoproduct()
local store = script.Parent.store
local image = store.frame.frame.Thumbnail
local name = store.frame.frame.ItemName
local price = store.frame.frame.CurrencyAmount
local price2 = store.frame.frame.CurrencyAmount2
local disc = store.frame.description
local asset = game:GetService("MarketplaceService"):GetProductInfo(assetid, Enum.InfoType.Product)
price.Text = asset.PriceInRobux
price2.Text = asset.PriceInTickets
disc.Text = asset.Description
name.Text = asset.Name
store.frame.Visible = true
image.Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=110&height=110&assetId=" .. assetid
end
local buybutton = workspace.Part.ClickDetector
local buybutton1 = workspace.Part1.ClickDetector
local developerproductid = 23348913
buybutton.MouseClick:connect(function(player)
game:GetService("MarketplaceService"):PromptProductPurchase(game.Players.LocalPlayer, developerproductid)
end)
buybutton1.MouseClick:connect(function(player)
assetid = developerproductid
showinfoproduct()
game:GetService("MarketplaceService"):PromptProductPurchase(game.Players.LocalPlayer, developerproductid)
end)
shirtbutton.MouseClick:connect(function(player)
assetid = shirtid
showinfoasset()
game:GetService("MarketplaceService"):PromptPurchase(game.Players.LocalPlayer, shirtid)
end)
shirtbutton1.MouseClick:connect(function(player)
game:GetService("MarketplaceService"):PromptPurchase(game.Players.LocalPlayer, shirtid)
end)
with this above, in a local script it is prompting everyone not just the player who clicks. and it shows the description gui to all players
but if i move it to a serverscript it only prompts the player who clicked. but it opens the description gui on all players.
--this is the serverscript
local assetid
local player
local function showinfoasset()
local store = script.Parent.store1
local image = store.frame.frame.Thumbnail
local name = store.frame.frame.ItemName
local price = store.frame.frame.CurrencyAmount
local price2 = store.frame.frame.CurrencyAmount2
local disc = store.frame.description
local asset = game:GetService("MarketplaceService"):GetProductInfo(assetid)
price.Text = asset.PriceInRobux
price2.Text = asset.PriceInTickets
disc.Text = asset.Description
name.Text = asset.Name
store.frame.Visible = true
image.Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=110&height=110&assetId=" .. assetid
end
local function showinfoproduct()
local store = script.Parent.store1
local image = store.frame.frame.Thumbnail
local name = store.frame.frame.ItemName
local price = store.frame.frame.CurrencyAmount
local price2 = store.frame.frame.CurrencyAmount2
local disc = store.frame.description
local asset = game:GetService("MarketplaceService"):GetProductInfo(assetid, Enum.InfoType.Product)
price.Text = asset.PriceInRobux
price2.Text = asset.PriceInTickets
disc.Text = asset.Description
name.Text = asset.Name
store.frame.Visible = true
image.Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=110&height=110&assetId=" .. assetid
end
local buybutton= workspace.Part.ClickDetector
local buybutton1= workspace.Part1.ClickDetector
local developerproductid = 23348913
buybutton.MouseClick:connect(function(player)
game:GetService("MarketplaceService"):PromptProductPurchase(player, developerproductid)
end)
buybutton1.MouseClick:connect(function(player)
assetid = developerproductid
showinfoproduct()
game:GetService("MarketplaceService"):PromptProductPurchase(player, developerproductid)
end)
local shirtbutton = game.Workspace.purple.shirtbuy.ClickDetector
local shirtbutton1 = game.Workspace.purple1.shirtbuy.ClickDetector
local shirtid = 235468209--purple
shirtbutton.MouseClick:connect(function(player)
assetid = shirtid
showinfoasset()
game:GetService("MarketplaceService"):PromptPurchase(player, shirtid)
end)
shirtbutton1.MouseClick:connect(function(player)
game:GetService("MarketplaceService"):PromptPurchase(player, shirtid)
end)
ok fixed now. I've pasted the corrected script below.
local assetid
local player
local function showinfoasset()
local store = game.Players:FindFirstChild(player.Name).PlayerGui.store
local image = store.frame.frame.Thumbnail
local name = store.frame.frame.ItemName
local price = store.frame.frame.CurrencyAmount
local price2 = store.frame.frame.CurrencyAmount2
local disc = store.frame.description
local asset = game:GetService("MarketplaceService"):GetProductInfo(assetid)
price.Text = asset.PriceInRobux
price2.Text = asset.PriceInTickets
disc.Text = asset.Description
name.Text = asset.Name
store.frame.Visible = true
image.Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=110&height=110&assetId=" .. assetid
end
local function showinfoproduct()
local store = game.Players:FindFirstChild(player.Name).PlayerGui.store
local image = store.frame.frame.Thumbnail
local name = store.frame.frame.ItemName
local price = store.frame.frame.CurrencyAmount
local price2 = store.frame.frame.CurrencyAmount2
local disc = store.frame.description
local asset = game:GetService("MarketplaceService"):GetProductInfo(assetid, Enum.InfoType.Product)
price.Text = asset.PriceInRobux
price2.Text = asset.PriceInTickets
disc.Text = asset.Description
name.Text = asset.Name
store.frame.Visible = true
image.Image = "http://www.roblox.com/Thumbs/Asset.ashx?width=110&height=110&assetId=" .. assetid
end
local dvbutton = workspace.Part.ClickDetector
local dvbutton1 = workspace.Part1.ClickDetector
local developerproductid = 23348913
dvbutton1.MouseClick:connect(function(clicker)
print(clicker)
player = clicker
game:GetService("MarketplaceService"):PromptProductPurchase(clicker, developerproductid)
end)
dvbutton.MouseClick:connect(function(clicker)
print(clicker)
player = clicker
assetid = developerproductid
showinfoproduct()
game:GetService("MarketplaceService"):PromptProductPurchase(clicker, developerproductid)
end)

1 comment
There's absolutely no reason for this at all, if the given code is the only code that controls the prompting. Do you have skype? Perhaps I can help you better from there.