Problem with C0

The C0 changes by itself when running the function a couple of times

EquipRemote.OnServerEvent:Connect(function(Player , Equipped)
	local Character = Player.Character
	local Weapon = Character:FindFirstChild("CurrentPlayerWeapon"):FindFirstChild("Weapon")
	local Grip = Weapon:FindFirstChild("Grip")
	local Motor6D = Grip:FindFirstChild("Motor6D")
	if Equipped == false then
		Motor6D.C0 = CFrame.new(Vector3.new(0,0,0)) * CFrame.Angles(0, 0, 0)

		CombatModule.Equip(Character)
	elseif Equipped == true then
		Motor6D.C0 = CFrame.new(Vector3.new(0,0,0)) * CFrame.Angles(0, 0, 0)
		Motor6D.C0 = CFrame.new(Vector3.new(0,0,0.6)) * CFrame.Angles(29.998, 89.999, -0)

		CombatModule.Unequip(Character)
	end

end)

Is it because you may be calling this function again while it’s still running?
A debounce might help so the function isn’t happening multiple times.

Also why set the Motor6D back to 0,0,0 when it should already be that if it was there already when false?

	elseif Equipped == true then
		Motor6D.C0 = CFrame.new(Vector3.new(0,0,0)) * CFrame.Angles(0, 0, 0) --here
		Motor6D.C0 = CFrame.new(Vector3.new(0,0,0.6)) * CFrame.Angles(29.998, 89.999, -0)