Okay, so I have an item in my game that will give you a random shout out(message) that will show up on every player's screen when you purchase it for a certain amount of robux. Sure it's cheesy or stupid, but I'm not here for your criticism I just want help. So it works but if the player buys it 2 times in a row it will get all glitchy. If another user buys it, it works fine but the problem is if the same user buys a shout out 2 times in a row the shout out will glitch and give 2 messages and 1 of the messages will say the default text (meaning it has not changed the message on the text). I'm a little bad at describing things so if you have any questions just ask. I don't think it's a problem with the variables because everything works I just think there's something wrong and I can't seem to find a solution.
The script (found in workspace):
local MarketplaceService = Game:GetService("MarketplaceService")
local doublecoinsId = 21809336
local shoutoutId = 21812513
MarketplaceService.ProcessReceipt = function(receiptInfo)
-- find the player based on the PlayerId in receiptInfo
for i, player in ipairs(game.Players:GetChildren()) do
if player.userId == receiptInfo.PlayerId then
-- check which product was purchased
if receiptInfo.ProductId == doublecoinsId then
-- handle purchase. In this case we are healing the player.
player.PlayerGui.MainScreen.PlayerValues.HasCoinBooster.Value = true
-- more feedback for the player.
player.PlayerGui.MainScreen.Alert.Visible = true
player.PlayerGui.MainScreen.Alert.Message.Text = "Purchase successful, the coinbooster will last until you die or until the next game ends!"
elseif receiptInfo.ProductId == shoutoutId then
for i, playeralert in ipairs(game.Players:GetChildren()) do
if player.Character and player.Character:FindFirstChild("Torso") then
end
local clone = game.Lighting.GoodCard:Clone()
clone.Parent = playeralert.PlayerGui.MainScreen
local randomsayingnum = math.random(1, 4)
if randomsayingnum == 1 then
clone.Message.Text = player.Name " is an MLG PRO, just sayin..."
elseif randomsayingnum == 2 then
clone.Message.Text = "Say in-chat HI " .. player.Name .. " over and over again until your fingers are bleeding!"
elseif randomsayingnum == 3 then
clone.Message.Text = "Go send " ..player.Name .. " a friend request because he da bozz!"
elseif randomsayingnum == 4 then
clone.Message.Text = "Shoutout to " ..player.Name .. " for being so awesome and skilled, you should be more like him!"
end
wait()
end
end
end
end
return Enum.ProductPurchaseDecision.PurchaseGranted
end
