I have an OnTouch function for a teleporter and the debounce works but the function still fires twice. here is the code if you want to see it, its messy

par = script.Parent
local debounce = false
local Workspace = game.Workspace
function doani(player)
		--just a tween animation, removed to make the code less messy
end
par.Touched:Connect(function(part)

	if debounce then return end
	if part.Parent:FindFirstChild("Humanoid") then
		debounce = true
		local player = game.Players:GetPlayerFromCharacter(part.Parent)
		local partToTp = part.Parent:FindFirstChild("Humanoid").Parent:FindFirstChild("HumanoidRootPart")
		local Destination = par.Parent.Parent["Portal A"].portal
		par.Woosh:Play()
		spawn(function()
			doani(player)
		end)
		wait(0.7)
		partToTp.CFrame = (Destination.CFrame * CFrame.new(0,0,7))
		wait(0.6)
		debounce = false
	end
end)