HELP! I'm trying to get my badges to award player points and they do - except they award it more than once despite a debounce and a check to see if the player has the badge?
Can anyone help? MD
ALSO: Is there anyway to test that this is working without getting other users without the badges to test it?
local awarded = false function OnTouch(part) if (part.Parent:FindFirstChild("Humanoid") ~= nil) then local p = game.Players:GetPlayerFromCharacter(part.Parent) if (p ~= nil) then if not awarded then awarded = true if game:GetService("BadgeService"):UserHasBadge(p.userId, 108424740) then print("Badge already awarded, no Player Points or Badge was given out") wait(2) awarded = false else print("Awarding BadgeID: " ..script.Parent.BadgeID.Value .. " to UserID: " .. p.userId) local b = game:GetService("BadgeService") b:AwardBadge(p.userId, script.Parent.BadgeID.Value) p.PlayerGui.PlayerPoints.Frame.Label.Text = "You just earned 5 Player Points" if game.PointsService:GetAwardablePoints() >= 1 then game.PointsService:AwardPoints(p.userId,5) awarded = false p.PlayerGui.PlayerPoints.Frame.Visible = true p.PlayerGui.PlayerPoints.Frame:TweenPosition(UDim2.new(0.2, 0, 0, 0), "In") wait(5) p.PlayerGui.PlayerPoints.Frame:TweenPosition(UDim2.new(0.2, 0, -0.2, 0), "Out") end end end end end end script.Parent.Touched:connect(OnTouch)