So I have a coin script that gives you one coin when you step on it. I made a gamepass you can buy where you get 3 coins every time you step on a coin. (A coin trippler). Although I get 9 coins instead of 3.
local db = true
local passId = 297078187
script.Parent.Touched:connect(function(obj)
local player = game.Players:FindFirstChild(obj.Parent.Name)
if player and db then
db = false
local coins = player.leaderstats.Coins
workspace.Sounds.CoinSound:Play()
for i = 0, 1, .1 do
script.Parent.Transparency = i
wait()
end
local coins = player.leaderstats.Coins
if game:GetService("MarketplaceService"):PlayerOwnsAsset(player, passId) then
coins.Value = coins.Value + 3
else
coins.Value = coins.Value + 1
end
script.Parent:Destroy()
db = true
end
end)
---put this in workspace
Any idea how this happens? Thanks.

2 comments
I don't think there is a error and you can touch the coin giver a lot of times so 9 coins wouldn't be a problem in my opinion.
Yes I see that but when I touch it once it gives me nine.