I don't know what's wrong with this script. I see nothing wrong with it(perhaps i must've missed something), and there's no errors.
Basically, when you touch the coin, the script checks for your humanoid, if so it creates a variable to the player then adds 1 to the CoinsValue inside a gui in the player's PlayerGui. Then it turns all the decals inside the part, and the part's transparency to 1. It then turns the debounce on so it doesn't repeat for 20 seconds. AND then after 20 seconds, it becomes visible and the debounce turns off.
script:
while true do
wait()
script.Parent.Rotation = script.Parent.Rotation + Vector3.new(0, 0, 2)
end
debounce = true
script.Parent.Touched:connect(function(hit)
print("touched")
if hit.Parent.Humanoid ~= nil and debounce == true then
print("humanoid found")
local plr = game.Players:GetPlayerFromCharacter(hit.Parent)
plr.PlayerGui.Coins.TextLabel.CoinsValue.Value = plr.PlayerGui.Coins.TextLabel.CoinsValue.Value + 1
script.Parent.Transparency = 1
print("destroying coin")
debounce = false
for i,v in pairs(script.Parent:GetChildren()) do
if v.Name == "Decal" and debounce == false then
v.Transparency = 1
end
end
end
print("resetting coin")
wait(20)
debounce = true
script.Parent.Transparency = 0
for i,v in pairs(script.Parent:GetChildren()) do
if v.Name == "Decal" and debounce == true then
v.Transparency = 0
end
end
end)
It doesn't print anything in the output either.
