local function PlayRandomSound(ent, min, max, str)
	if !IsValid(ent) then return end
	sound.Play(str..math.random(min,max)..".wav", ent:GetPos(), 75)
end

local function effects_takedown(ply, targetModel, animName)
	local targetHeadBone = targetModel:LookupBone("ValveBiped.Bip01_Head1")
    if animName == "killmove_leatherface_01" then
	    timer.Simple(0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/Cin_Execution_LF_01_Saw.wav", targetModel:GetPos())	
			sound.Play("tcm/chainsaw/sfx_chainsaw_start_01.wav", targetModel:GetPos())
        end)
		timer.Simple(0.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
		    sound.Play("tcm/executions/Cin_Execution_LF_01_Gore.wav", targetModel:GetPos())	
        end)
		timer.Simple(0.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 3, "tcm/swing_foley/sfx_giant_grab_swing_sweet_0")			              			
        end)			
        timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_start_0")
			sound.Play("tcm/chainsaw/sfx_chainsaw_gore_loop.wav", targetModel:GetPos())		
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(1.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(4.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(4.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(4.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(4.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_end_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_end_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(4.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			sound.Play("tcm/death/sfx_survivor_incapped_bodyfall_right_01.wav", targetModel:GetPos())
        end)
        timer.Simple(5.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			sound.Play("tcm/death/sfx_survivor_incapped_bodyfall_forward_01.wav", targetModel:GetPos())
        end)				
    end
	
	if animName == "killmove_leatherface_02" then
	    timer.Simple(0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/chainsaw/sfx_chainsaw_start_01.wav", targetModel:GetPos())
            PlayRandomSound(targetModel, 1, 3, "tcm/cloth_foley/sfx_cloth_backpack_jump_0")					
        end)
		timer.Simple(0.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 3, "tcm/swing_foley/sfx_giant_grab_swing_sweet_0")			              			
        end)
	    timer.Simple(0.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/Cin_Execution_LF_02_Saw.wav", targetModel:GetPos())
            sound.Play("tcm/executions/Cin_Execution_LF_02_Gore.wav", targetModel:GetPos())	              			
        end)
        timer.Simple(1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_start_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(1.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 3, "tcm/swing_foley/sfx_giant_grab_swing_sweet_0")			              			
        end)			
        timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_start_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 1, "tcm/death/sfx_survivor_incapped_bodyfall_forward_0")			
        end)
        timer.Simple(7.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 3, "tcm/cloth_foley/sfx_cloth_backpack_jump_0")
			sound.Play("tcm/misc/sfx_survivor_get_up_strangler.wav", targetModel:GetPos())	          				
        end)				
        timer.Simple(9.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_start_0")
			--PlayRandomSound(targetModel, 2, 16, "tcm/misc/Static_Design_0")
			sound.Play("tcm/chainsaw/sfx_chainsaw_gore_loop.wav", targetModel:GetPos())								
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(9.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(10.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")	
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(10.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(11, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(11.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(11.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(11.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(11.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(12, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)
        timer.Simple(12.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_gore_end_0")
			PlayRandomSound(targetModel, 1, 3, "tcm/chainsaw/sfx_chainsaw_end_0")				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
        end)	
        timer.Simple(12.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			sound.Play("tcm/death/sfx_survivor_incapped_bodyfall_right_01.wav", targetModel:GetPos())
        end)			
    end

	if animName == "killmove_cook_01" then
		timer.Simple(0.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/AK_Play_Cin_Execution_Cook_01_Gore.wav", targetModel:GetPos())		
		end)	
		timer.Simple(4.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end		
			PlayRandomSound(targetModel, 1, 5, "tcm/impact/sfx_melee_impact_baby_spider_0")		
		end)
		timer.Simple(4.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end		
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")	
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)	
		timer.Simple(5.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end		
			sound.Play("tcm/death/sfx_survivor_incapped_bodyfall_right_01.wav", targetModel:GetPos())
		end)
		timer.Simple(6.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end		
			sound.Play("tcm/death/sfx_survivor_incapped_bodyfall_back_01.wav", targetModel:GetPos())
		end)			
	end

	if animName == "killmove_cook_03" then
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/Cin_Execution_Cook_03_Gore.wav", targetModel:GetPos())	
		end)	
		timer.Simple(0.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")	
		end)
		timer.Simple(1.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")
		end)
		timer.Simple(1.85, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")
		end)
		timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end	
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)
		timer.Simple(3.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/misc/sfx_adrenaline_effect_heartbeat_loop.wav", targetModel:GetPos())
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")	
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)
		timer.Simple(6.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end	
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end
		end)	
		timer.Simple(8.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 4, "tcm/impact/sfx_weapons_generic_impact_body_0")
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)				
	end

	if animName == "killmove_johnny_01" then
		timer.Simple(0.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/AK_Play_Cin_Execution_Johnny_01_Gore.wav", targetModel:GetPos())	
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
		end)	
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_leather_0")
		end)
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 8, "tcm/impact/sfx_pipe_hit_gore_0")
		end)
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end			
		end)
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_leather_0")	
		end)
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 8, "tcm/impact/sfx_pipe_hit_gore_0")
		end)
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end			
		end)
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_leather_0")	
		end)
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 8, "tcm/impact/sfx_pipe_hit_gore_0")
		end)
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
				util.Effect("BloodImpact", effectdata)
			end			
		end)
		timer.Simple(5.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end			
		end)
		timer.Simple(5.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/misc/sfx_survivor_get_up_strangler.wav", targetModel:GetPos())	
		end)	
	end

	if animName == "killmove_hiker_01" then
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("tcm/executions/AK_Play_Cin_Execution_Hitch_01_Gore.wav", targetModel:GetPos())	
			PlayRandomSound(targetModel, 1, 10, "tcm/cloth_foley/sfx_cloth_jeans1_walk_0")			
		end)	
		timer.Simple(0.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_cloth_0")	
		end)
		timer.Simple(1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end			
		end)
		timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_cloth_0")			
		end)
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end			
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_cloth_0")			
		end)			
		timer.Simple(2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end		
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)	
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(targetModel, 1, 6, "tcm/swing_foley/sfx_melee_foley_swing_cloth_0")			
		end)			
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
		end)
	end

	if animName == "killmove_slasher_front" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
            sound.Play("executions/sfx_slasher_execution_front_3D2108D6.wav", targetModel:GetPos())
		end)
	    timer.Simple(5.6, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	end

	if animName == "killmove_slasher_front_unused" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
            sound.Play("executions/front_slasher_unused.wav", targetModel:GetPos())
		end)
	    timer.Simple(1.4, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	end

	if animName == "killmove_strangler_front" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
			sound.Play("executions/sfx_strangler_execution_front_3D2108D6.wav", targetModel:GetPos())
		end)
		timer.Simple(2.2, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	    timer.Simple(3.2, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
		timer.Simple(5.1, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	end

	if animName == "killmove_giant_front" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
		end)
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/sfx_giant_execution_front_E56FEEA2.wav", targetModel:GetPos())
		end)
	    timer.Simple(3.3, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
    	end)
	end

	if animName == "killmove_giant_front_unused" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
			sound.Play("executions/giant_front_unused.wav", targetModel:GetPos())
		end)
	    timer.Simple(3.6, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end
    	end)
	end

	if animName == "killmove_giant_ambush" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
			sound.Play("executions/giant_ambush.wav", targetModel:GetPos())
		end)
	    timer.Simple(3.3, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
		end)
	    timer.Simple(4, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
		end)
	    timer.Simple(5, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
		end)
	    timer.Simple(7, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
    	end)
	end

	if animName == "killmove_slasher_fallback" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
			sound.Play("executions/sfx_slasher_execution_fallback_3D2108D6.wav", targetModel:GetPos())
		end)
		timer.Simple(2, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	    timer.Simple(3, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
    	end)
	end

    if animName == "killmove_giant_back" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
			sound.Play("executions/sfx_giant_execution_hulk_3D2108D6.wav", targetModel:GetPos())
	    end)
	    timer.Simple(1.8, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
	    end)
	    timer.Simple(3.3, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
	    end)
	    timer.Simple(4, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
	    end)
	    timer.Simple(5, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
        end)
    end

	if animName == "killmove_giant_backstomp" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())

	    end)
		timer.Simple(0.68, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("executions/sfx_giant_execution_back_3D2108D6.wav", targetModel:GetPos())
	    end)
	    timer.Simple(1.9, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
	    end)
	    timer.Simple(3.2, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
	    end)
	    timer.Simple(4.8, function()
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
	        end 
        end)
    end

    if animName == "killmove_slasher_back" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end

			sound.Play("executions/LY_DC_Stinger_SurvivorWitnessExecution_F5818CF0.wav", targetModel:GetPos())
        end)	
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end

			sound.Play("executions/sfx_slasher_execution_back_3D2108D6.wav", targetModel:GetPos())	
        end)
		timer.Simple(5.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
				
			if targetHeadBone != nil then
				local effectdata = EffectData()
				effectdata:SetOrigin(targetModel:GetBonePosition(targetHeadBone))
				util.Effect("BloodImpact", effectdata)
			end
        end)
    end

	if animName == "killmove_evildead_shovel_01" or animName == "killmove_evildead_etool_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
		
		-- ShovelImpactLight | BodyParts
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Flesh_Light_2D_0")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")	  		 				
		end)
		
		-- Swing 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")					
		end)
		
		-- Main
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/shovel/a1839_Shovel_Finisher_A.wav", ply:GetPos())  
		end)
		
		-- Swing 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
		
		-- ShovelImpactHeavy | BodyParts
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Flesh_Heavy_2D_0")	  
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- BloodSplash
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end    
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	  				
		end)
		
		-- BodyFall
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	  				
		end)		
	end

	if animName == "killmove_evildead_shovel_02" or animName == "killmove_evildead_etool_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
		
		-- ShovelImpactLight | BodyParts
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Flesh_Light_2D_0")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")	  		 				
		end)

		-- Main
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/shovel/a1839_Shovel_Finisher_C.wav", ply:GetPos())  
		end)
		
		-- BodyParts | HeadSmash
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end    
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")					
		end)
		
		-- BodyFall
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	  				
		end)
		
		-- Swing 
		timer.Simple(2.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
	end

	if animName == "killmove_evildead_shovel_03" or animName == "killmove_evildead_etool_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)

		-- Swing 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
		
		-- ShovelImpactLight | BodyParts
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Flesh_Light_2D_0")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")	  		 				
		end)
		
		-- Swing 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/shovel/Shovel_Swing_2D_0")	  				
		end)
		
		-- HeadSmash | BodyParts
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_01")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")					
		end)
		
		-- Swing 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")	  				
		end)
		
		-- HeadSmash | BodyParts
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_01")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")					
		end)
		
		-- Swing 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")	  				
		end)
		
		-- HeadOff 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/Head_Off.wav", ply:GetPos())  				
		end)
		
		-- HeadSmash | BodyParts
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_01")	 
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")					
		end)

		-- Main
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/shovel/a1839_Shovel_Finisher_B.wav", ply:GetPos())  
		end)
		
		-- BodyFall
		timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_machete_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2206_Machete_Finisher_01_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")	  				
		end)
		
		-- BodyParts | BloodShake 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")					
		end)
		
		-- Grab
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")	   				
		end)
		
		-- BodyFall
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- Main 
		timer.Simple(1.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2206_Machete_Finisher_01_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")	  				
		end)
		
		-- BodyParts | BloodShake | HeadSmash 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")					
		end)
		
		-- Swing 
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")	  				
		end)
		
		-- BodyParts | BloodShake | BloodSplash
		timer.Simple(3.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")				
		end)
	end

	if animName == "killmove_evildead_machete_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2745_Machete_Finisher_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")			
		end)
		
		-- BodyParts | BloodShake | HeadSmash 
		timer.Simple(0.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)
		
		-- Main 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2745_Machete_Finisher_02_B.wav", ply:GetPos())    				
		end)
		
		-- Grab
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")	   				
		end)
		
		-- Swing 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")			
		end)
					
		-- BodyParts | BloodShake | HeadSmash 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)
		
		-- BloodShake
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")					
		end)
		
		-- BloodShake
		timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")					
		end)
		
		-- Swing 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")			
		end)
		
		-- BloodSplash 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")		
		end)
		
		-- BodyFall
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_machete_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2751_Machete_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")						
		end)
		
		-- BodyParts | BloodShake 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")					
		end)
		
		-- Swing 
		timer.Simple(1.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")						
		end)
		
		-- BodyParts | BloodShake | HeadSmash 
		timer.Simple(1.23, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)
		
		-- Main 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2751_Machete_Finisher_03_B.wav", ply:GetPos())    				
		end)
		
		-- BodyFall
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- BloodSplash | BloodShake
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")				
		end)
		
		-- BloodShake
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   	
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")				
		end)
		
		-- Swing 
		timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/machete/Machete_Swing_0")						
		end)
	end

	if animName == "killmove_evildead_butcherknife_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/machete/a2751_Machete_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeCut 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- ImpactEgg 
		timer.Simple(1.05, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")						
		end)
		
		-- Swing 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeRip 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- BloodSplash | BloodShake
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")				
		end)
		
		-- Main 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_C.wav", ply:GetPos())    				
		end)
		
		-- BodyFall
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_butcherknife_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeWoosh 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/Knife_Whoosh.wav", ply:GetPos())   						
		end)
		
		-- KnifeCut 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- Main 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a2698_ButcherKnife_Finisher_04_B.wav", ply:GetPos())    				
		end)
		
		-- GrabKnife 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/knife/o0013_HuntingKnife_PickUp_0")						
		end)
		
		-- HandSlap 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/Hand_Slap.wav", ply:GetPos()) 				
		end)
		
		-- Swing 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeRip 
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- BloodSplash | BloodShake
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")				
		end)
		
		-- BodyFall
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_butcherknife_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a2698_ButcherKnife_Finisher_04_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeCut 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- Swing 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")						
		end)
		
		-- KnifeCut 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")						
		end)
		
		-- Main 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a2698_ButcherKnife_Finisher_04_B.wav", ply:GetPos())    				
		end)
		
		-- Grab 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")				
		end)
		
		-- KnifeRip
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Rip_2D_0")						
		end)
		
		-- BloodSplash | BloodShake
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")				
		end)
		
		-- BodyFall
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_sword_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a1928_Sword_Finisher_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordLight 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Light_2D_0")						
		end)
		
		-- Main 
		timer.Simple(1.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a1928_Sword_Finisher_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- Swing 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordLight 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Light_2D_0")						
		end)
		
		-- BloodShake 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")						
		end)
		
		-- BloodShake 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")						
		end)
		
		-- Main 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a1928_Sword_Finisher_C.wav", ply:GetPos())    				
		end)
		
		-- BloodShake 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")						
		end)			
		
		-- SwordHeavy
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Heavy_2D_0")						
		end)
		
		-- Swing 
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- BloodSplash 
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)
					
		-- BodyFall
		timer.Simple(4.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_sword_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a2697_Sword_Finisher_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordLight 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Light_2D_0")						
		end)
		
		-- Main 
		timer.Simple(1.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a2697_Sword_Finisher_02_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordLight 
		timer.Simple(1.65, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Light_2D_0")						
		end)
		
		-- Swing 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordHeavy
		timer.Simple(2.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Heavy_2D_0")						
		end)
		
		-- BloodSplash 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)
		
		-- BodyFall
		timer.Simple(3.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_sword_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a2783_Sword_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordLight 
		timer.Simple(0.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Light_2D_0")						
		end)
					
		-- Main 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a2783_Sword_Finisher_03_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordHeavy
		timer.Simple(1.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Heavy_2D_0")						
		end)
					
		-- Main 
		timer.Simple(1.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sword/a2783_Sword_Finisher_03_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Swing_2D_0")						
		end)
		
		-- SwordHeavy
		timer.Simple(2.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sword/Sword_Flesh_Heavy_2D_0")						
		end)
		
		-- BloodSplash 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)
		
		-- BodyFall
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_mace_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2925_Mace_01_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact 
		timer.Simple(0.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")					
		end)
		
		-- Main 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2925_Mace_01_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			--PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")					
		end)
		
		-- Main 
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2925_Mace_01_C.wav", ply:GetPos())    				
		end)
		
		-- Grab 
		timer.Simple(2.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)
		
		-- Swing 
		timer.Simple(3.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- Swing 
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(3.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")					
		end)
					
		-- BodyFall
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_mace_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2933_Mace_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")					
		end)
		
		-- BloodShake 
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")  				
		end)
		
		-- BloodShake 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 2, "bsmod/EvilDead/Blood_Shake_0")  				
		end)
			
		-- GrabMace 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/knife/o0013_HuntingKnife_PickUp_0")  				
		end)
		
		-- Main 
		timer.Simple(2.65, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2933_Mace_02_B.wav", ply:GetPos())    				
		end)
		
		-- HeadSmash 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")  				
		end)
		
		-- Swing 
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)	
		
		-- Swing 
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
					
		-- BodyFall
		timer.Simple(4.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
	end

	if animName == "killmove_evildead_mace_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2945_Mace_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Swing_0")  				
		end)
		
		-- MaceImpact 
		timer.Simple(0.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")					
		end)
		
		-- BodyFall
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- Main 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2945_Mace_03_B.wav", ply:GetPos())    				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- GrabMace 
		timer.Simple(4.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/knife/o0013_HuntingKnife_PickUp_0")  				
		end)
		
		-- Main 
		timer.Simple(4.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/mace/a2945_Mace_03_C.wav", ply:GetPos())    				
		end)
	end

	if animName == "killmove_evildead_sledge_01" or animName == "killmove_evildead_fubar_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a2238_Sledgehammer_Finisher_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)
		
		-- ImpactEgg 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")					
		end)
								
		-- Main 
		timer.Simple(0.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a2238_Sledgehammer_Finisher_02_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Swing_2D_0")  				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)	

		-- BodyFall
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)											
	end

	if animName == "killmove_evildead_sledge_02" or animName == "killmove_evildead_fubar_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a1407_SledgeHammer_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)
		
		-- SledgeHit 
		timer.Simple(0.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")  				
		end)

		-- BodyFall
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)			
								
		-- Main 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a1407_SledgeHammer_03_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Swing_2D_0")  				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)											
	end

	if animName == "killmove_evildead_sledge_03" or animName == "killmove_evildead_fubar_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a2752_SledgeHammer_Finisher_04_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)
		
		-- SledgeHit 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")  
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0") 				
		end)

		-- BodyFall
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)			
								
		-- Main 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/sledge/a2752_SledgeHammer_Finisher_04_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Swing_2D_0")  				
		end)
		
		-- MaceImpact | BloodSplash
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/mace/Mace_Impact_Crunch_0")	
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/sledge/o0003_SledgeHammer_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)											
	end

	if animName == "killmove_evildead_bat_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1135_BatNails_Finisher_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Swing_2D_0")  				
		end)
		
		-- BatHit 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")  
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0") 				
		end) 
		
		-- Main 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1135_BatNails_Finisher_02_B.wav", ply:GetPos())    				
		end)

		-- BodyFall
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

		-- Swing 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Swing_2D_0")  				
		end)

		-- BatHit 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")   				
		end)			

		-- Main 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1135_BatNails_Finisher_02_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Swing_2D_0")  				
		end)
		
		-- BatHit 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")   				
		end)

		-- Main 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1135_BatNails_Finisher_02_D.wav", ply:GetPos())    				
		end)				
		
		-- BatHit | BloodSplash
		timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)	         		
	end

	if animName == "killmove_evildead_bat_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1135_BatNails_Finisher_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_01")  				
		end)
		
		-- ImpactEgg 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")  				
		end) 
		
		-- Main 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a1330_BatNails_Finisher_03_B.wav", ply:GetPos())    				
		end)

		-- BodyFall
		timer.Simple(0.65, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)				
		
		-- BatHit | BloodSplash
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)	         		
	end

	if animName == "killmove_evildead_bat_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a2754_BatNails_Finisher_04_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Swing_2D_0")  				
		end)
		
		-- BatHit 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")  
			--PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0") 				
		end) 
		
		-- Main 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a2754_BatNails_Finisher_04_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Swing_2D_0")  				
		end)
		
		-- BatHit 
		timer.Simple(1.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")  				
		end) 
		
		-- Main 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/bat/a2754_BatNails_Finisher_04_C.wav", ply:GetPos())    				
		end)

		-- BatHit | BloodSplash
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/bat/o0012_BatNails_Flesh_2D_0")	
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)

		-- BodyFall
		timer.Simple(3.67, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)			
	end

	if animName == "killmove_evildead_knife_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- KnifeCut 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")  				
		end) 
		
		-- Main 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- KnifeCut 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Stab_2D_0")  				
		end)
		
		-- Main 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- KnifeCut 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Rip_2D_0")				
		end)

		-- BloodSplash
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end                 
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- Grab 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)
		
		-- BodyFall
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_knife_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1374_HuntingKnife_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- KnifeCut 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")  				
		end) 
		
		-- Main 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1374_HuntingKnife_Finisher_03_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- HeadSmash 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)

		-- BloodSplash
		timer.Simple(1.34, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end                 
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- BodyFall
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_knife_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- KnifeCut 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")  				
		end) 
		
		-- Main 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- HeadSmash 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/knife/o0013_HuntingKnife_Cut_2D_0")				
		end)
		
		-- Main 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_C.wav", ply:GetPos())    				
		end)

		-- KnifeRip | BloodSplash
		timer.Simple(2.12, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Rip_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- Swing 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Swing_2D_0")  				
		end)
		
		-- BodyFall
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_handaxe_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2762_HandAxe_Finisher_06_A.wav", ply:GetPos())    				
		end)
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  				
		end) 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  				
		end) 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2743_HandAxe_Finisher_05_A.wav", ply:GetPos())    				
		end)
		timer.Simple(2.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(2.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/knife/o0013_HuntingKnife_Rip_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_handaxe_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2762_HandAxe_Finisher_06_A.wav", ply:GetPos())    				
		end)
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  				
		end) 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(1.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2762_HandAxe_Finisher_06_B.wav", ply:GetPos())    				
		end)
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_handaxe_03" then
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2743_HandAxe_Finisher_05_A.wav", ply:GetPos())    				
		end)
		timer.Simple(0.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end) 
		timer.Simple(0.65, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  				
		end)
		timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end) 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2762_HandAxe_Finisher_06_C.wav", ply:GetPos())    				
		end)
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		timer.Simple(2.85, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_hands_01" then
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/punch/a2133_hands_finisher_01_a.wav", ply:GetPos())    				
		end)
		timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/fall_middle_0")	  				
		end)
		timer.Simple(2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_swing_2d_0")	  				
		end)
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/punch_impact_face_2d_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/head_smash_0")	  				
		end)
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_swing_2d_0")	  				
		end)
		timer.Simple(3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/punch_impact_face_2d_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/head_smash_0")	  				
		end)
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_swing_2d_0")	  				
		end)
		timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/punch_impact_face_2d_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/head_smash_0")	  				
		end)
	end

	if animName == "killmove_evildead_hands_02" then
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/punch/a2133_hands_finisher_01_b.wav", ply:GetPos())    				
		end)
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_impact_body_2d_0")	  				
		end)
		timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/punch_impact_face_2d_0")	  				
		end)
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_impact_body_2d_0")   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/blood_splash_0")	  				
		end)
	end

	if animName == "killmove_evildead_hands_03" then
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/punch/a2133_hands_finisher_01_c.wav", ply:GetPos())    				
		end)
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_impact_body_2d_0")    		 				
		end)
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/punch_swing_2d_0")	  				
		end)
		timer.Simple(2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/punch_impact_face_2d_0")		  				
		end)
	end

	if animName == "killmove_evildead_axe_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1219_LumberjackAxe_01_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		
		-- AxeLight 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- Main 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1219_LumberjackAxe_01_B.wav", ply:GetPos())    				
		end)
		
		-- Grab 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)
		
		-- AxeHeavy | BloodSplash
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- Swing 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		
		-- BodyFall
		timer.Simple(3.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_axe_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1432_LumberjackAxe_02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		
		-- AxeLight | BloodSplash
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")					
		end)
		
		-- Main 
		timer.Simple(1.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1432_LumberjackAxe_02_B.wav", ply:GetPos())    				
		end)
		
		-- Swing
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")	   				
		end)
		
		-- PunchImpact
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Impact_Body_2D_0")	   				
		end)			
			
		-- BodyFall
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_axe_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1102_Axe_Finisher03_A.wav", ply:GetPos())    				
		end)
		
		
		
		-- Swing
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")	   				
		end)	
		
		-- PunchImpact
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
				PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Impact_Body_2D_0")
		end)
		
		-- Main 
		timer.Simple(1.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			--sound.Play("bsmod/EvilDead/handaxe/a1432_LumberjackAxe_02_B.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1102_Axe_Finisher03_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		
		-- AxeLight | BloodSplash
		timer.Simple(1.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0") 				
		end)

		-- Main 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1102_Axe_Finisher03_C.wav", ply:GetPos())    				
		end)			
		
		-- Swing
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")	   				
		end)
		
		-- PunchImpact
		timer.Simple(2.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Impact_Body_2D_0")	   				
		end)
		
		-- Main 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a1102_Axe_Finisher03_D.wav", ply:GetPos())    				
		end)

		-- AxeHeavy | BloodSplash
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)			

		-- Swing 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)			
			
		-- BodyFall
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_axe_04" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/handaxe/a2758_LumberjackAxe_05_A.wav", ply:GetPos())    				
		end)
		
		 -- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/handaxe/o0002_HandAxe_Swing_2D_0")  				
		end)
		
		-- AxeLight 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Light_2D_0")  
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)

		-- AxeHeavy | BloodSplash
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/handaxe/o0002_HandAxe_Flesh_Heavy_2D_0")                
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)					
			
		-- BodyFall
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_hammer_01" or animName == "killmove_evildead_wrench_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1226_MeatHammer_Finisher_B.wav", ply:GetPos())    				
		end)
		
		 -- Swing 
		timer.Simple(0.15, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)
		
		-- ImpactBody 
		timer.Simple(0.25, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Impact_Body_2D_0")  
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")				
		end)
		
		-- Main 
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1226_MeatHammer_Finisher_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0") 				
		end)
		
		-- Main 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1226_MeatHammer_Finisher_D.wav", ply:GetPos())    				
		end)

		-- ImpactBody | BloodSplash
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")         
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0") 				
		end)					
			
		-- BodyFall
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_hammer_02" or animName == "killmove_evildead_wrench_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1340_MeatHammer_Finisher_A.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1340_MeatHammer_Finisher_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)

		-- Swing 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(0.65, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)
		
		-- Main 
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1340_MeatHammer_Finisher_C.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)

		-- Swing 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)
		
		-- Main 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1340_MeatHammer_Finisher_D.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)

		-- ImpactBody | BloodSplash
		timer.Simple(2.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")         
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0") 				
		end)			
			
		-- BodyFall
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_hammer_03" or animName == "killmove_evildead_wrench_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1342_MeatHammer_Finisher_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)
		
		-- Main 
		timer.Simple(0.35, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1342_MeatHammer_Finisher_C.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(0.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- HammerTime 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_2D_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0")
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)
					
		-- Swing 
		timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)
		
		-- KnifeGrab 
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/knife/o0013_HuntingKnife_PickUp_0")  				
		end)
		
		-- Main 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/hammer/a1342_MeatHammer_Finisher_D.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Swing_2D_0")  				
		end)

		-- ImpactBody | BloodSplash
		timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end 
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")         
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")	
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/hammer/o0064_MeatHammer_Flesh_3D_0") 				
		end)			
			
		-- BodyFall
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_chainsaw_01" or animName == "killmove_evildead_abrasivechainsaw_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a1863_Chainsaw_Finisher_A.wav", ply:GetPos())    				
		end)
		
		-- ChainsawStart 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_PickUp_0")  				
		end)
		
		-- ChainsawIdle
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_0")  			
		end)
		
		-- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- ImpactFace 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/punch/Punch_Impact_Face_2D_0")  				
		end)
		
		-- Main 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a1863_Chainsaw_Finisher_B.wav", ply:GetPos())    				
		end)
		
		-- Swing 
		timer.Simple(0.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Scrape 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Scrape.wav", ply:GetPos())   		
		end)
		
		-- Grab 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)			
		timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)			
		timer.Simple(1.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)			
		timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)			
		timer.Simple(1.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)			
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)		
		timer.Simple(2.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
			
		-- StopSaw 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Stop_0")  				
		end)
		
		-- Swing 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)

		-- BodyFall
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_chainsaw_02" or animName == "killmove_evildead_abrasivechainsaw_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a1863_Chainsaw_Finisher_A.wav", ply:GetPos())    				
		end)
		
		-- ChainsawStart 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_PickUp_0")  				
		end)
		
		-- ChainsawIdle
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- Swing 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- ChainsawIdle
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_02.wav", ply:GetPos())   			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(0.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(1.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- Swing 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- Swing 
		timer.Simple(2.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(3.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(3.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 				
		end)
		timer.Simple(3.9, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(4.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- Swing 
		timer.Simple(4.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- StopSaw 
		timer.Simple(5.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Stop_0")  				
		end)
		
		-- BodyFall
		timer.Simple(5.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
	end

	if animName == "killmove_evildead_chainsaw_03" or animName == "killmove_evildead_abrasivechainsaw_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2699_Chainsaw_Finisher_06_A.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2270_Chainsaw_Finisher_A.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2699_Chainsaw_Finisher_06_B.wav", ply:GetPos())    				
		end)
		
		-- ChainsawStart 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_PickUp_0")  				
		end)
		
		-- ChainsawIdle
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(3.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_03.wav", ply:GetPos())   			
		end)
		
		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(0.45, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- ChainsawAttack 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- ChainsawAttack 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(1.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")			
		end)
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")			
		end)
		timer.Simple(1.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(1.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")							
		end)
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(3.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")				
		end)
		timer.Simple(3.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- BodyFall
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- Swing 
		timer.Simple(3.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- StopSaw 
		timer.Simple(4.55, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Stop_0")  				
		end)
	end

	if animName == "killmove_evildead_chainsaw_04" or animName == "killmove_evildead_abrasivechainsaw_04" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a1863_Chainsaw_Finisher_A.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(1.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2717_Chainsaw_Finisher_07.wav", ply:GetPos())    				
		end)
		
		-- ChainsawStart 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
		   PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_PickUp_0")  				
		end)
		
		-- ChainsawIdle
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
					
		-- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(0.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(1.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- BodyFall
		timer.Simple(2.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- StopSaw 
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Stop_0")  				
		end)
	end

	if animName == "killmove_evildead_chainsaw_05" or animName == "killmove_evildead_abrasivechainsaw_05" then
		timer.Simple(0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end             				
		end)
		
		-- Main 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2820_Chainsaw_Finisher_08_A.wav", ply:GetPos())    				
		end)
		
		-- Main 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2820_Chainsaw_Finisher_08_B.wav", ply:GetPos())    				
		end)
		
		-- ChainsawStart 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
		   PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_PickUp_0")  				
		end)
		
		-- ChainsawIdle
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(1.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
		
		-- ChainsawIdle
		timer.Simple(2.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/Chainsaw_Idle_Loop_01.wav", ply:GetPos())   			
		end)
					
		-- Swing 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(0.4, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(0.6, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(0.7, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- Swing 
		timer.Simple(1.85, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/chainsaw/Chainsaw_Swing_0")  				
		end)
		
		-- ChainsawAttack 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
		   PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- ChainsawAttack 
		timer.Simple(2.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
		   PlayRandomSound(ply, 1, 9, "bsmod/EvilDead/chainsaw/Chainsaw_Attack_2D_0")  			
		end)
		
		-- Blade | Flesh | ChainsawEndChain
		timer.Simple(2.0, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 
			PlayRandomSound(ply, 1, 7, "bsmod/EvilDead/chainsaw/Chainsaw_Blade_0")				
		end)
		timer.Simple(2.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(2.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(3.1, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0") 			
		end)
		timer.Simple(3.5, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 16, "bsmod/EvilDead/chainsaw/Chainsaw_Flesh_0")
			PlayRandomSound(ply, 4, 9, "bsmod/EvilDead/chainsaw/Chainsaw_End_Chain_0") 	 				
		end)
		
		-- BodyFall
		timer.Simple(3.8, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)
		
		-- StopSaw 
		timer.Simple(4.3, function()
			if !IsValid(targetModel) or !IsValid(ply) then return end   
			PlayRandomSound(ply, 1, 3, "bsmod/EvilDead/chainsaw/Chainsaw_Stop_0")  				
		end)
	end

	------------------------------------------------------------
    if animName == "executions_angrystrangler_killer_front" then
	
	    ---------------------------- Main
		timer.Simple(0.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_AngryStrangler.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(1.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)	
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(3.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end
	
	-----------------------------------------------------------
	if animName == "executions_angrystrangler_killer_back" then
	
	    ---------------------------- Main
		timer.Simple(0.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_AngryStrangler.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end
	
    -----------------------------------------------------------
	if animName == "executions_angrystrangler_killer_left" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_AngryStrangler.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end
	
	-----------------------------------------------------------
	if animName == "executions_angrystrangler_killer_right" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_AngryStrangler.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end

	------------------------------------------------------------
    if animName == "executions_footschoke_killer_front" then
	
	    ---------------------------- Main
		timer.Simple(0.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_FootChoke.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_footschoke_killer_back" then
	
	    ---------------------------- Main
		timer.Simple(0.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_FootChoke.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end

    ------------------------------------------------------------
    if animName == "executions_footschoke_killer_right" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_FootChoke.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end

    ------------------------------------------------------------
    if animName == "executions_footschoke_killer_left" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_FootChoke.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		timer.Simple(2.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 7, "trials/step/FS_NPC_LeatherBoot_Walk0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_quietchoke_killer_back" then
	
	    ---------------------------- Main
		timer.Simple(0.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_ChokeQuiet.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
    
	------------------------------------------------------------
    if animName == "executions_quietchoke_killer_front" then
	
	    ---------------------------- Main
		timer.Simple(0.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_ChokeQuiet.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.9, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(3.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_quietchoke_killer_left" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_ChokeQuiet.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_quietchoke_killer_right" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_ChokeQuiet.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(9.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_electricpoke_killer_back" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Coyle_Murder_Electricpoke_front.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(4.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(7.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end

    ------------------------------------------------------------
    if animName == "executions_electricpoke_killer_front" then
	
	    ---------------------------- Main
		timer.Simple(0.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Coyle_Murder_Electricpoke_front.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(4.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(7.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end

    ------------------------------------------------------------
    if animName == "executions_electricpoke_killer_left" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Coyle_Murder_Electricpoke_front.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(4.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(7.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if animName == "executions_electricpoke_killer_right" then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Coyle_Murder_Electricpoke_front.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(4.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(7.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if string.match(animName, "executions_smashupguitar_killer_") then
	
	    ---------------------------- Main
		timer.Simple(0.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_15sec.wav", ply:GetPos()) 
        end)
		timer.Simple(3.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_BigGrunt_SmashUp.wav", ply:GetPos()) 
        end)
		----------------------------
		
		---------------------------- Guitar
	    timer.Simple(4.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 5, "vj_lnrspecials/weapons/guitar/melee_guitar_0") 
        end)
		timer.Simple(6.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 5, "vj_lnrspecials/weapons/guitar/melee_guitar_0") 
        end)
		timer.Simple(8.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 5, "vj_lnrspecials/weapons/guitar/melee_guitar_0") 
        end)
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(6.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(8.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(11.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end

	if string.match(animName, "executions_knifeeat_killer_") then
	
	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_KnifeEat.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
		
	end

	if string.match(animName, "executions_berserkergutting_killer_") then
	
	    ---------------------------- Main
		timer.Simple(0.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_15sec.wav", ply:GetPos()) 
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Berserker_Gutted.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		timer.Simple(4.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(6.4, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(8.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		timer.Simple(12.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 6, "trials/foley/FOL_BigGrunt_Torso_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(11.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end
	
	------------------------------------------------------------
    if string.match(animName, "executions_gutting_killer_") then

	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_Gutting.wav", ply:GetPos()) 
        end)
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
	end

	if string.match(animName, "executions_stabcutthroat_killer_") then

	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_StabCutThroat.wav", ply:GetPos()) 
        end)
		timer.Simple(2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
	end

	if string.match(animName, "executions_forcefeed_killer_") then
	    ---------------------------- Main
		timer.Simple(0.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_15sec.wav", ply:GetPos()) 
        end)
		timer.Simple(3.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Pusher_ForceFeed.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(2.6, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		timer.Simple(11.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end

	if string.match(animName, "executions_brainscrambleacid_killer_") then
	
	    ---------------------------- Main
		timer.Simple(0.2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/music/MU_Fatalities_Riser_15sec.wav", ply:GetPos()) 
        end)
		timer.Simple(2.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_burn_loop_light.wav", ply:GetPos()) 
        end)
		timer.Simple(4.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_burn_loop_light.wav", ply:GetPos()) 
        end)
		timer.Simple(10.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_spray_start_FP.wav", ply:GetPos()) 
        end)
		timer.Simple(10.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_spray_loop.wav", ply:GetPos()) 
        end)
		timer.Simple(10.3, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_burn_loop_heavy.wav", ply:GetPos()) 
        end)
		timer.Simple(10.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_impact_01.wav", ply:GetPos()) 
        end)
		timer.Simple(11.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_impact_01.wav", ply:GetPos()) 
        end)
		timer.Simple(11.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_impact_02.wav", ply:GetPos()) 
        end)
		timer.Simple(12.0, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_impact_03.wav", ply:GetPos()) 
        end)
		timer.Simple(12.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/acid/sfx_spider_venom_impact_01.wav", ply:GetPos()) 
        end)
		----------------------------
	
	    ---------------------------- Foley
	    timer.Simple(0.8, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
            PlayRandomSound(ply, 1, 4, "trials/foley/FOL_BigGrunt_Legs_Long0") 
        end)
		----------------------------
		
		---------------------------- Footsteps
		timer.Simple(1.7, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			PlayRandomSound(ply, 1, 3, "vj_Lnrhl2/shared/footstep/zombie_footstep_m_0") 
        end)
		----------------------------
		
	end

	if string.match(animName, "executions_stampy_killer_") then

	    ---------------------------- Main
		timer.Simple(0.1, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Murder_IntroKick.wav", ply:GetPos()) 
        end)
		timer.Simple(3.5, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			sound.Play("trials/executions/SFX_Scripted_Murder_Grunt_Stampy.wav", ply:GetPos()) 
        end)
		timer.Simple(2, function()
		    if !IsValid(targetModel) or !IsValid(ply) then return end
			--sound.Play("trials/music/MU_Fatalities_Riser_10sec.wav", ply:GetPos()) 
        end)
	end

	if animName == "killmove_evildead_pickaxe_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1370_PickAxe_01.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeLight 
		timer.Simple(0.65, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Light_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)

		-- Grab 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)

		-- Swing 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeHeavy 
		timer.Simple(1.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Heavy_2D_0")  				
		end)

		-- BodyFall
		timer.Simple(2.0, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

		-- Swing 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- BloodSplash 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

	end

	if animName == "killmove_evildead_pickaxe_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1409_PickAxe_Finisher_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeLight 
		timer.Simple(0.65, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Light_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)

		-- Grab 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)

		-- Swing 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeHeavy 
		timer.Simple(1.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Heavy_2D_0")  				
		end)

		-- BodyFall
		timer.Simple(1.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

		-- Swing 
		timer.Simple(2.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- Main 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1409_PickAxe_Finisher_B.wav", ply:GetPos())    				
		end)

		-- PickaxeLight 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Light_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")				
		end)

		-- BloodSplash 
		timer.Simple(3.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- PickaxeHeavy 
		timer.Simple(3.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Heavy_2D_0")  				
		end)
 	end

	if animName == "killmove_evildead_pickaxe_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1461_Pickaxe_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeLight 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Light_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Main 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1461_Pickaxe_Finisher_03_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- PickaxeLight 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Light_2D_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Grab 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)

		-- Main 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/pickaxe/a1461_Pickaxe_Finisher_03_C.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(2.7, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Swing_2D_0")  				
		end)

		-- BloodSplash 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- PickaxeHeavy 
		timer.Simple(2.75, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/pickaxe/PickAxe_Flesh_Heavy_2D_0")  				
		end)

		-- BodyFall
		timer.Simple(3.1, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

	if animName == "killmove_evildead_pipe_01" or animName == "killmove_evildead_crowbar_01" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/bat/a1123_BatNails_Finisher01_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- ImpactEgg 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")  				
		end)

		-- Main 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/bat/a1330_BatNails_Finisher_03_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- LeadPipeImpact 
		timer.Simple(1.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- BloodSplash 
		timer.Simple(1.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- BodyFall
		timer.Simple(4.9, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

	if animName == "killmove_evildead_pipe_02" or animName == "killmove_evildead_crowbar_02" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/bat/a1123_BatNails_Finisher01_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- ImpactEgg 
		timer.Simple(0.2, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")  				
		end)

		-- Main 
		timer.Simple(0.9, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.23, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- LeadPipeImpact 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Swing 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- Main 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_A.wav", ply:GetPos())    				
		end)

		-- BodyParts 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Swing 
		timer.Simple(2.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- Main 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_C.wav", ply:GetPos())    				
		end)

		-- LeadPipeImpact 
		timer.Simple(2.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- BloodSplash 
		timer.Simple(1.6, function()
			if !IsValid(targetModel) then return end   
		   -- PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- BodyFall
		timer.Simple(4.1, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

	if animName == "killmove_evildead_pipe_03" or animName == "killmove_evildead_crowbar_03" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- ImpactEgg 
		timer.Simple(0.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/ImpactEgg_0")  				
		end)

		-- Main 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1374_HuntingKnife_Finisher_03_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.9, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- LeadPipeImpact 
		timer.Simple(2.0, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Main 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1374_HuntingKnife_Finisher_03_C.wav", ply:GetPos())    				
		end)

		-- Grab 
		timer.Simple(3.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)

		-- BloodSplash 
		timer.Simple(3.8, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- LeadPipeImpact 
		timer.Simple(3.8, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Swing 
		timer.Simple(3.9, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- BodyFall
		timer.Simple(4.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

	if animName == "killmove_evildead_pipe_04" or animName == "killmove_evildead_crowbar_04" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- BodyParts 
		timer.Simple(0.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0") 
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/Head_Smash_0")   				
		end)

		-- Main 
		timer.Simple(1.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_B.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(1.7, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- LeadPipeImpact 
		timer.Simple(1.8, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Grab 
		timer.Simple(2.8, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Grab_0")  				
		end)

		-- Main 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1129_Knife_Finisher04_C.wav", ply:GetPos())    				
		end)

		-- LeadPipeImpact 
		timer.Simple(3.3, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Swing 
		timer.Simple(3.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/leadpipe/LeadPipe_Swing_0")  				
		end)

		-- BodyFall
		timer.Simple(5.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

	if animName == "killmove_evildead_pipe_05" or animName == "killmove_evildead_crowbar_05" then
		timer.Simple(0, function()
			if !IsValid(targetModel) then return end             				
		end)

		-- Main 
		timer.Simple(0.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/knife/a1104_Knife_Finisher02_A.wav", ply:GetPos())    				
		end)

		-- Swing 
		timer.Simple(0.1, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 6, "bsmod/EvilDead/punch/Punch_Swing_2D_0")  				
		end)

		-- LeadPipeImpact 
		timer.Simple(0.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Main 
		timer.Simple(0.3, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2820_Chainsaw_Finisher_08_B.wav", ply:GetPos())    				
		end)

		-- LeadPipeImpact 
		timer.Simple(1.4, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- Main 
		timer.Simple(3.0, function()
			if !IsValid(targetModel) then return end   
			sound.Play("bsmod/EvilDead/chainsaw/a2820_Chainsaw_Finisher_08_A.wav", ply:GetPos())    				
		end)

		-- BloodSplash 
		timer.Simple(3.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Blood_Splash_0")						
		end)

		-- LeadPipeImpact 
		timer.Simple(3.6, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 5, "bsmod/EvilDead/leadpipe/LeadPipe_Flesh_0")
			PlayRandomSound(ply, 1, 8, "bsmod/EvilDead/BodyParts_0")  				
		end)

		-- BodyFall
		timer.Simple(1.5, function()
			if !IsValid(targetModel) then return end   
			PlayRandomSound(ply, 1, 4, "bsmod/EvilDead/Fall_Middle_0")	   				
		end)

	end

end

local meta = FindMetaTable("Player")
function meta:AbilityTakedown()
	if !self:Alive() or self:GetNWString('SVAnim') != "" or self:IsLockedAbilities() then return end

	local wep = self:GetNWString('MeleeWeapon')
	local owep = self:GetNWString('OtherWeapon')
	local rnd, rnd2 = "hands", math.random(1,3)
	if isstring(wep) and self:HasWeapon(wep) then
		if table.HasValue(SuR.Config.Weapons_Executions_Anims["chainsaw"], wep) then
			rnd, rnd2 = "chainsaw", math.random(1,5)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["abrasivechainsaw"], wep) then
			rnd, rnd2 = "abrasivechainsaw", math.random(1,5)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["axe"], wep) then
			rnd, rnd2 = "axe", math.random(1,4)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["hammer"], wep) then
			rnd, rnd2 = "hammer", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["shovel"], wep) then
			rnd, rnd2 = "shovel", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["etool"], wep) then
			rnd, rnd2 = "etool", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["wrench"], wep) then
			rnd, rnd2 = "wrench", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["fubar"], wep) then
			rnd, rnd2 = "fubar", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["crowbar"], wep) then
			rnd, rnd2 = "crowbar", math.random(1,5)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["machete"], wep) then
			rnd, rnd2 = "machete", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["butcherknife"], wep) then
			rnd, rnd2 = "butcherknife", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["pickaxe"], wep) then
			rnd, rnd2 = "pickaxe", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["pipe"], wep) then
			rnd, rnd2 = "pipe", math.random(1,5)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["sledge"], wep) then
			rnd, rnd2 = "sledge", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["bat"], wep) then
			rnd, rnd2 = "bat", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["knife"], wep) then
			rnd, rnd2 = "knife", math.random(1,3)

		elseif table.HasValue(SuR.Config.Weapons_Executions_Anims["handaxe"], wep) then
			rnd, rnd2 = "handaxe", math.random(1,3)

		end
	end

	if rnd == "hands" and isstring(owep) and owep == "sur_hammer" and self:HasWeapon(owep) then
		rnd, rnd2 = "hammer", math.random(1,3)
	end

	local movepos = 0
	local rotateang = 0
	local anim1, anim2 = "sur_killanim_evildead_"..rnd.."_0"..rnd2, "killmove_evildead_"..rnd.."_0"..rnd2
	local tr = self:GetEyeTrace().Entity
	if IsValid(tr) and not tr.ExecutingTarget and tr.IsZombie and tr:GetPos():DistToSqr(self:GetPos()) < 10000 and tr:GetNWBool('flinching', false) and tr:Health() <= 200 then
		local _, dur = self:LookupSequence(anim1)
		self:SetSVAnimation(anim1, true, true, true)
		self:Freeze(true)
		self:GodEnable()
		self:SetVelocity(-self:GetVelocity())
		self:SetRenderMode(10)
		self.NoGrab = true
		if !IsValid(self.LastPickupWeapon) then
			self.LastPickupWeapon = self:GetActiveWeapon()
		end
		self:SetActiveWeapon(nil)

		local ent1 = ents.Create("sur_anim")
		ent1:SetModel("models/surrounded/animations/evildead/evildead_killer_nmrih.mdl")
		ent1:SetPos(self:GetPos()+self:GetForward()*movepos)
		ent1:SetAngles(self:GetAngles()-Angle(0,rotateang,0))
		ent1:Spawn()
		ent1:ResetSequence(anim2)
		ent1.push = true

		local bd1 = ents.Create("sur_anim")
		SuR:TransferModelData(self, bd1)
		bd1:SetPos(self:GetPos())
		bd1:SetParent(ent1)
		bd1:AddEffects(1)
		bd1:Spawn()
		ent1:DeleteOnRemove(bd1)
		self:SetNWEntity("CameraEnt", bd1)

		local ent = ents.Create("sur_anim")
		ent:SetModel("models/surrounded/animations/evildead/evildead_killed_nmrih.mdl")
		ent:SetPos(self:GetPos()+self:GetForward()*movepos)
		ent:SetAngles(self:GetAngles()-Angle(0,rotateang,0))
		ent:Spawn()
		ent:ResetSequence(anim2)

		local bd = ents.Create("sur_anim")
		SuR:TransferModelData(tr, bd)
		bd:SetPos(self:GetPos())
		bd:SetParent(ent)
		bd:AddEffects(1)
		bd:Spawn()
		ent:DeleteOnRemove(bd)

		local long1 = select(2, ent:LookupSequence(anim2))
		effects_takedown(self, ent, anim2)

		tr:Remove()
		timer.Simple(long1, function()
			if IsValid(ent) then
				SuR:TransferBones(ent, bd, true)
			end
			if IsValid(self) then
				net.Start("SuR.KillStatus")
				net.WriteBool(true)
				net.Send(self)
				self:AddXP(SuR.Config.XP_Giving["execution"])
				self:PlayVoiceLine("enemydown", 50)
			end
		end)

		timer.Simple(dur-0.1, function()
			if IsValid(ent1) and IsValid(self) then
				local bone = ent1:LookupBone("root") or ent1:LookupBone("ValveBiped.Bip01_Pelvis")
				local pos = ent1:GetBonePosition(bone)
				if IsValid(self) then
					pos.z = self:GetPos().z+4
					local bool = self:CheckHitbox(pos)
					if bool then
						self:SetPos(pos)
					end
				end
			end
		end)

		timer.Simple(dur, function()
			if IsValid(self) then
				self:Freeze(false)
				self:GodDisable()
				self:SetRenderMode(0)
				self.NoGrab = false
				self:SetNWEntity("CameraEnt", NULL)
				if IsValid(self.LastPickupWeapon) then		
					local class = self.LastPickupWeapon:GetClass()
					self:SelectWeapon(class)
					self.LastPickupWeapon = nil
				end
			end
			if IsValid(ent1) then
				ent1:Remove()
			end
		end)
	end
end

local function AbilityTakedown(self, ent, amod, vmod, anim, vanim, playerpos)
    if self.ExecutingTarget or ent.ExecutingTarget or ent.Grabbed then return end

	local yaw = 0
	local movex = 0
	local movey = 0
	local animv = anim
	if isstring(vanim) then
		animv = vanim
	end
	if anim == "killmove_giant_front" then
		yaw = 90
	elseif anim == "killmove_giant_front_unused" or anim == "killmove_giant_backstomp" or anim == "killmove_giant_back" or anim == "killmove_slasher_back" then
		yaw = 180
	end

	local angz = self:GetAngles():SnapTo("y", 45)
    local posz = ent:GetPos()
	if playerpos then
		angz = ent:GetAngles():SnapTo("y", 45)
		yaw = 180
	end
	local isnpc = ent:IsNPC()

	local ent1 = ents.Create("sur_anim")
	ent1.ent = self
	ent1.enable_ent = true
	ent1:SetModel(amod)
	ent1:SetPos(posz-Vector(0,0,0))
	ent1:SetAngles(angz)
	ent1:Spawn()
	ent1:ResetSequence(anim)
	ent1:ResetSequenceInfo()
	ent1:SetCycle(0)

	local bd = ents.Create("base_anim")
	SuR:TransferModelData(self, bd)
	bd:SetPos(posz-Vector(0,0,0))
	bd:SetParent(ent1)
	bd:AddEffects(1)
	bd:Spawn()

	local ent2 = ent
	if isnpc then
		ent2 = ents.Create("sur_anim")
		ent2:SetModel(vmod)
		ent2:SetPos(posz-Vector(0,0,0))
		ent2:SetAngles(angz+Angle(0,yaw,0))
		ent2:Spawn()
		ent2:ResetSequence(animv)
		ent2:ResetSequenceInfo()
		ent2:SetCycle(0)

		local bd2 = ents.Create("base_anim")
		SuR:TransferModelData(ent, bd2)
		bd2:SetPos(posz)
		bd2:SetParent(ent2)
		bd2:AddEffects(1)
		bd2:Spawn()
		ent2.bd = bd2
	end

	if ent:IsPlayer() then
		ent2 = ent
	end
    effects_takedown(ent1, ent2, anim)

    self:RemoveAllDecals()
    self:AddEFlags(EFL_NO_THINK_FUNCTION)
    self:SetMaterial("null")
	self:SetNoDraw(true)
    self:SetVelocity(-self:GetVelocity())
    self.ExecutingPos = posz
    self:SetPos(posz)
    self:SetAngles(angz)
    self.ExecutingTarget = true
	self.ExecutingModel = ent1
	for i, ent in ipairs(self:GetChildren()) do 
		ent:SetMaterial("null")
	end 
	timer.Simple(ent1:SequenceDuration(ent1:LookupSequence(anim)), function()
		if IsValid(ent1) then
			ent1:Remove()
		end
        if IsValid(self) then
			self:RemoveEFlags(EFL_NO_THINK_FUNCTION)
			self:SetNoDraw(false)
            self:SetMaterial("")
            self.ExecutingTarget = false
            self:SetState()
			self:SetPos(posz)
			for i, ent in ipairs(self:GetChildren()) do 
				ent:SetMaterial("")
			end 
        end
	end)

	if not ent.ExecutingAttempt then
		ent.ExecutingAttempt = 0
	end
    if ent2:IsPlayer() then
        animv = "sur_"..animv
    end
	local attempt = ent.ExecutingAttempt+1
	ent.ExecutingAttempt = attempt
	
    timer.Simple(ent2:SequenceDuration(ent2:LookupSequence(animv)), function()
		if IsValid(ent2) and !ent2:IsPlayer() then
			SuR:TransferBones(ent2, ent2.bd, true)
		end
		if IsValid(ent) and ent:IsPlayer() and ent.ExecutingTarget and ent.ExecutingAttempt == attempt then
			ent:Freeze(false)
			ent:GodDisable()
			ent:SetNoTarget(false)
			ent:Kill()
			ent:SetNotSolid(false)
            ent.ExecutingTarget = false
			ent.ExecutingEnt = nil
		end
	end)

    if ent:IsPlayer() then
    	ent:Freeze(true)
		ent:GodEnable()
		ent:SetNoTarget(true)
		ent:SetNotSolid(true)
        ent:SetPos(posz)
		ent:SetEyeAngles(angz+Angle(0,yaw+180,0))
        ent:SetVelocity(Vector(50,0,0))
		ent:SetSVAnimation(animv, true, true, true)
		ent:SetActiveWeapon(nil)
		ent.ExecutingEnt = self
        ent.ExecutingPos = posz
        ent.ExecutingTarget = true
		ent.Grabbed = false
	else
		ent:Remove()
	end
end

local walker_tab = {"killmove_johnny_01", "killmove_cook_01", "killmove_cook_03", "killmove_hiker_01"}
local jumper_tab = {"killmove_giant_front_unused", "killmove_giant_front", "killmove_giant_ambush", "killmove_giant_back", "killmove_giant_backstomp"}
local berserk_tab = {"killmove_evildead_hands_01", "killmove_evildead_hands_02", "killmove_evildead_hands_03"}
local evil_tab = {
	"killmove_evildead_shovel_01",	
	"killmove_evildead_shovel_02",	
	"killmove_evildead_shovel_03",	
	"killmove_evildead_machete_01",	
	"killmove_evildead_machete_02",	
	"killmove_evildead_machete_03",
	"killmove_evildead_butcherknife_01",
	"killmove_evildead_butcherknife_02",
	"killmove_evildead_butcherknife_03",
	"killmove_evildead_sword_01",
	"killmove_evildead_sword_02",
	"killmove_evildead_sword_03",
	"killmove_evildead_mace_01",
	"killmove_evildead_mace_02",
	"killmove_evildead_mace_03",
	"killmove_evildead_sledge_01",
	"killmove_evildead_sledge_02",
	"killmove_evildead_sledge_03",
	"killmove_evildead_bat_01",
	"killmove_evildead_bat_02",
	"killmove_evildead_bat_03",
	"killmove_evildead_knife_01",
	"killmove_evildead_knife_02",
	"killmove_evildead_knife_03",
	"killmove_evildead_handaxe_01",
	"killmove_evildead_handaxe_02",
	"killmove_evildead_handaxe_03",
	"killmove_evildead_axe_01",
	"killmove_evildead_axe_02",
	"killmove_evildead_axe_03",
	"killmove_evildead_axe_04",
	"killmove_evildead_hammer_01",
	"killmove_evildead_hammer_02",
	"killmove_evildead_hammer_03"
}

function SuR:Takedown(att, tar, type)
	local side = "front"
	if tar:IsPlayer() then
		side = tar.SideToEntity and tar:SideToEntity(att) or "front"
	end
	if type == "walker" then
		AbilityTakedown(att, tar, "models/weapons/tcm_family.mdl", "models/tcm_victim.mdl", table.Random(walker_tab))
	elseif type == "berserk" then
		AbilityTakedown(att, tar, "models/surrounded/animations/evildead/evildead_killer.mdl", "models/surrounded/animations/evildead/evildead_killed.mdl", table.Random(berserk_tab))
	elseif type == "jumper" then
		AbilityTakedown(att, tar, "models/weapons/slasher_executions.mdl", "models/slasher_victim.mdl", table.Random(jumper_tab))
	elseif type == "chainsaw" then
		AbilityTakedown(att, tar, "models/weapons/tcm_family.mdl", "models/tcm_victim.mdl", "killmove_leatherface_0"..math.random(1,2))
	elseif type == "downed_guitar" then
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", "executions_smashupguitar_killer_"..side, "executions_smashupguitar_victim_"..side, true)
	elseif type == "downed_gas" then
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", "executions_forcefeed_killer_"..side, "executions_forcefeed_victim_"..side, true)
	elseif type == "downed_electro" then
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", "executions_electricpoke_killer_"..side, "executions_electricpoke_victim_"..side, true)
	elseif type == "downed_acid" then
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", "executions_brainscrambleacid_killer_"..side, "executions_brainscrambleacid_victim_"..side, true)
	elseif type == "downed_big" then
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", "executions_berserkergutting_killer_"..side, "executions_berserkergutting_victim_"..side, true)
	elseif type == "downed_unarmed" then
		local rnd = math.random(1,4)
		local a_anim, v_anim = "", ""
		if rnd == 1 then
			a_anim, v_anim = "executions_angrystrangler_killer_"..side, "executions_angrystrangler_victim_"..side
		elseif rnd == 2 then
			a_anim, v_anim = "executions_footschoke_killer_"..side, "executions_footschoke_victim_"..side
		elseif rnd == 3 then
			a_anim, v_anim = "executions_quietchoke_killer_"..side, "executions_quietchoke_victim_"..side
		elseif rnd == 4 then
			a_anim, v_anim = "executions_stampy_killer_"..side, "executions_stampy_victim_"..side
		end
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", a_anim, v_anim, true)
	elseif type == "downed_machete" then
		local rnd = math.random(1,3)
		local a_anim, v_anim = "", ""
		if rnd == 1 then
			a_anim, v_anim = "executions_gutting_killer_"..side, "executions_gutting_victim_"..side
		elseif rnd == 2 then
			a_anim, v_anim = "executions_knifeeat_killer_"..side, "executions_knifeeat_victim_"..side
		elseif rnd == 3 then
			a_anim, v_anim = "executions_stabcutthroat_killer_"..side, "executions_stabcutthroat_victim_"..side
		end
		AbilityTakedown(att, tar, "models/surrounded/test/trials_executions.mdl", "models/surrounded/test/trials_executions.mdl", a_anim, v_anim, true)
	end
end

local function check_height(ent)
    local tr = util.TraceLine({
        start = ent:GetPos(),
        endpos = ent:GetPos()-Vector(0,0,8),
        filter = ent,
        mask = MASK_SOLID,
    })
    return tr.Hit
end

hook.Add("EntityTakeDamage", "SuR_Executions", function(tar, dmg)
    local att = dmg:GetAttacker()
	if att:IsNPC() and check_height(tar) then
		if not tar.NoGrab and att.IsZombie and table.HasValue(SuR.Config.Zombies_Executions["chainsaw"], att:GetClass()) and (tar:IsNPC() or tar:IsPlayer() and tar:IsSurvivor()) then
			SuR:Takedown(att, tar, "chainsaw")
			dmg:SetDamage(0)
			return true
		end
		if not tar.NoGrab and att.IsZombie and !att.IsSpecial and not att.LNR_Crawler and (tar:IsNPC() or tar:IsPlayer() and tar:IsSurvivor() and !tar:IsDowned()) and (tar:Health() <= dmg:GetDamage()) and (tar:IsPlayer() and SuR:CurrentFighters() == 1 and tar:GetNWFloat('SelfRevive') <= 0 or tar:Health() <= dmg:GetDamage() and tar:IsNPC()) then
			SuR:Takedown(att, tar, "walker")
			dmg:SetDamage(0)
			return true
		end
		if not tar.NoGrab and att.IsZombie and table.HasValue(SuR.Config.Zombies_Executions["berserk"], att:GetClass()) and (tar:IsNPC() or tar:IsPlayer() and tar:IsSurvivor()) and (tar:Health() <= dmg:GetDamage() and tar:IsNPC()) then
			SuR:Takedown(att, tar, "berserk")
			dmg:SetDamage(0)
			return true
		end
		if not tar.NoGrab and att.IsZombie and table.HasValue(SuR.Config.Zombies_Executions["jumper"], att:GetClass()) and (tar:IsNPC() or tar:IsPlayer() and tar:IsSurvivor()) and (tar:Health() <= dmg:GetDamage()) then
			SuR:Takedown(att, tar, "jumper")
			dmg:SetDamage(0)
			return true
		end
		if not tar.NoGrab and att.IsZombie and not att.LNR_Crawler and tar:IsPlayer() and tar:IsSurvivor() and tar:IsDowned() and !tar:IsFlagSet(FL_NOTARGET) and att:GetPos():DistToSqr(tar:GetPos()) < 20000 then
			local id = ""
			if table.HasValue(SuR.Config.Zombies_Executions["downed_machete"], att:GetClass()) then
				id = "downed_machete"
			elseif table.HasValue(SuR.Config.Zombies_Executions["downed_electro"], att:GetClass()) then
				id = "downed_electro"
			elseif table.HasValue(SuR.Config.Zombies_Executions["downed_guitar"], att:GetClass()) then
				id = "downed_guitar"
			elseif table.HasValue(SuR.Config.Zombies_Executions["downed_gas"], att:GetClass()) then
				id = "downed_gas"
			elseif table.HasValue(SuR.Config.Zombies_Executions["downed_big"], att:GetClass()) then
				id = "downed_big"
			elseif table.HasValue(SuR.Config.Zombies_Executions["downed_acid"], att:GetClass()) then
				id = "downed_acid"
			elseif !att.IsSpecial or table.HasValue(SuR.Config.Zombies_Executions["downed_unarmed"], att:GetClass()) then
				id = "downed_unarmed"
			end
			if id != "" then
				SuR:Takedown(att, tar, id)
				dmg:SetDamage(0)
				return true
			end
		end
	end
end)