Damage remote event firing twice when attacking a player, but once when attacking a dummy?

hello! im trying to get the hitbox system im using working, however the damage remote event is for some reason getting fired twice??

image
when attacking a dummy, it works as normal, only firing once (see prints from server dmg script)

however! when attacking a player, it fires twice??
image
as you can see the debounce is still true, however it still fires, and for some reason trying to find the source says its not available, as seen above. the source is only not available for one set of the prints, as the latter shows the correct path and source

slashCaster.HumanoidCollided:Connect(function(result,hitHum)
	if canCollide == true then
		canCollide = false -- canCollide = true is put somewhere else before the attack
		print("collideOff")
		slashCaster:Stop()
		print("hit" .. slashType.Value)
		RemotesFolder.humanoidHit:FireServer(hitHum, slashType.Value)
	end
end)

above is the code that fires the event (turning the fireserver into a comment does not fire the server at all, meaning another script firing the same event is not possible)

below is the code that runs when it is fired, its quite big, sorry!

RemotesFolder.humanoidHit.OnServerEvent:Connect(function(player,hitHum,slashType)
	if debounce.Value == false then
		debounce.Value = true -- debounce.Value = false is again, put somewhere else before the slash
		print("debounce " .. tostring(debounce.Value))
		print("Dmg" .. slashType)
		local isSlash = hitHum:FindFirstChild("slash")
		local isBlock = hitHum:FindFirstChild("block")
		local isRoll = hitHum:FindFirstChild("roll")
		local isParry = hitHum:FindFirstChild("parry")
		local hitChar = hitHum.Parent
		local hitPlayer = nil
		if isParry and isParry.Value == true and hitHum.Health > 0 then
			print("Parried!")
			RemotesFolder.beenParriedSfx:FireClient(player)
			RemotesFolder.beenParried:FireClient(player)
			hitHum:TakeDamage(0)
		elseif isBlock and isBlock.Value == true and hitHum.Health > 0 then
			print("Blocked!")
			if slashType == "norm" then
				RemotesFolder.beenBlockedSfx:FireClient(player)
				hitHum:TakeDamage(100/4)
			elseif slashType == "heavy" then
				RemotesFolder.bloodSfx:FireClient(player)
				hitHum:TakeDamage(50)	
				if hitPlayer then
					print("attempted to send blockBroken!")
					RemotesFolder.blockBroken:FireClient(hitPlayer)
				end
			end
			task.wait(0.1)
			if hitHum.Health <= 0 then
				local leaderstats = player:FindFirstChild("leaderstats")
				local Petals = leaderstats:FindFirstChild("Petals")
				Petals.Value += 3
				gotKill:FireClient(player)
			end
		elseif isRoll and isRoll.Value == true and hitHum.Health > 0 then
			print("Rolled!")
			hitHum:TakeDamage(0)
		elseif hitHum.Health > 0 then	
			print("Hit!")
			if slashType == "norm" then
				RemotesFolder.bloodSfx:FireClient(player)
				hitHum:TakeDamage(100)
			elseif slashType == "heavy" then
				RemotesFolder.bloodSfx:FireClient(player)
				hitHum:TakeDamage(150)
			end
			task.wait(0.1)
			if hitHum.Health <= 0 then
				local leaderstats = player:FindFirstChild("leaderstats")
				local Petals = leaderstats:FindFirstChild("Petals")
				Petals.Value += 3
				gotKill:FireClient(player)
			end
		else
			print ("Humanoid is Dead.")
		end
	end
end)

at this point ive tried so many things that im convinced this is some sort of roblox studio bug

Is your canCollide variable in the localscript your debounce?

yep, as said in the comment its set to true before this “humanoidcollided” happens

bumping this, still need help!

can u try debugging all variables

try add print("debounce " … tostring(debounce.Value))
after RemotesFolder.humanoidHit.OnServerEvent:Connect(function(player,hitHum,slashType)
and before if debounce.Value == false then

image
did that and this is the result, whats going on?

u can see its said false are u sure the variable u set to true is correctly and is there other line that set the debounce value to false?

dbChange.OnServerEvent:Connect(function(player)
	debounce.Value = false
	print("debounce " .. tostring(debounce.Value))
end)

above the second script is this, but it would be printing the debounce value if it were setting it to false, but it isnt so i dont think it is setting it to false. there are no other things that set the debounce to false.

bumping, still need help!!! please and thank u

try this, in localscript at the Humancollide connect you do “print(“collide”)” before the if canCollide… and if u want comment the codes too so you only check if the collide does twice