Quick actions

cmd+k|ctrl+k

Navigation

Languages

Combat inf stamina

Snippet info

Language

Lua

Visibility

public

Author

playvoider

Created

2020-08-06T18:24:57Z

Updated

2020-08-07T01:28:05Z

local plr = owner
local char = plr.Character
local hum = char:FindFirstChildOfClass("Humanoid")
local torso = char:FindFirstChild("Torso")
local rootpart = char:FindFirstChild("HumanoidRootPart")
local larm,rarm,lleg,rleg,head = char:FindFirstChild("Left Arm"),char:FindFirstChild("Right Arm"),char:FindFirstChild("Left Leg"),char:FindFirstChild("Right Leg"),char:FindFirstChild("Head")
if larm and rarm and lleg and rleg and head--[[hum.RigType ~= Enum.HumanoidRigType.R6]] then else warn('Character must be R6.'); return; end;

ls,rs,lh,rh,neck,rj = torso:FindFirstChild("Left Shoulder"),torso:FindFirstChild("Right Shoulder"),torso:FindFirstChild("Left Hip"),torso:FindFirstChild("Right Hip"),torso:FindFirstChild("Neck"),rootpart:FindFirstChild("RootJoint")

function QuaternionFromCFrame(cf)
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
	local trace = m00 + m11 + m22
	if trace > 0 then 
		local s = math.sqrt(1 + trace)
		local recip = 0.5 / s
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
	else
		local i = 0
		if m11 > m00 then
			i = 1
		end
		if m22 > (i == 0 and m00 or m11) then
			i = 2
		end
		if i == 0 then
			local s = math.sqrt(m00 - m11 - m22 + 1)
			local recip = 0.5 / s
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
		elseif i == 1 then
			local s = math.sqrt(m11 - m22 - m00 + 1)
			local recip = 0.5 / s
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
		elseif i == 2 then
			local s = math.sqrt(m22 - m00 - m11 + 1)
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
		end
	end
end
 
function QuaternionToCFrame(px, py, pz, x, y, z, w)
	local xs, ys, zs = x + x, y + y, z + z
	local wx, wy, wz = w * xs, w * ys, w * zs
	local xx = x * xs
	local xy = x * ys
	local xz = x * zs
	local yy = y * ys
	local yz = y * zs
	local zz = z * zs
	return CFrame.new(px, py, pz, 1 - (yy + zz), xy - wz, xz + wy, xy + wz, 1 - (xx + zz), yz - wx, xz - wy, yz + wx, 1 - (xx + yy))
end
 
function QuaternionSlerp(a, b, t)
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
	local startInterp, finishInterp;
	if cosTheta >= 0.0001 then
		if (1 - cosTheta) > 0.0001 then
			local theta = math.acos(cosTheta)
			local invSinTheta = 1 / math.sin(theta)
			startInterp = math.sin((1 - t) * theta) * invSinTheta
			finishInterp = math.sin(t * theta) * invSinTheta
		else
			startInterp = 1 - t
			finishInterp = t
		end
	else
		if (1 + cosTheta) > 0.0001 then
			local theta = math.acos(-cosTheta)
			local invSinTheta = 1 / math.sin(theta)
			startInterp = math.sin((t - 1) * theta) * invSinTheta
			finishInterp = math.sin(t * theta) * invSinTheta
		else
			startInterp = t - 1
			finishInterp = t
		end
	end
	return a[1] * startInterp + b[1] * finishInterp, a[2] * startInterp + b[2] * finishInterp, a[3] * startInterp + b[3] * finishInterp, a[4] * startInterp + b[4] * finishInterp
end

function lerp(a,b,t)
	a:lerp(b,t)
end

function tween(a,b,t)
	game:GetService("TweenService"):Create(a,TweenInfo.new(t),{CFrame = b}):Play()
end

function clerp(a, b, t)
	local qa = {QuaternionFromCFrame(a)}
	local qb = {QuaternionFromCFrame(b)}
	local ax, ay, az = a.x, a.y, a.z
	local bx, by, bz = b.x, b.y, b.z
	local _t = 1 - t
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
end

--//=================================\\
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
--\\=================================//
 
ArtificialHB = Instance.new("BindableEvent", script)
ArtificialHB.Name = "ArtificialHB"
 
script:WaitForChild("ArtificialHB")
 
frame = (1/60)
tf = 0
allowframeloss = false
tossremainder = false
lastframe = tick()
script.ArtificialHB:Fire()
 
game:GetService("RunService").Heartbeat:connect(function(s, p)
    tf = tf + s
    if tf >= frame then
        if allowframeloss then
            script.ArtificialHB:Fire()
            lastframe = tick()
        else
            for i = 1, math.floor(tf / frame) do
                script.ArtificialHB:Fire()
            end
        lastframe = tick()
        end
        if tossremainder then
            tf = 0
        else
            tf = tf - frame * math.floor(tf / frame)
        end
    end
end)

function Swait(NUMBER)
	if NUMBER == 0 or NUMBER == nil then
		ArtificialHB.Event:wait()
	else
		for i = 1, NUMBER do
			ArtificialHB.Event:wait()
		end
	end
end
 
--//=================================\\
--\\=================================//

local Model1 = Instance.new("Model")
local Part2 = Instance.new("Part")
local SpecialMesh3 = Instance.new("SpecialMesh")
local Part4 = Instance.new("Part")
local SpecialMesh5 = Instance.new("SpecialMesh")
local Part6 = Instance.new("Part")
local SpecialMesh7 = Instance.new("SpecialMesh")
local Part8 = Instance.new("Part")
local SpecialMesh9 = Instance.new("SpecialMesh")
local Part10 = Instance.new("Part")
local SpecialMesh11 = Instance.new("SpecialMesh")
local Part12 = Instance.new("Part")
local SpecialMesh13 = Instance.new("SpecialMesh")
local Part14 = Instance.new("Part")
local SpecialMesh15 = Instance.new("SpecialMesh")
local Part16 = Instance.new("Part")
local SpecialMesh17 = Instance.new("SpecialMesh")
local Blade = Instance.new("Part")
local SpecialMesh19 = Instance.new("SpecialMesh")
local EndPiece = Instance.new("Part")
local SpecialMesh21 = Instance.new("SpecialMesh")
local HandGuard = Instance.new("Part")
local SpecialMesh23 = Instance.new("SpecialMesh")
local HandGuard2 = Instance.new("Part")
local SpecialMesh25 = Instance.new("SpecialMesh")
local Handle = Instance.new("Part")
local SpecialMesh27 = Instance.new("SpecialMesh")
local Hilt = Instance.new("Part")
local SpecialMesh29 = Instance.new("SpecialMesh")
local Hilt2 = Instance.new("Part")
local SpecialMesh31 = Instance.new("SpecialMesh")
local Sheath = Instance.new("Part")
local SpecialMesh33 = Instance.new("SpecialMesh")
local Texture34 = Instance.new("Texture")
local Texture35 = Instance.new("Texture")
local Texture36 = Instance.new("Texture")
local Texture37 = Instance.new("Texture")
local Texture38 = Instance.new("Texture")
local Texture39 = Instance.new("Texture")
Model1.Name = "Cloth"
Model1.Parent = nil
Part2.Name = "cloth1"
Part2.Parent = Model1
Part2.CFrame = CFrame.new(8.89884567, 2.74100494, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part2.Orientation = Vector3.new(0, 0, -90)
Part2.Position = Vector3.new(8.89884567, 2.74100494, 2.74181032)
Part2.Rotation = Vector3.new(0, 0, -90)
Part2.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part2.Size = Vector3.new(0.420896888, 0.0854082704, 0.242092505)
Part2.Anchored = true
Part2.BottomSurface = Enum.SurfaceType.Smooth
Part2.BrickColor = BrickColor.new("Really black")
Part2.CanCollide = false
Part2.Locked = true
Part2.Material = Enum.Material.Fabric
Part2.Reflectance = 0.60000002384186
Part2.TopSurface = Enum.SurfaceType.Smooth
Part2.brickColor = BrickColor.new("Really black")
SpecialMesh3.Parent = Part2
SpecialMesh3.MeshId = "rbxassetid://4568296395"
SpecialMesh3.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh3.TextureId = "rbxassetid://4568343753"
SpecialMesh3.MeshType = Enum.MeshType.FileMesh
Part4.Name = "cloth2"
Part4.Parent = Model1
Part4.CFrame = CFrame.new(8.98425388, 2.74100494, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part4.Orientation = Vector3.new(0, 0, -90)
Part4.Position = Vector3.new(8.98425388, 2.74100494, 2.74181032)
Part4.Rotation = Vector3.new(0, 0, -90)
Part4.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part4.Size = Vector3.new(0.420896888, 0.0854082704, 0.242092505)
Part4.Anchored = true
Part4.BottomSurface = Enum.SurfaceType.Smooth
Part4.BrickColor = BrickColor.new("Really black")
Part4.CanCollide = false
Part4.Locked = true
Part4.Material = Enum.Material.Fabric
Part4.TopSurface = Enum.SurfaceType.Smooth
Part4.brickColor = BrickColor.new("Really black")
SpecialMesh5.Parent = Part4
SpecialMesh5.MeshId = "rbxassetid://4568296477"
SpecialMesh5.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh5.TextureId = "rbxassetid://4568343753"
SpecialMesh5.MeshType = Enum.MeshType.FileMesh
Part6.Name = "cloth4"
Part6.Parent = Model1
Part6.CFrame = CFrame.new(8.98425388, 3.16128683, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part6.Orientation = Vector3.new(0, 0, -90)
Part6.Position = Vector3.new(8.98425388, 3.16128683, 2.74181032)
Part6.Rotation = Vector3.new(0, 0, -90)
Part6.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part6.Size = Vector3.new(0.41843909, 0.0854082704, 0.242092505)
Part6.Anchored = true
Part6.BottomSurface = Enum.SurfaceType.Smooth
Part6.BrickColor = BrickColor.new("Really black")
Part6.CanCollide = false
Part6.Locked = true
Part6.Material = Enum.Material.Fabric
Part6.TopSurface = Enum.SurfaceType.Smooth
Part6.brickColor = BrickColor.new("Really black")
SpecialMesh7.Parent = Part6
SpecialMesh7.MeshId = "rbxassetid://4568296667"
SpecialMesh7.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh7.TextureId = "rbxassetid://4568343753"
SpecialMesh7.MeshType = Enum.MeshType.FileMesh
Part8.Name = "cloth3"
Part8.Parent = Model1
Part8.CFrame = CFrame.new(8.89884567, 3.16128683, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part8.Orientation = Vector3.new(0, 0, -90)
Part8.Position = Vector3.new(8.89884567, 3.16128683, 2.74181032)
Part8.Rotation = Vector3.new(0, 0, -90)
Part8.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part8.Size = Vector3.new(0.41843909, 0.0854082704, 0.242092505)
Part8.Anchored = true
Part8.BottomSurface = Enum.SurfaceType.Smooth
Part8.BrickColor = BrickColor.new("Really black")
Part8.CanCollide = false
Part8.Locked = true
Part8.Material = Enum.Material.Fabric
Part8.TopSurface = Enum.SurfaceType.Smooth
Part8.brickColor = BrickColor.new("Really black")
SpecialMesh9.Parent = Part8
SpecialMesh9.MeshId = "rbxassetid://4568296564"
SpecialMesh9.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh9.TextureId = "rbxassetid://4568343753"
SpecialMesh9.MeshType = Enum.MeshType.FileMesh
Part10.Name = "cloth7"
Part10.Parent = Model1
Part10.CFrame = CFrame.new(8.89884567, 3.99877858, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part10.Orientation = Vector3.new(0, 0, -90)
Part10.Position = Vector3.new(8.89884567, 3.99877858, 2.74181032)
Part10.Rotation = Vector3.new(0, 0, -90)
Part10.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part10.Size = Vector3.new(0.419053525, 0.0854082704, 0.242092505)
Part10.Anchored = true
Part10.BottomSurface = Enum.SurfaceType.Smooth
Part10.BrickColor = BrickColor.new("Really black")
Part10.CanCollide = false
Part10.Locked = true
Part10.Material = Enum.Material.Fabric
Part10.TopSurface = Enum.SurfaceType.Smooth
Part10.brickColor = BrickColor.new("Really black")
SpecialMesh11.Parent = Part10
SpecialMesh11.MeshId = "rbxassetid://4568297179"
SpecialMesh11.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh11.TextureId = "rbxassetid://4568343753"
SpecialMesh11.MeshType = Enum.MeshType.FileMesh
Part12.Name = "cloth5"
Part12.Parent = Model1
Part12.CFrame = CFrame.new(8.89884567, 3.57972622, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part12.Orientation = Vector3.new(0, 0, -90)
Part12.Position = Vector3.new(8.89884567, 3.57972622, 2.74181032)
Part12.Rotation = Vector3.new(0, 0, -90)
Part12.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part12.Size = Vector3.new(0.41843909, 0.0854082704, 0.242092505)
Part12.Anchored = true
Part12.BottomSurface = Enum.SurfaceType.Smooth
Part12.BrickColor = BrickColor.new("Really black")
Part12.CanCollide = false
Part12.Locked = true
Part12.Material = Enum.Material.Fabric
Part12.TopSurface = Enum.SurfaceType.Smooth
Part12.brickColor = BrickColor.new("Really black")
SpecialMesh13.Parent = Part12
SpecialMesh13.MeshId = "rbxassetid://4568296759"
SpecialMesh13.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh13.TextureId = "rbxassetid://4568343753"
SpecialMesh13.MeshType = Enum.MeshType.FileMesh
Part14.Name = "cloth8"
Part14.Parent = Model1
Part14.CFrame = CFrame.new(8.98425388, 3.99877858, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part14.Orientation = Vector3.new(0, 0, -90)
Part14.Position = Vector3.new(8.98425388, 3.99877858, 2.74181032)
Part14.Rotation = Vector3.new(0, 0, -90)
Part14.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part14.Size = Vector3.new(0.419053525, 0.0854082704, 0.242092505)
Part14.Anchored = true
Part14.BottomSurface = Enum.SurfaceType.Smooth
Part14.BrickColor = BrickColor.new("Really black")
Part14.CanCollide = false
Part14.Locked = true
Part14.Material = Enum.Material.Fabric
Part14.TopSurface = Enum.SurfaceType.Smooth
Part14.brickColor = BrickColor.new("Really black")
SpecialMesh15.Parent = Part14
SpecialMesh15.MeshId = "rbxassetid://4568297272"
SpecialMesh15.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh15.TextureId = "rbxassetid://4568343753"
SpecialMesh15.MeshType = Enum.MeshType.FileMesh
Part16.Name = "cloth6"
Part16.Parent = Model1
Part16.CFrame = CFrame.new(8.98425388, 3.57972622, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Part16.Orientation = Vector3.new(0, 0, -90)
Part16.Position = Vector3.new(8.98425388, 3.57972622, 2.74181032)
Part16.Rotation = Vector3.new(0, 0, -90)
Part16.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
Part16.Size = Vector3.new(0.41843909, 0.0854082704, 0.242092505)
Part16.Anchored = true
Part16.BottomSurface = Enum.SurfaceType.Smooth
Part16.BrickColor = BrickColor.new("Really black")
Part16.CanCollide = false
Part16.Locked = true
Part16.Material = Enum.Material.Fabric
Part16.TopSurface = Enum.SurfaceType.Smooth
Part16.brickColor = BrickColor.new("Really black")
SpecialMesh17.Parent = Part16
SpecialMesh17.MeshId = "rbxassetid://4568296864"
SpecialMesh17.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh17.TextureId = "rbxassetid://4568343753"
SpecialMesh17.MeshType = Enum.MeshType.FileMesh
Blade.Name = "Blade"
Blade.Parent = Model1
Blade.CFrame = CFrame.new(8.94124222, 6.77731228, 3.00909495, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Blade.Orientation = Vector3.new(0, 0, -90)
Blade.Position = Vector3.new(8.94124222, 6.77731228, 3.00909495)
Blade.Rotation = Vector3.new(0, 0, -90)
Blade.Color = Color3.new(0.905882, 0.905882, 0.92549)
Blade.Size = Vector3.new(4.37486982, 0.092781648, 0.729349792)
Blade.Anchored = true
Blade.BottomSurface = Enum.SurfaceType.Smooth
Blade.BrickColor = BrickColor.new("Pearl")
Blade.CanCollide = false
Blade.Locked = true
Blade.Material = Enum.Material.Glass
Blade.Reflectance = 0.60000002384186
Blade.TopSurface = Enum.SurfaceType.Smooth
Blade.brickColor = BrickColor.new("Pearl")
SpecialMesh19.Parent = Blade
SpecialMesh19.MeshId = "rbxassetid://4568221814"
SpecialMesh19.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh19.MeshType = Enum.MeshType.FileMesh
EndPiece.Name = "EndPiece"
EndPiece.Parent = Model1
EndPiece.CFrame = CFrame.new(8.94124222, 2.50505638, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
EndPiece.Orientation = Vector3.new(0, 0, -90)
EndPiece.Position = Vector3.new(8.94124222, 2.50505638, 2.74181032)
EndPiece.Rotation = Vector3.new(0, 0, -90)
EndPiece.Color = Color3.new(0.937255, 0.721569, 0.219608)
EndPiece.Size = Vector3.new(0.0516136326, 0.172659889, 0.252538145)
EndPiece.Anchored = true
EndPiece.BottomSurface = Enum.SurfaceType.Smooth
EndPiece.BrickColor = BrickColor.new("Gold")
EndPiece.CanCollide = false
EndPiece.Locked = true
EndPiece.Material = Enum.Material.Metal
EndPiece.TopSurface = Enum.SurfaceType.Smooth
EndPiece.brickColor = BrickColor.new("Gold")
SpecialMesh21.Parent = EndPiece
SpecialMesh21.MeshId = "rbxassetid://4568221898"
SpecialMesh21.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh21.MeshType = Enum.MeshType.FileMesh
HandGuard.Name = "HandGuard"
HandGuard.Parent = Model1
HandGuard.CFrame = CFrame.new(8.94124222, 4.42581987, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
HandGuard.Orientation = Vector3.new(0, 0, -90)
HandGuard.Position = Vector3.new(8.94124222, 4.42581987, 2.74181032)
HandGuard.Rotation = Vector3.new(0, 0, -90)
HandGuard.Color = Color3.new(0.937255, 0.721569, 0.219608)
HandGuard.Size = Vector3.new(0.0553003214, 0.357608765, 0.462679356)
HandGuard.Anchored = true
HandGuard.BottomSurface = Enum.SurfaceType.Smooth
HandGuard.BrickColor = BrickColor.new("Gold")
HandGuard.CanCollide = false
HandGuard.Locked = true
HandGuard.Material = Enum.Material.Metal
HandGuard.TopSurface = Enum.SurfaceType.Smooth
HandGuard.brickColor = BrickColor.new("Gold")
SpecialMesh23.Parent = HandGuard
SpecialMesh23.MeshId = "rbxassetid://4568307999"
SpecialMesh23.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh23.MeshType = Enum.MeshType.FileMesh
HandGuard2.Name = "HandGuard2"
HandGuard2.Parent = Model1
HandGuard2.CFrame = CFrame.new(8.94124222, 4.42581987, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
HandGuard2.Orientation = Vector3.new(0, 0, -90)
HandGuard2.Position = Vector3.new(8.94124222, 4.42581987, 2.74181032)
HandGuard2.Rotation = Vector3.new(0, 0, -90)
HandGuard2.Color = Color3.new(0.937255, 0.721569, 0.219608)
HandGuard2.Size = Vector3.new(0.0553003214, 0.462679356, 0.293091714)
HandGuard2.Anchored = true
HandGuard2.BottomSurface = Enum.SurfaceType.Smooth
HandGuard2.BrickColor = BrickColor.new("Gold")
HandGuard2.CanCollide = false
HandGuard2.Locked = true
HandGuard2.Material = Enum.Material.Metal
HandGuard2.TopSurface = Enum.SurfaceType.Smooth
HandGuard2.brickColor = BrickColor.new("Gold")
SpecialMesh25.Parent = HandGuard2
SpecialMesh25.MeshId = "rbxassetid://4568307893"
SpecialMesh25.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh25.MeshType = Enum.MeshType.FileMesh
Handle.Name = "Handle"
Handle.Parent = Model1
Handle.CFrame = CFrame.new(8.94124222, 3.3701992, 2.74058151, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Handle.Orientation = Vector3.new(0, 0, -90)
Handle.Position = Vector3.new(8.94124222, 3.3701992, 2.74058151)
Handle.Rotation = Vector3.new(0, 0, -90)
Handle.Color = Color3.new(0.458824, 0, 0)
Handle.Size = Vector3.new(1.67928648, 0.159756482, 0.232875794)
Handle.Anchored = true
Handle.BottomSurface = Enum.SurfaceType.Smooth
Handle.BrickColor = BrickColor.new("Maroon")
Handle.CanCollide = false
Handle.Locked = true
Handle.Material = Enum.Material.Sand
Handle.TopSurface = Enum.SurfaceType.Smooth
Handle.brickColor = BrickColor.new("Maroon")
SpecialMesh27.Parent = Handle
SpecialMesh27.MeshId = "rbxassetid://4568222002"
SpecialMesh27.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh27.TextureId = "rbxassetid://4568344218"
SpecialMesh27.MeshType = Enum.MeshType.FileMesh
Hilt.Name = "Hilt"
Hilt.Parent = Model1
Hilt.CFrame = CFrame.new(8.94124222, 4.30354452, 2.74181032, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Hilt.Orientation = Vector3.new(0, 0, -90)
Hilt.Position = Vector3.new(8.94124222, 4.30354452, 2.74181032)
Hilt.Rotation = Vector3.new(0, 0, -90)
Hilt.Color = Color3.new(0.937255, 0.721569, 0.219608)
Hilt.Size = Vector3.new(0.19170779, 0.177575484, 0.256224811)
Hilt.Anchored = true
Hilt.BottomSurface = Enum.SurfaceType.Smooth
Hilt.BrickColor = BrickColor.new("Gold")
Hilt.CanCollide = false
Hilt.Locked = true
Hilt.Material = Enum.Material.Metal
Hilt.TopSurface = Enum.SurfaceType.Smooth
Hilt.brickColor = BrickColor.new("Gold")
SpecialMesh29.Parent = Hilt
SpecialMesh29.MeshId = "rbxassetid://4568222332"
SpecialMesh29.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh29.MeshType = Enum.MeshType.FileMesh
Hilt2.Name = "Hilt2"
Hilt2.Parent = Model1
Hilt2.CFrame = CFrame.new(8.94124222, 4.52044487, 2.74058151, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Hilt2.Orientation = Vector3.new(0, 0, -90)
Hilt2.Position = Vector3.new(8.94124222, 4.52044487, 2.74058151)
Hilt2.Rotation = Vector3.new(0, 0, -90)
Hilt2.Color = Color3.new(0.937255, 0.721569, 0.219608)
Hilt2.Size = Vector3.new(0.142551929, 0.106913954, 0.215671256)
Hilt2.Anchored = true
Hilt2.BottomSurface = Enum.SurfaceType.Smooth
Hilt2.BrickColor = BrickColor.new("Gold")
Hilt2.CanCollide = false
Hilt2.Locked = true
Hilt2.Material = Enum.Material.Metal
Hilt2.TopSurface = Enum.SurfaceType.Smooth
Hilt2.brickColor = BrickColor.new("Gold")
SpecialMesh31.Parent = Hilt2
SpecialMesh31.MeshId = "rbxassetid://4568222411"
SpecialMesh31.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh31.MeshType = Enum.MeshType.FileMesh
Sheath.Name = "Sheath"
Sheath.Parent = Model1
Sheath.CFrame = CFrame.new(8.94124222, 6.81540871, 3.03121519, 0, 1, 0, -1, 0, 0, 0, 0, 1)
Sheath.Orientation = Vector3.new(0, 0, -90)
Sheath.Position = Vector3.new(8.94124222, 6.81540871, 3.03121519)
Sheath.Rotation = Vector3.new(0, 0, -90)
Sheath.Size = Vector3.new(4.71465969, 0.108757302, 0.851624966)
Sheath.Anchored = true
Sheath.BottomSurface = Enum.SurfaceType.Smooth
Sheath.CanCollide = false
Sheath.Locked = true
Sheath.Material = Enum.Material.SmoothPlastic
Sheath.TopSurface = Enum.SurfaceType.Smooth
SpecialMesh33.Parent = Sheath
SpecialMesh33.MeshId = "rbxassetid://4568222503"
SpecialMesh33.Scale = Vector3.new(0.614448011, 0.614448011, 0.614448011)
SpecialMesh33.MeshType = Enum.MeshType.FileMesh
Texture34.Parent = Sheath
Texture34.Texture = "rbxassetid://4568344297"
Texture34.Face = Enum.NormalId.Top
Texture34.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
Texture35.Parent = Sheath
Texture35.Texture = "rbxassetid://4568344297"
Texture35.Face = Enum.NormalId.Back
Texture35.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
Texture36.Parent = Sheath
Texture36.Texture = "rbxassetid://4568344297"
Texture36.Face = Enum.NormalId.Bottom
Texture36.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
Texture37.Parent = Sheath
Texture37.Texture = "rbxassetid://4568344297"
Texture37.Face = Enum.NormalId.Left
Texture37.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
Texture38.Parent = Sheath
Texture38.Texture = "rbxassetid://4568344297"
Texture38.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
Texture39.Parent = Sheath
Texture39.Texture = "rbxassetid://4568344297"
Texture39.Face = Enum.NormalId.Right
Texture39.Color3 = Color3.new(0.176471, 0.176471, 0.176471)
local a1,a2,k_trail = Instance.new("Attachment"),Instance.new("Attachment"),Instance.new("Trail")
a1.Parent = Blade
a1.Position = Vector3.new((Blade.Size.X/2), 0, -(Blade.Size.Z/2))
a2.Parent = Blade
a2.Position = Vector3.new(-(Blade.Size.X/2), 0, (Blade.Size.Z/2))
k_trail.Parent = Blade
k_trail.Attachment0 = a1
k_trail.Attachment1 = a2
k_trail.MinLength = 0
k_trail.LightInfluence = 1
--k_trail.Texture = 'rbxassetid://4480871448'
--k_trail.MaxLength = 2
k_trail.Transparency = NumberSequence.new(0,1)
k_trail.Lifetime = 0.5
k_trail.Enabled = false
--
local low_gfx = true
local katana_m = Model1
local sheathe_weld = nil
local _sheathe_weld = nil
local sheathe_weld2 = nil
local _sheathe_weld2 = nil
local Handle,Sheath
for _,v in pairs(katana_m:GetDescendants()) do
	if v:IsA("Part") then
		v.Anchored = false
		v.CanCollide = false
		v.Massless = true
		v.Locked = true
		if v.Name == 'Handle' then
			Handle = v
		elseif v.Name == 'Sheath' then
			Sheath = v
		end
	end
end
for _,v in pairs(katana_m:GetDescendants()) do
	if low_gfx then
		if v.Name == 'Hilt' then
			local sm = v:FindFirstChildOfClass("SpecialMesh")
			if sm then
				sm.MeshId = ''
				sm.MeshType = Enum.MeshType.Cylinder
				sm.Scale = Vector3.new(1,1,1)
				sm.TextureId = ''
			end
			v.Size = Vector3.new(0.192, 0.256, 0.256)
		elseif v.Name == 'Handle' then
			local sm = v:FindFirstChildOfClass("SpecialMesh")
			if sm then
				sm.MeshId = ''
				sm.MeshType = Enum.MeshType.Cylinder
				sm.Scale = Vector3.new(1,1,1)
			end
			v.Size = Vector3.new(1.679, 0.233, 0.233)
		elseif v.Name == 'HandGuard' then
			local sm = v:FindFirstChildOfClass("SpecialMesh")
			if sm then
				sm.MeshId = ''
				sm.MeshType = Enum.MeshType.Cylinder
				sm.Scale = Vector3.new(1,1,1)
				sm.TextureId = ''
			end
			v.Size = Vector3.new(0.055, 0.463, 0.463)
		elseif v.Name == 'EndPiece' then
			local sm = v:FindFirstChildOfClass("SpecialMesh")
			if sm then
				sm.MeshId = ''
				sm.MeshType = Enum.MeshType.Cylinder
				sm.Scale = Vector3.new(1,1,1)
				sm.TextureId = ''
			end
			v.Size = Vector3.new(0.052, 0.253, 0.253)
		elseif (v.Name == 'HandGuard2') --[[or (v.Name == 'Hilt2')]] or string.match(v.Name:lower(),'cloth') then
			v:Destroy()
		end
	end
	if v ~= Handle and v:IsA("Part") then
		if v ~= Sheath then
			local weld = Instance.new("Weld")
			weld.Part0 = Handle
			weld.Part1 = v
			weld.Parent = v
			weld.C0 = Handle.CFrame:Inverse()
			weld.C1 = v.CFrame:Inverse()
		end
	end
end
sheathe_weld = Instance.new("Weld")
sheathe_weld.Part0 = Handle
sheathe_weld.Part1 = Sheath
sheathe_weld.Parent = Sheath
sheathe_weld.C0 = Handle.CFrame:Inverse()
sheathe_weld.C1 = Sheath.CFrame:Inverse()
_sheathe_weld = Instance.new("Weld")
_sheathe_weld.Part0 = torso
_sheathe_weld.Part1 = Sheath
_sheathe_weld.Parent = Sheath
_sheathe_weld.C0 = CFrame.new(-1.05, -1.2, 1.7)*CFrame.Angles(math.rad(110),math.rad(180),math.rad(-90))
sheathe_weld2 = Instance.new("Weld")
sheathe_weld2.Part0 = rarm
sheathe_weld2.Part1 = Handle
sheathe_weld2.Parent = nil
sheathe_weld2.C0 = CFrame.new(0,-rarm.Size.Y/2,0)*CFrame.Angles(math.rad(-90),0,0)
sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)
_sheathe_weld2 = Instance.new("Weld")
_sheathe_weld2.Part0 = larm
_sheathe_weld2.Part1 = Sheath
_sheathe_weld2.Parent = nil
_sheathe_weld2.C1 = CFrame.new(1.4,0,0.8)*CFrame.Angles(math.rad(0),math.rad(-85),math.rad(-90))
Handle.Anchored = false
katana_m.Parent = char
--
local blood_att
function create_blood_att()
	if not blood_att or not blood_att.Parent then else return end
	blood_att = Instance.new("Attachment")
	blood_att.Parent = Blade
	local ParticleEmitter0 = Instance.new("ParticleEmitter")
	local ParticleEmitter1 = Instance.new("ParticleEmitter")
	ParticleEmitter0.Parent = blood_att
	ParticleEmitter0.Speed = NumberRange.new(1, 1)
	ParticleEmitter0.Rotation = NumberRange.new(0, 360)
	ParticleEmitter0.Color = ColorSequence.new(Color3.new(1, 0, 0),Color3.new(1, 0, 0))
	ParticleEmitter0.Enabled = false
	ParticleEmitter0.Texture = "rbxassetid://244369543"
	ParticleEmitter0.Transparency = NumberSequence.new({
		NumberSequenceKeypoint.new(0,1),
		NumberSequenceKeypoint.new(0.0436,0.981),
		NumberSequenceKeypoint.new(0.423,0.969),
		NumberSequenceKeypoint.new(1,1),
	})
	ParticleEmitter0.Size = NumberSequence.new({
		NumberSequenceKeypoint.new(0,5.69),
		NumberSequenceKeypoint.new(0.728,6.44),
		NumberSequenceKeypoint.new(1,0),
	})
	ParticleEmitter0.Acceleration = Vector3.new(0, -0.5, 0)
	ParticleEmitter0.Drag = -1
	ParticleEmitter0.Lifetime = NumberRange.new(1, 1)
	ParticleEmitter0.Rate = 20
	ParticleEmitter0.RotSpeed = NumberRange.new(5, 5)
	ParticleEmitter0.SpreadAngle = Vector2.new(360, 360)
	ParticleEmitter0.VelocitySpread = 360
	ParticleEmitter1.Parent = blood_att
	ParticleEmitter1.Speed = NumberRange.new(3, 3)
	ParticleEmitter1.Rotation = NumberRange.new(0, 360)
	ParticleEmitter1.Color = ColorSequence.new(Color3.new(1, 0, 0),Color3.new(1, 0, 0))
	ParticleEmitter1.Enabled = false
	ParticleEmitter1.Texture = "rbxassetid://421529480"
	ParticleEmitter1.Transparency = NumberSequence.new({
		NumberSequenceKeypoint.new(0,1),
		NumberSequenceKeypoint.new(0.0355,0.212),
		NumberSequenceKeypoint.new(0.156,0.837),
		NumberSequenceKeypoint.new(0.478,0.881),
		NumberSequenceKeypoint.new(0.709,1),
		NumberSequenceKeypoint.new(1,1),
	})
	ParticleEmitter1.Size = NumberSequence.new({
		NumberSequenceKeypoint.new(0,0.5),
		NumberSequenceKeypoint.new(0.14,1.5),
		NumberSequenceKeypoint.new(0.607,3.5),
		NumberSequenceKeypoint.new(1,0),
	})
	ParticleEmitter1.Acceleration = Vector3.new(0, -12, 0)
	ParticleEmitter1.Drag = -1
	ParticleEmitter1.Lifetime = NumberRange.new(2.5, 2.5)
	ParticleEmitter1.Rate = 80
	ParticleEmitter1.SpreadAngle = Vector2.new(360, 360)
	ParticleEmitter1.VelocitySpread = 360
	ParticleEmitter0.Enabled = false
	ParticleEmitter1.Enabled = false
end
--
local wallhits = {3203893315,3203893704,3203893934}
local bladeswings = {338586299,338586318,338586331}
local bladehits = {3203895449,3203894821,3203895660,344936319}
local bladedismembers = {3744367524,3744368077,3744368365,3744368660}
local bladeclashes = {4953121379,4953118406,4953118940,4953120382,4953120611,3932476666,3744370206,3744369932,3744369672}
--
local bladehit_s = Instance.new("Sound")
bladehit_s.SoundId = 'rbxassetid://' .. bladehits[math.random(1,#bladehits)]
bladehit_s.Volume = 0.7
bladehit_s.Parent = Blade
local bladedismember_s = Instance.new("Sound")
bladedismember_s.SoundId = 'rbxassetid://' .. bladedismembers[math.random(1,#bladedismembers)]
bladedismember_s.Volume = 0.8
bladedismember_s.Parent = Blade
local bladeclash_s = Instance.new("Sound")
bladeclash_s.SoundId = 'rbxassetid://' .. bladeclashes[math.random(1,#bladeclashes)]
bladeclash_s.Volume = 0.6
bladeclash_s.Parent = Blade
local hitwall = Instance.new("Sound")
hitwall.SoundId = 'rbxassetid://' .. wallhits[math.random(1,#wallhits)]
hitwall.Volume = 0.6
hitwall.Parent = Blade
local blade_swing = Instance.new("Sound")
blade_swing.SoundId = 'rbxassetid://' .. bladeswings[math.random(1,#bladeswings)]
blade_swing.Volume = 0.5
blade_swing.Parent = Blade
local unsheathe = Instance.new("Sound")
unsheathe.SoundId = 'rbxassetid://274937234'
unsheathe.Volume = 0.5
unsheathe.PlaybackSpeed = 1
unsheathe.Parent = Blade
local sheathe = Instance.new("Sound")
sheathe.SoundId = 'rbxassetid://3211793833'
sheathe.Volume = 0.5
sheathe.PlaybackSpeed = 1
sheathe.Parent = Blade
local bleeding = Instance.new("Sound")
bleeding.SoundId = 'rbxassetid://360007673'
bleeding.Volume = 0.5
bleeding.Parent = Blade

local motors = {}
local welds = {}

if ls then
	table.insert(motors,1,{ls,ls.Parent})
	ls.Parent = nil
	ls = Instance.new("Weld")
	ls.Name = 'Left Shoulder'
	ls.Part0 = torso
	ls.Part1 = larm
	ls.Parent = torso
	table.insert(welds,1,{ls,ls.Parent})
end

if rs then
	table.insert(motors,1,{rs,rs.Parent})
	rs.Parent = nil
	rs = Instance.new("Weld")
	rs.Name = 'Right Shoulder'
	rs.Part0 = torso
	rs.Part1 = rarm
	rs.Parent = torso
	table.insert(welds,1,{rs,rs.Parent})
end

if lh then
	table.insert(motors,1,{lh,lh.Parent})
	lh.Parent = nil
	lh = Instance.new("Weld")
	lh.Name = 'Left Hip'
	lh.Part0 = torso
	lh.Part1 = lleg
	lh.Parent = torso
	table.insert(welds,1,{lh,lh.Parent})
end

if rh then
	table.insert(motors,1,{rh,rh.Parent})
	rh.Parent = nil
	rh = Instance.new("Weld")
	rh.Name = 'Right Hip'
	rh.Part0 = torso
	rh.Part1 = rleg
	rh.Parent = torso
	table.insert(welds,1,{rh,rh.Parent})
end

if neck then
	table.insert(motors,1,{neck,neck.Parent})
	neck.Parent = nil
	neck = Instance.new("Weld")
	neck.Name = 'Neck'
	neck.Part0 = torso
	neck.Part1 = head
	neck.Parent = torso
	table.insert(welds,1,{neck,neck.Parent})
end

if rj then
	table.insert(motors,1,{rj,rj.Parent})
	rj.Parent = nil
	rj = Instance.new("Weld")
	rj.Name = 'RootJoint'
	rj.Part0 = rootpart
	rj.Part1 = torso
	rj.Parent = torso
	table.insert(welds,1,{rj,rj.Parent})
end

local remote = Instance.new("RemoteEvent")
remote.Parent = plr['PlayerGui']

local blocking,blocking2 = false,false
local sprinting,sprinting2 = false,false
local crouching = false
local attacking = false
local finishing = false
local dancing = false
local jumping = false
local falling = false
local toggling_dance = false
local changing_stun_type = false
local fists = false
local katana = false
local equipped = false
local bloody = false
local pa,hka,ka,sa,lka,ksa = 1,2,1,1,1,1
local screen,healthbar,healthstat,staminabar,staminastat,blockbar,blockstat
local blockhealth,blockhealthmax = math.huge,math.huge
local stamina,staminamax = math.huge,math.huge
local block_counter,stamina_counter = 0,0
local last_health = hum.Health
local anim_speed = 0.7
local sine = 0
local dmg = 20
local hit_id = 0
local stun_type = math.random(1,2)
local stun_duration = 0.5
local block_stun_cooldown = 0
local blood_cooldown = 0
local anim_wait = 0.02*100
local anim = 'idle'
local last_mpos = Vector3.new()
local last_trans = {}
local bloodlol_t = {}
local knocked_t = {}
local ragdolled = {}
local ghost_id = 0

local animator = hum:FindFirstChildOfClass("Animator")
local animate = char:FindFirstChild("Animate")

local dance_anim = Instance.new("Animation")
dance_anim.AnimationId = 'rbxassetid://35654637'
dance_anim.Parent = hum

local enabled = {}
enabled[ls] = true
enabled[rs] = true
enabled[neck] = true
enabled[rh] = true
enabled[lh] = true
enabled[rj] = true

local punches = {3932504231,3932505023,3932506183,3932506625,4306980885}
local finishes = {3847883680,3847884467,3847885772,3929462677}
local bonecracks = {3848986758,3848987400}

local swing_s = Instance.new("Sound")
swing_s.SoundId = 'rbxassetid://138097048'
swing_s.Volume = 1
swing_s.Parent = torso

local punch = Instance.new("Sound")
punch.SoundId = 'rbxassetid://138097048'
punch.Volume = 0.7
punch.Parent = torso

local finish = Instance.new("Sound")
finish.SoundId = 'rbxassetid://3847883680'
finish.Volume = 0.4
finish.Parent = torso

local mash = Instance.new("Sound")
mash.SoundId = 'rbxassetid://2517519047'
mash.Looped = true
mash.Volume = 1
mash.Parent = torso

local bone_crack = Instance.new("Sound")
bone_crack.SoundId = 'rbxassetid://138097048'
bone_crack.Volume = 0.4
bone_crack.Parent = torso

local dodge_s = Instance.new("Sound")
dodge_s.SoundId = 'rbxassetid://4458055429'
dodge_s.Volume = 0.35
dodge_s.Parent = torso

local falldamage = Instance.new("Sound")
falldamage.SoundId = 'rbxassetid://535681058'
falldamage.Volume = 1
falldamage.Parent = torso

local dash_s = Instance.new("Sound")
dash_s.SoundId = 'rbxassetid://4909206080'
dash_s.Volume = 1
dash_s.Parent = torso

local za_warudo = Instance.new("Sound")
za_warudo.SoundId = 'rbxassetid://601606956'
za_warudo.Volume = 5
za_warudo.Parent = torso

local muda_s = Instance.new("Sound")
muda_s.SoundId = 'rbxassetid://616593932'
muda_s.Volume = 2
muda_s.Parent = torso

local _blockingval = Instance.new("ObjectValue")
_blockingval.Name = 'blocking'
_blockingval.Parent = nil

local larm_trail = Instance.new("Trail")
local att1,att2 = Instance.new("Attachment",larm),Instance.new("Attachment",larm)
att1.Position = Vector3.new(0,-(larm.Size.Y/2),0)
att2.Position = Vector3.new(0,(larm.Size.Y/2),0)
larm_trail.Attachment0 = att1
larm_trail.Attachment1 = att2
larm_trail.LightInfluence = 1
larm_trail.Transparency = NumberSequence.new(0,1)
larm_trail.MinLength = 0
larm_trail.Lifetime = 0.5
larm_trail.Enabled = false
larm_trail.Parent = larm

local rarm_trail = Instance.new("Trail")
local att1,att2 = Instance.new("Attachment",rarm),Instance.new("Attachment",rarm)
att1.Position = Vector3.new(0,-(rarm.Size.Y/2),0)
att2.Position = Vector3.new(0,(rarm.Size.Y/2),0)
rarm_trail.Attachment0 = att1
rarm_trail.Attachment1 = att2
rarm_trail.LightInfluence = 1
rarm_trail.Transparency = NumberSequence.new(0,1)
rarm_trail.MinLength = 0
rarm_trail.Lifetime = 0.5
rarm_trail.Enabled = false
rarm_trail.Parent = rarm

local lleg_trail = Instance.new("Trail")
local att1,att2 = Instance.new("Attachment",lleg),Instance.new("Attachment",lleg)
att1.Position = Vector3.new(0,-(lleg.Size.Y/2),0)
att2.Position = Vector3.new(0,(lleg.Size.Y/2),0)
lleg_trail.Attachment0 = att1
lleg_trail.Attachment1 = att2
lleg_trail.LightInfluence = 1
lleg_trail.Transparency = NumberSequence.new(0,1)
lleg_trail.MinLength = 0
lleg_trail.Lifetime = 0.5
lleg_trail.Enabled = false
lleg_trail.Parent = lleg

local rleg_trail = Instance.new("Trail")
local att1,att2 = Instance.new("Attachment",rleg),Instance.new("Attachment",rleg)
att1.Position = Vector3.new(0,-(rleg.Size.Y/2),0)
att2.Position = Vector3.new(0,(rleg.Size.Y/2),0)
rleg_trail.Attachment0 = att1
rleg_trail.Attachment1 = att2
rleg_trail.LightInfluence = 1
rleg_trail.Transparency = NumberSequence.new(0,1)
rleg_trail.MinLength = 0
rleg_trail.Lifetime = 0.5
rleg_trail.Enabled = false
rleg_trail.Parent = rleg

local idle_anim = Instance.new("Animation")
idle_anim.AnimationId = 'rbxassetid://125750544'
idle_anim.Parent = hum

function reset_anims(mode)
	if mode == false then
		for i,v in pairs(motors) do v[1].Parent = v[2]; end;
		for i,v in pairs(welds) do v[1].Parent = nil; end;
	elseif mode == true then
		for i,v in pairs(welds) do v[1].Parent = v[2]; end;
		for i,v in pairs(motors) do v[1].Parent = nil; end;
	end
	if mode == true then
		if animator then
			animator.Parent = hum
		end
		local T = hum:GetPlayingAnimationTracks()
	    for i = 1,#T do
	        T[i]:Stop()
	    end
		local i = hum:LoadAnimation(idle_anim)
		i.Priority = Enum.AnimationPriority.Action
		i:AdjustSpeed(0)
		i:Play()
		i.TimePosition = ((50/100)*i.Length)
	elseif mode == false then
		if animate then
			animate.Parent = char
		end
		if animator then
			animator.Parent = hum
		end
	end
	--Swait(10)
	if mode == true then
		if animator then
			animator.Parent = nil
		end
		ls.C0 = CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
		ls.C1 = CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
		
		rs.C0 = CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
		rs.C1 = CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
		
		neck.C0 = CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))
		neck.C1 = CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))
		
		rh.C0 = CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
		rh.C1 = CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))
		
		lh.C0 = CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
		lh.C1 = CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))
		
		rj.C0 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))
		rj.C1 = CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))
	end
end

reset_anims(true)
equipped = true

--[[
local tool = Instance.new("Tool")
tool.Name = 'Combat V2'
tool.CanBeDropped = false
tool.RequiresHandle = false
tool.Parent = plr['Backpack']

tool.Equipped:Connect(function()
	equipped = true
	reset_anims(true)
end)

tool.Unequipped:Connect(function()
	equipped = false
	dance(false)
	reset_anims(false)
end)
]]

function create_stars(p)
	local star_att = Instance.new("Attachment")
	star_att.Parent = p
	local dizzy_stars = Instance.new("ParticleEmitter")
	dizzy_stars.Name = "Star"
	dizzy_stars.Parent = star_att
	dizzy_stars.Speed = NumberRange.new(1, 1)
	dizzy_stars.Rotation = NumberRange.new(360, 360)
	dizzy_stars.Texture = "http://www.roblox.com/asset/?id=114332039"
	dizzy_stars.Transparency = NumberSequence.new(0,1)
	dizzy_stars.Size = NumberSequence.new({
		NumberSequenceKeypoint.new(0,0.125),
		NumberSequenceKeypoint.new(0.184,0.2),
		NumberSequenceKeypoint.new(1,0),
	})
	dizzy_stars.Lifetime = NumberRange.new(2, 2)
	dizzy_stars.LockedToPart = true
	dizzy_stars.Rate = 5
	dizzy_stars.RotSpeed = NumberRange.new(360, 360)
	dizzy_stars.SpreadAngle = Vector2.new(90, 90)
	dizzy_stars.VelocitySpread = 90
	dizzy_stars.Enabled = true
	return star_att,dizzy_stars
end

function change_stun_type()
	spawn(function()
		stun_type = stun_type + 1
		if stun_type > 2 then
			stun_type = 1 
		end
		if not changing_stun_type then
			changing_stun_type = true
			for i,v in pairs(char:GetChildren()) do
				if (v:IsA("BasePart") or v:IsA("UnionOperation")) and (v.Name ~= 'HumanoidRootPart') then
					local s = v:FindFirstChild('stun_s')
					if not s then
						s = Instance.new("SelectionBox")
						s.Visible = false
						s.Parent = v
						s.Color3 = Color3.new(1, 0.333333, 0)
						s.Adornee = v
						s.LineThickness = 0
						s.SurfaceColor = BrickColor.new("New Yeller")
						s.SurfaceColor3 = Color3.new(1, 1, 0)
						s.SurfaceTransparency = 0.8
					end
					spawn(function()
						s.Visible = true
						repeat wait() until not hum:FindFirstChild("Stunned")
						changing_stun_type = false
						s.Visible = false
					end)
				end
			end
		end
	end)
end
function bleed2(frick,targhum,can_hurt,t,splat)
	spawn(function()
	if not frick:FindFirstChild("bleeding from kry's combat") then else return end
	local tempbleedval = Instance.new("ObjectValue")
	tempbleedval.Name = "bleeding from kry's combat"
	tempbleedval.Parent = frick
	local bleeding = true
	local rig = targhum.RigType
	local limbs = {'Head','Left Arm','Right Arm','Left Leg','Right Leg','RightUpperLeg','LeftUpperLeg','RightUpperArm','LeftUpperArm','RightLowerLeg','LeftLowerLeg','RightLowerArm','LeftLowerArm','RightFoot','LeftFoot','RightHand','LeftHand'}
	spawn(function()
		wait(t)
		bleeding = false
		tempbleedval:Destroy()
	end)
    while bleeding and frick and frick.Parent do
		if --[[(targhum and targhum.Parent and targhum.Health > 0) or]] (not frick or not frick.Parent or not targhum or not targhum.Parent) then
			break
		end
		local max_limbs = 0
		local current_limbs = 0
		local gone_limbs = 0
		local targchar = targhum.Parent
		if rig == Enum.HumanoidRigType.R6 then
			max_limbs = 5
		elseif rig == Enum.HumanoidRigType.R15 then
			max_limbs = 13
		end
		for i,v in pairs(targchar:GetChildren()) do
			local found = false
			for i,n in pairs(limbs) do if n == v.Name then found = true; end; end;
			if found and not v:FindFirstChild("Dismembered") then
				current_limbs = current_limbs + 1
			end
		end
		gone_limbs = (max_limbs-current_limbs)
		if targhum and can_hurt then
			if gone_limbs >= 1 then
				targhum:TakeDamage(0.5*gone_limbs)
			else
				targhum:TakeDamage(0.5)
			end
		end
	    spawn(function()
		    local thing = Instance.new('Part')
			thing.Parent = workspace
		    thing.Size = Vector3.new(0.1,0.1,0.1)
		    thing.CFrame = frick.CFrame*CFrame.new(0,frick.Size.Y/2,0)
			if splat then
		    	thing.Transparency = 0
			elseif not splat then
				thing.Transparency = 1
			end
		    thing.Color = Color3.fromRGB(75, 0, 0)
		    thing.Material = Enum.Material.Glass
		    thing.Name = "blood_drop"
		    thing.CanCollide =false
			thing:BreakJoints()
		    local mesh = Instance.new('SpecialMesh')
			mesh.MeshType = Enum.MeshType.Sphere
		    mesh.Parent = thing
			--game:GetService("Debris"):AddItem(thing,5)
			local att1,att2 = Instance.new("Attachment"),Instance.new("Attachment")
			att1.Parent = thing
			att1.Position = Vector3.new(0,-(thing.Size.Y/2),0)
			att2.Parent = thing
			att2.Position = Vector3.new(0,(thing.Size.Y/2),0)
			if splat then
				local trail_drop = Instance.new("Trail")
				trail_drop.Parent = thing
				trail_drop.Attachment0 = att1
				trail_drop.Attachment1 = att2
				trail_drop.Color = ColorSequence.new(Color3.new(0.294118, 0, 0),Color3.new(0.294118, 0, 0))
				trail_drop.FaceCamera = true
				trail_drop.LightInfluence = 1
				trail_drop.Transparency = NumberSequence.new(0.1,1)
				trail_drop.Lifetime = 1
				trail_drop.MinLength = 0
			end
		    local rawrxd = Instance.new('BodyForce')
			rawrxd.Parent = thing
			if splat then
		  	    rawrxd.Force = frick.CFrame.upVector+Vector3.new(math.random(-5, 5)/10,3,math.random(-5, 5)/10)
			elseif not splat then
				rawrxd.Force = frick.CFrame.upVector*(math.random()*2)+Vector3.new(math.random(-5, 5)/10,1.5,0)
			end
		    game:GetService("Debris"):AddItem(rawrxd,0.01)
		    thing.Touched:connect(function(tou)
		        if tou and tou.Parent and not tou:IsDescendantOf(targchar) and not tou.Parent:FindFirstChildOfClass("Humanoid") and not tou.Parent.Parent:FindFirstChildOfClass("Humanoid") and not tou.Parent:IsA("Accessory") and tou.Name ~= 'Handle' and tou.Parent.Name ~= 'Handle' and not tou.Parent:IsA("Tool") and not string.match(tou.Name:lower(),'blood_drop') and not string.match(tou.Name:lower(),'bullet') and not string.match(tou.Name:lower(),'bone') and not string.match(tou.Name:lower(),'gun mag') and not string.match(tou.Name:lower(),'limb') then
		            local pos = Vector3.new(thing.Position.X,(tou.Position.Y+(tou.Size.Y/2))+(0.02/2),thing.Position.Z)
					local Point1 = pos-Vector3.new(0.01,0.01,0.01)
					local Point2 = pos+Vector3.new(0.01,0.01,0.01)
					local Region = Region3.new(Point1,Point2)
					for _,Part in pairs(game.Workspace:FindPartsInRegion3(Region,nil,math.huge)) do
						if Part.Name == "blood" then
							tou = Part
						end
					end
		            thing:Destroy()
		            if tou.Name == "blood" then
		                local reee = tou.CFrame
		                if tou.Transparency > -0.2 then
		                    tou.Transparency = tou.Transparency - 0.1
		                end
		                if tou.Size.X < 5 then
		                    tou.Size = tou.Size+Vector3.new(0.4,0,0.4)
		                    tou.CFrame = reee
		                elseif tou.Size.X < 7.5 then
		                    tou.Size = tou.Size+Vector3.new(0.3,0,0.3)
		                    tou.CFrame = reee
		                elseif tou.Size.X < 10 then
		                    tou.Size = tou.Size+Vector3.new(0.2,0,0.2)
		                    tou.CFrame = reee
		                end
		            elseif tou.CanCollide == true then
		                local bloodlol = Instance.new('Part')
						if gone_limbs >= 1 then
		               	 	bloodlol.Size = Vector3.new(1*gone_limbs,0.2,1*gone_limbs)
						else
							bloodlol.Size = Vector3.new(1,0.2,1)
						end
		                bloodlol.Name = "blood"
		                bloodlol.Anchored = true
		                bloodlol.CanCollide = false
		                bloodlol.Material = Enum.Material.Glass
		                bloodlol.Color = Color3.fromRGB(75, 0, 0)
		                local mesh = Instance.new('SpecialMesh')
						mesh.MeshType = Enum.MeshType.Sphere
		                mesh.Parent = bloodlol
						bloodlol.Parent = workspace
		                bloodlol.CFrame = CFrame.new(pos)
						table.insert(bloodlol_t,1,bloodlol)
		            end
		        end
		    end)
		end)
		wait(0.1)
	end
	tempbleedval:Destroy()
	end)
end
function make_bone(obj,targtorso)
	if obj.Name == 'Left Arm' or obj.Name == 'LeftUpperArm' then
		local bone = Instance.new("Part")
		bone.name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = targtorso.CFrame
		bone.Size = targtorso.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(targtorso,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = targtorso
		weld.C1 = CFrame.new(-0.61,0.77,0.03)*CFrame.Angles(math.rad(90),0,math.rad(90))
		weld.Parent = bone
		targtorso.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
		--
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = obj.CFrame
		bone.Size = obj.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = obj
		weld.C1 = CFrame.new(0.13,0.26,0)
		weld.Parent = bone
		obj.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://36780032'
		mesh.TextureId = 'rbxassetid://36780292'
		mesh.Parent = bone
	elseif obj.Name == 'Right Arm' or obj.Name == 'RightUpperArm' then
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = targtorso.CFrame
		bone.Size = targtorso.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(targtorso,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = targtorso
		weld.C1 = CFrame.new(0.61,0.77,0.03)*CFrame.Angles(math.rad(90),0,math.rad(-90))
		weld.Parent = bone
		targtorso.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
		--
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = obj.CFrame
		bone.Size = obj.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = obj
		weld.C1 = CFrame.new(-0.13,0.26,0)
		weld.Parent = bone
		obj.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://36780156'
		mesh.TextureId = 'rbxassetid://36780292'
		mesh.Parent = bone
	elseif obj.Name == 'Left Leg' or obj.Name == 'LeftUpperLeg' then
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = targtorso.CFrame
		bone.Size = targtorso.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(targtorso,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = targtorso
		weld.C1 = CFrame.new(-0.6,-0.64,0.11)*CFrame.Angles(0,0,math.rad(180))
		weld.Parent = bone
		targtorso.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
		--
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = obj.CFrame
		bone.Size = obj.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = obj
		weld.C1 = CFrame.new(0,0.09,0.13)
		weld.Parent = bone
		obj.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://36780156'
		mesh.TextureId = 'rbxassetid://36780292'
		mesh.Parent = bone
	elseif obj.Name == 'Right Leg' or obj.Name == 'RightUpperLeg' then
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = targtorso.CFrame
		bone.Size = targtorso.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(targtorso,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = targtorso
		weld.C1 = CFrame.new(0.6,-0.64,0.11)*CFrame.Angles(0,0,math.rad(180))
		weld.Parent = bone
		targtorso.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
		--
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = obj.CFrame
		bone.Size = obj.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = obj
		weld.C1 = CFrame.new(0,0.09,0.13)
		weld.Parent = bone
		obj.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://36780195'
		mesh.TextureId = 'rbxassetid://36780292'
		mesh.Parent = bone
	elseif obj.Name == 'Head' then
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = targtorso.CFrame
		bone.Size = targtorso.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(targtorso,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = targtorso
		weld.C1 = CFrame.new(0,0.66,0)
		weld.Parent = bone
		targtorso.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
		--
		local bone = Instance.new("Part")
		bone.Name = 'bone'
		bone.CanCollide = false
		bone.Anchored = false
		bone.CFrame = obj.CFrame
		bone.Size = obj.Size
		bone.Massless = true
		bone.Locked = true
		local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
		if not exists then
			game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
		end
		game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
		game:GetService("PhysicsService"):SetPartCollisionGroup(bone,'Limb Collide')
		game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
		local weld = Instance.new("Weld")
		weld.Part0 = bone
		weld.Part1 = obj
		weld.C1 = CFrame.new(0,-0.23,0)*CFrame.Angles(0,math.rad(-90),0)
		weld.Parent = bone
		obj.Anchored = false
		bone.Parent = script
		local mesh = Instance.new("SpecialMesh")
		mesh.MeshId = 'rbxassetid://1076136382'
		mesh.TextureId = 'rbxassetid://1076137938'
		mesh.Scale = Vector3.new(0.03,0.03,0.03)
		mesh.Parent = bone
	end
end
function check_weld(v)
	if v:IsA("Motor6D") or v:IsA("BallSocketConstraint") or v:IsA("Motor") or v:IsA("Constraint") or v:IsA("Weld") or v:IsA("ManualWeld") or v:IsA("WeldConstraint") or v:IsA("ManualGlue") or v:IsA("CylindricalConstraint") or v:IsA("NoCollisionConstraint") or v:IsA("HingeConstraint") then
		v:Destroy()
	end
end
function limb_collide(obj,mode)
	if (obj:IsA("UnionOperation") or obj:IsA("BasePart")) and not obj:FindFirstChild('limb') then else return end
	local exists = pcall(game:GetService("PhysicsService").GetCollisionGroupId, game:GetService("PhysicsService"), 'Limb Collide')
	if not exists then
		game:GetService("PhysicsService"):CreateCollisionGroup('Limb Collide')
	end
	game:GetService("PhysicsService"):CollisionGroupSetCollidable('Limb Collide','Limb Collide',false)
	--
	local t = {}
	--
	local cb = Instance.new("Part")
	cb.Name = 'limb'
	cb.Transparency = 1
	cb.CanCollide = true
	cb.Anchored = false
	cb.CFrame = obj.CFrame
	cb.Size = obj.Size
	cb.Massless = true
	cb.Locked = true
	game:GetService("PhysicsService"):SetPartCollisionGroup(cb,'Limb Collide')
	game:GetService("PhysicsService"):SetPartCollisionGroup(obj,'Limb Collide')
	local weld = Instance.new("Weld")
	weld.Part0 = cb
	weld.Part1 = obj
	weld.Parent = cb
	obj.Massless = true
	obj.Anchored = false
	if mode or obj:FindFirstChild("Dismembered") then
		cb.Parent = obj -- .Parent
	else
		cb.Parent = script
		table.insert(t,1,cb)
	end
	--
	if not string.match(obj.Name:lower(),'torso') and not string.match(obj.Name:lower(),'rootpart') and not string.match(obj.Name:lower(),'head') then
		local lv = Vector3.new() -- Vector3.new(cb.Size.X,0,cb.Size.Z)
		local cb2 = Instance.new("Part")
		cb2.Name = 'limb'
		cb2.Transparency = 1
		cb2.CanCollide = true
		cb2.Anchored = false
		cb2.CFrame = obj.CFrame
		cb2.Size = lv
		cb2.Massless = true
		cb2.Locked = true
		local weld2 = Instance.new("Weld")
		weld2.Part0 = cb
		weld2.Part1 = cb2
		weld2.C1 = CFrame.new(0,(cb.Size.Y/2),0)
		weld2.Parent = cb2
		if mode or obj:FindFirstChild("Dismembered") then
			cb2.Parent = obj -- .Parent
		else
			cb2.Parent = script
			table.insert(t,1,cb2)
		end
	end
	--
	return t
end
function break_limb(obj,rig,targtorso,targhum,dir)
	if not obj:FindFirstChild('Dismembered') and obj.Name:lower() ~= 'torso' and obj.Name:lower() ~= 'humanoidrootpart' and obj.Name:lower() ~= 'uppertorso' and obj.Name:lower() ~= 'lowertorso' then else return end
	local confirm = Instance.new("ObjectValue")
	confirm.Name = 'Dismembered'
	confirm.Parent = obj
	if rig == Enum.HumanoidRigType.R6 then
		for i,v in pairs(targtorso:GetDescendants()) do
			if check_weld(v) then
				if obj.Name == 'Head' and v.Name:lower() == 'neck' then
					v:Destroy()
				elseif obj.Name == 'Left Arm' and v.Name:lower() == 'left shoulder' then
					v:Destroy()
				elseif obj.Name == 'Right Arm' and v.Name:lower() == 'right shoulder' then
					v:Destroy()
				elseif obj.Name == 'Left Leg' and v.Name:lower() == 'left hip' then
					if v:IsA("Motor6D") and obj.Parent:FindFirstChild("Right Leg") and not obj.Parent:FindFirstChild("Right Leg"):FindFirstChild("Dismembered") then
						targhum.WalkSpeed = targhum.WalkSpeed/2
					elseif v:IsA("Motor6D") then 
						targhum.WalkSpeed = 0
					end
					v:Destroy()
				elseif obj.Name == 'Right Leg' and v.Name:lower() == 'right hip' then
					if v:IsA("Motor6D") and obj.Parent:FindFirstChild("Left Leg") and not obj.Parent:FindFirstChild("Left Leg"):FindFirstChild("Dismembered") then
						targhum.WalkSpeed = targhum.WalkSpeed/2
					elseif v:IsA("Motor6D") then 
						targhum.WalkSpeed = 0
					end
					v:Destroy()
				end
			end
		end
		for i,v in pairs(obj:GetChildren()) do
			if check_weld(v) then
				if obj.Name == 'Left Leg' then
					if v:IsA("Motor6D") and obj.Parent:FindFirstChild("Right Leg") and not obj.Parent:FindFirstChild("Right Leg"):FindFirstChild("Dismembered") then
						targhum.WalkSpeed = targhum.WalkSpeed/2
					elseif v:IsA("Motor6D") then 
						targhum.WalkSpeed = 0
					end
				elseif obj.Name == 'Right Leg' then
					if v:IsA("Motor6D") and obj.Parent:FindFirstChild("Left Leg") and not obj.Parent:FindFirstChild("Left Leg"):FindFirstChild("Dismembered") then
						targhum.WalkSpeed = targhum.WalkSpeed/2
					elseif v:IsA("Motor6D") then 
						targhum.WalkSpeed = 0
					end
				end
				v:Destroy()
			end
		end
	elseif rig == Enum.HumanoidRigType.R15 then
		for i,v in pairs(obj:GetChildren()) do
			if check_weld(v) then
				if v:IsA("Motor6D") then
					if v:IsA("Motor6D") and ((obj.Name == 'LeftUpperLeg' and obj.Parent:FindFirstChild("RightUpperLeg") and not obj.Parent:FindFirstChild("RightUpperLeg"):FindFirstChild("Dismembered")) or (obj.Name == 'RightUpperLeg' and obj.Parent:FindFirstChild("LeftUpperLeg") and not obj.Parent:FindFirstChild("LeftUpperLeg"):FindFirstChild("Dismembered"))) then
						targhum.WalkSpeed = targhum.WalkSpeed/2
					elseif v:IsA("Motor6D") and (obj.Name == 'RightUpperLeg' or obj.Name == 'LeftUpperLeg') then
						targhum.WalkSpeed = 0
					end
				end
				v:Destroy()
			end
		end
	end
	--bleed2(obj,targhum,false,5,false)
	add_blood(obj)
	make_bone(obj,targtorso)
	local kb = 17
	local bv = Instance.new("BodyVelocity")
	bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	bv.Velocity = dir*kb+Vector3.new(0,kb,0)
	bv.Parent = obj
	game:GetService("Debris"):AddItem(bv,0.1)
	limb_collide(obj,true)
end
function Ragdoll(targchar,headless,insta,kill)
	local pc = targchar
	local targhum = pc:FindFirstChild("Humanoid")
	local js,js2 = {},{}
	for _,obj in pairs(pc:GetDescendants()) do
		if obj:IsA("BasePart") or obj:IsA("UnionOperation") then
			obj.Massless = true
			obj.Locked = true
		end
	end
	if kill == true then
		pc.Archivable = true
		local old_pc = pc
		pc = pc:Clone()
		for i,v in pairs(pc:GetDescendants()) do
			limb_collide(v,true)
			if v:IsA("ParticleEmitter") then
				v.Enabled = false
			end
			if v:IsA("SelectionBox") or v:IsA("BodyVelocity") or v:IsA("BodyPosition") or v:IsA("BodyAngularVelocity") or v:IsA("BodyForce") or v:IsA("BodyGyro") or v:IsA("BodyThrust") or v:IsA("BodyMover") then
				if v:IsA("BodyVelocity") then
					game:GetService("Debris"):AddItem(v,0.15)
				else
					v:Destroy()
				end
			end
			if (v:IsA("Script") and v.Name == 'Health') or (v:IsA("LocalScript") and v.Name == 'Animate') then
				v:Destroy()
			end
			if v:IsA("Humanoid") then
				v.BreakJointsOnDeath = false
				v.Health = 0
				v.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
				v.PlatformStand = true
			end
		end
		for i,v in pairs(old_pc:GetDescendants()) do
			if v:IsA("BasePart") or v:IsA("UnionOperation") or v:IsA("ForceField") or v:IsA("Accessory") or v:IsA("Decal") or v:IsA("Texture") or v:IsA("SurfaceGui") then
				v:destroy()
			end
			if v:IsA("Humanoid") then
				v.BreakJointsOnDeath = true
				v.Health = 0
				v.HealthDisplayType = Enum.HumanoidHealthDisplayType.AlwaysOff
				v.PlatformStand = true
			end
		end
		pc.Parent = workspace
		game:GetService("Debris"):AddItem(pc,30)
	end
	--if kill and targhum:FindFirstChild("Ragdolled") then return; end;
	if pc ~= nil then
	    local hum = pc:FindFirstChild'Humanoid'
		local LArm = pc:FindFirstChild'Left Arm'
		local RArm = pc:FindFirstChild'Right Arm'
		local LLeg = pc:FindFirstChild'Left Leg'
		local RLeg = pc:FindFirstChild'Right Leg'
		local torso = pc:FindFirstChild'Torso'
		local head = pc:FindFirstChild'Head'
		
		
		local LUA = pc:FindFirstChild'LeftUpperArm'
		local LLA = pc:FindFirstChild'LeftLowerArm'
		local LH = pc:FindFirstChild'LeftHand'
		
		local RUA = pc:FindFirstChild'RightUpperArm'
		local RLA = pc:FindFirstChild'RightLowerArm'
		local RH = pc:FindFirstChild'RightHand'
		
		local LUL = pc:FindFirstChild'LeftUpperLeg'
		local LLL = pc:FindFirstChild'LeftLowerLeg'
		local LF = pc:FindFirstChild'LeftFoot'
		
		local RUL = pc:FindFirstChild'RightUpperLeg'
		local RLL = pc:FindFirstChild'RightLowerLeg'
		local RF = pc:FindFirstChild'RightFoot'
		
		local UT = pc:FindFirstChild'UpperTorso'
		local LT = pc:FindFirstChild'LowerTorso'
		
	    if hum and LArm and RArm and LLeg and RLeg and head then
			hum.BreakJointsOnDeath = false
			if insta then
				if hum.RigType==Enum.HumanoidRigType.R6 then
					for _,v in pairs(torso:GetDescendants()) do
						if (v:IsA('Motor6D') or v:IsA('Motor') or v:IsA('Weld') or v:IsA("BallSocketConstraint")) and (not string.match(v.Name:lower(),'root')) then
							if not kill then
								table.insert(js2,1,{obj = v,par = v.Parent})
								v.Parent = nil
							elseif kill then
								v:Destroy()
							end
						end
					end
				   local vis = false
				   local vis2 = false
	    			if LArm and not LArm:FindFirstChild('Dismembered') then
					   local at1 = Instance.new("Attachment")
					   at1.Parent = torso
					   at1.Visible = vis
					   at1.Orientation = torso.Orientation + Vector3.new(0,180,0)
					   at1.Position = Vector3.new(-1,1,0)
					                   
					   local at1p2 = Instance.new("Attachment")
					   at1p2.Parent = LArm
				       at1p2.Visible = vis
			           at1p2.Orientation = LArm.Orientation + Vector3.new(0,180,0)
	   		           at1p2.Position = Vector3.new(.5,1,0)
				           
				       local bis = Instance.new("BallSocketConstraint")
					   bis.Parent = LArm
				       bis.Attachment0 = at1
				       bis.Attachment1 = at1p2
				       bis.LimitsEnabled = true
				       bis.UpperAngle = 15
				       bis.Visible = vis2
				       bis.TwistLimitsEnabled = true
				       bis.UpperAngle = -45
				       bis.TwistLowerAngle = -45
						table.insert(js,1,bis)
					end
			       	if RArm and not RArm:FindFirstChild('Dismembered') then    
			            local at2 = Instance.new("Attachment")
						at2.Parent = torso
			            at2.Visible = vis
			            at2.Orientation = torso.Orientation + Vector3.new(0,0,0)
			            at2.Position = Vector3.new(1,1,0)
			                   
			            local at2p2 = Instance.new("Attachment")
						at2p2.Parent = RArm
			            at2p2.Visible = vis
			            at2p2.Orientation = RArm.Orientation + Vector3.new(0,0,0)
			            at2p2.Position = Vector3.new(-.5,1,0)
			           
			            local bis2 = Instance.new("BallSocketConstraint")
						bis2.Parent = RArm
			            bis2.Attachment0 = at2
			            bis2.Attachment1 = at2p2
			            bis2.LimitsEnabled = true
			            bis2.UpperAngle = 15
			            bis2.Visible = vis2
			            bis2.TwistLimitsEnabled = true
			            bis2.UpperAngle = -45
			            bis2.TwistLowerAngle = -45
						table.insert(js,1,bis2)
					end
			         if RLeg and not RLeg:FindFirstChild('Dismembered') then
			            local at3 = Instance.new("Attachment")
						at3.Parent = torso
			            at3.Visible = vis
			            at3.Orientation = torso.Orientation + Vector3.new(90,0,-90)
			            at3.Position = Vector3.new(.5,-1,0)
			                   
			            local at3p2 = Instance.new("Attachment")
						at3p2.Parent = RLeg
			            at3p2.Visible = vis
			            at3p2.Orientation = RLeg.Orientation + Vector3.new(90,0,-90)
			            at3p2.Position = Vector3.new(0,1,0)
			           
			            local bis3 = Instance.new("BallSocketConstraint")
						bis3.Parent = RLeg
			            bis3.Attachment0 = at3
			            bis3.Attachment1 = at3p2
			            bis3.LimitsEnabled = true
			            bis3.UpperAngle = 180-15
			            bis3.Visible = vis2
						table.insert(js,1,bis3)
					end
			             
					if LLeg and not LLeg:FindFirstChild('Dismembered') then  
			            local at4 = Instance.new("Attachment")
						at4.Parent = torso
			            at4.Visible = vis
			            at4.Orientation = torso.Orientation + Vector3.new(90,0,-90)
			            at4.Position = Vector3.new(-.5,-1,0)
			                   
			            local at4p2 = Instance.new("Attachment")
						at4p2.Parent = LLeg
			            at4p2.Visible = vis
		                at4p2.Orientation = LLeg.Orientation + Vector3.new(90,0,-90)
		                at4p2.Position = Vector3.new(0,1,0)
		           
		                local bis4 = Instance.new("BallSocketConstraint")
						bis4.Parent = LLeg
		                bis4.Attachment0 = at4
		                bis4.Attachment1 = at4p2
		                bis4.LimitsEnabled = true
		                bis4.UpperAngle = 180-15
		                bis4.Visible = vis2
						table.insert(js,1,bis4)
					end
		           
					if head and not headless and not head:FindFirstChild('Dismembered') then   
			                local at5 = Instance.new("Attachment")
							at5.Parent = torso
			                at5.Visible = vis
			                at5.Orientation = torso.Orientation + Vector3.new(180,90,0)
			                at5.Position = Vector3.new(0,1,0)
		                  
			                local at5p2 = Instance.new("Attachment")
							at5p2.Parent = head
			                at5p2.Visible = vis
			                at5p2.Orientation = head.Orientation + Vector3.new(180,90,0)
			                at5p2.Position = Vector3.new(0,-.5,0)
		           
			                local bis5 = Instance.new("BallSocketConstraint")
							bis5.Parent = head
			                bis5.Attachment0 = at5p2
			                bis5.Attachment1 = at5
			                bis5.LimitsEnabled = true
			                bis5.UpperAngle = 75
			                bis5.Visible = vis2
			                bis5.TwistLimitsEnabled = true
			                bis5.UpperAngle = -45
							bis5.TwistLowerAngle = -45
							table.insert(js,1,bis5)
						else
							--head:BreakJoints()
						end
					end
			else
				hum.Died:Connect(function()
				if hum.RigType==Enum.HumanoidRigType.R6 then
					for _,v in pairs(torso:GetDescendants()) do
						if (v:IsA('Motor6D') or v:IsA('Motor') or v:IsA('Weld') or v:IsA("BallSocketConstraint")) and (not string.match(v.Name:lower(),'root')) then
							if not kill then
								table.insert(js2,1,{obj = v,par = v.Parent})
								v.Parent = nil
							elseif kill then
								v:Destroy()
							end
						end
					end
				   local vis = false
				   local vis2 = false
	    			if LArm and not LArm:FindFirstChild('Dismembered') then
					   local at1 = Instance.new("Attachment")
					   at1.Parent = torso
					   at1.Visible = vis
					   at1.Orientation = torso.Orientation + Vector3.new(0,180,0)
					   at1.Position = Vector3.new(-1,1,0)
					                   
					   local at1p2 = Instance.new("Attachment")
					   at1p2.Parent = LArm
				       at1p2.Visible = vis
			           at1p2.Orientation = LArm.Orientation + Vector3.new(0,180,0)
	   		           at1p2.Position = Vector3.new(.5,1,0)
				           
				       local bis = Instance.new("BallSocketConstraint")
					   bis.Parent = LArm
				       bis.Attachment0 = at1
				       bis.Attachment1 = at1p2
				       bis.LimitsEnabled = true
				       bis.UpperAngle = 15
				       bis.Visible = vis2
				       bis.TwistLimitsEnabled = true
				       bis.UpperAngle = -45
				       bis.TwistLowerAngle = -45
						table.insert(js,1,bis)
					end
			       	if RArm and not RArm:FindFirstChild('Dismembered') then    
			            local at2 = Instance.new("Attachment")
						at2.Parent = torso
			            at2.Visible = vis
			            at2.Orientation = torso.Orientation + Vector3.new(0,0,0)
			            at2.Position = Vector3.new(1,1,0)
			                   
			            local at2p2 = Instance.new("Attachment")
						at2p2.Parent = RArm
			            at2p2.Visible = vis
			            at2p2.Orientation = RArm.Orientation + Vector3.new(0,0,0)
			            at2p2.Position = Vector3.new(-.5,1,0)
			           
			            local bis2 = Instance.new("BallSocketConstraint")
						bis2.Parent = RArm
			            bis2.Attachment0 = at2
			            bis2.Attachment1 = at2p2
			            bis2.LimitsEnabled = true
			            bis2.UpperAngle = 15
			            bis2.Visible = vis2
			            bis2.TwistLimitsEnabled = true
			            bis2.UpperAngle = -45
			            bis2.TwistLowerAngle = -45
						table.insert(js,1,bis2)
					end
			         if RLeg and not RLeg:FindFirstChild('Dismembered') then
			            local at3 = Instance.new("Attachment")
						at3.Parent = torso
			            at3.Visible = vis
			            at3.Orientation = torso.Orientation + Vector3.new(90,0,-90)
			            at3.Position = Vector3.new(.5,-1,0)
			                   
			            local at3p2 = Instance.new("Attachment")
						at3p2.Parent = RLeg
			            at3p2.Visible = vis
			            at3p2.Orientation = RLeg.Orientation + Vector3.new(90,0,-90)
			            at3p2.Position = Vector3.new(0,1,0)
			           
			            local bis3 = Instance.new("BallSocketConstraint")
						bis3.Parent = RLeg
			            bis3.Attachment0 = at3
			            bis3.Attachment1 = at3p2
			            bis3.LimitsEnabled = true
			            bis3.UpperAngle = 180-15
			            bis3.Visible = vis2
						table.insert(js,1,bis3)
					end
			             
					if LLeg and not LLeg:FindFirstChild('Dismembered') then  
			            local at4 = Instance.new("Attachment")
						at4.Parent = torso
			            at4.Visible = vis
			            at4.Orientation = torso.Orientation + Vector3.new(90,0,-90)
			            at4.Position = Vector3.new(-.5,-1,0)
			                   
			            local at4p2 = Instance.new("Attachment")
						at4p2.Parent = LLeg
			            at4p2.Visible = vis
		                at4p2.Orientation = LLeg.Orientation + Vector3.new(90,0,-90)
		                at4p2.Position = Vector3.new(0,1,0)
		           
		                local bis4 = Instance.new("BallSocketConstraint")
						bis4.Parent = LLeg
		                bis4.Attachment0 = at4
		                bis4.Attachment1 = at4p2
		                bis4.LimitsEnabled = true
		                bis4.UpperAngle = 180-15
		                bis4.Visible = vis2
						table.insert(js,1,bis4)
					end
		           
					if head and not headless and not head:FindFirstChild('Dismembered') then   
			                local at5 = Instance.new("Attachment")
							at5.Parent = torso
			                at5.Visible = vis
			                at5.Orientation = torso.Orientation + Vector3.new(180,90,0)
			                at5.Position = Vector3.new(0,1,0)
		                  
			                local at5p2 = Instance.new("Attachment")
							at5p2.Parent = head
			                at5p2.Visible = vis
			                at5p2.Orientation = head.Orientation + Vector3.new(180,90,0)
			                at5p2.Position = Vector3.new(0,-.5,0)
		           
			                local bis5 = Instance.new("BallSocketConstraint")
							bis5.Parent = head
			                bis5.Attachment0 = at5p2
			                bis5.Attachment1 = at5
			                bis5.LimitsEnabled = true
			                bis5.UpperAngle = 75
			                bis5.Visible = vis2
			                bis5.TwistLimitsEnabled = true
			                bis5.UpperAngle = -45
							bis5.TwistLowerAngle = -45
							table.insert(js,1,bis5)
						else
							--head:BreakJoints()
						end
					end
				end)
			end
		elseif head and hum then
			hum.BreakJointsOnDeath = false
			if insta then
				if hum.RigType==Enum.HumanoidRigType.R15 then
					for _,v in pairs(pc:GetDescendants()) do
						if (v:IsA('Motor6D') or v:IsA('Motor') or v:IsA("BallSocketConstraint")) and (not string.match(v.Name:lower(),'root')) then
							if not kill then
								table.insert(js2,1,{obj = v,par = v.Parent})
								v.Parent = nil
							elseif kill then
								v:Destroy()
							end
						end
					end
					local vis = false
					local vis2 = false
						
					if LF and not LF:FindFirstChild('Dismembered') then   
						local bsc1 = Instance.new("BallSocketConstraint",LF)
						bsc1.Attachment0 = LF.LeftAnkleRigAttachment
						bsc1.Attachment1 = LLL.LeftAnkleRigAttachment
						table.insert(js,1,bsc1)
					end
					if LLL and not LLL:FindFirstChild('Dismembered') then   
						local bsc2 = Instance.new("BallSocketConstraint",LLL)
						bsc2.Attachment0 = LLL.LeftKneeRigAttachment
						bsc2.Attachment1 = LUL.LeftKneeRigAttachment
						table.insert(js,1,bsc2)
					end
					if LUL and not LUL:FindFirstChild('Dismembered') then   
						local bsc3 = Instance.new("BallSocketConstraint",LUL)
						bsc3.Attachment0 = LUL.LeftHipRigAttachment
						bsc3.Attachment1 = LT.LeftHipRigAttachment
						table.insert(js,1,bsc3)
					end
					if RF and not RF:FindFirstChild('Dismembered') then   
						local bsc4 = Instance.new("BallSocketConstraint",RF)
						bsc4.Attachment0 = RF.RightAnkleRigAttachment
						bsc4.Attachment1 = RLL.RightAnkleRigAttachment
						table.insert(js,1,bsc4)
					end
					if RLL and not RLL:FindFirstChild('Dismembered') then   
						local bsc5 = Instance.new("BallSocketConstraint",RLL)
						bsc5.Attachment0 = RLL.RightKneeRigAttachment
						bsc5.Attachment1 = RUL.RightKneeRigAttachment
						table.insert(js,1,bsc5)
					end
					if RUL and not RUL:FindFirstChild('Dismembered') then   
						local bsc6 = Instance.new("BallSocketConstraint",RUL)
						bsc6.Attachment0 = RUL.RightHipRigAttachment
						bsc6.Attachment1 = LT.RightHipRigAttachment
						table.insert(js,1,bsc6)
					end
					if LH and not LH:FindFirstChild('Dismembered') then   
						local bsc7 = Instance.new("BallSocketConstraint",LH)
						bsc7.Attachment0 = LH.LeftWristRigAttachment
						bsc7.Attachment1 = LLA.LeftWristRigAttachment
						table.insert(js,1,bsc7)
					end
					if LLA and not LLA:FindFirstChild('Dismembered') then   
						local bsc8 = Instance.new("BallSocketConstraint",LLA)
						bsc8.Attachment0 = LLA.LeftElbowRigAttachment
						bsc8.Attachment1 = LUA.LeftElbowRigAttachment
						table.insert(js,1,bsc8)
					end
					if LUA and not LUA:FindFirstChild('Dismembered') then   
						local bsc9 = Instance.new("BallSocketConstraint",LUA)
						bsc9.Attachment0 = LUA.LeftShoulderAttachment
						bsc9.Attachment1 = UT.LeftCollarAttachment
						table.insert(js,1,bsc9)
					end
					if RH and not RH:FindFirstChild('Dismembered') then   
						local bsc10 = Instance.new("BallSocketConstraint",RH)
						bsc10.Attachment0 = RH.RightWristRigAttachment
						bsc10.Attachment1 = RLA.RightWristRigAttachment
						table.insert(js,1,bsc10)
					end
					if RLA and not RLA:FindFirstChild('Dismembered') then   
						local bsc11 = Instance.new("BallSocketConstraint",RLA)
						bsc11.Attachment0 = RLA.RightElbowRigAttachment
						bsc11.Attachment1 = RUA.RightElbowRigAttachment
						table.insert(js,1,bsc11)
					end
					if RUA and not RUA:FindFirstChild('Dismembered') then   
						local bsc12 = Instance.new("BallSocketConstraint",RUA)
						bsc12.Attachment0 = RUA.RightShoulderAttachment
						bsc12.Attachment1 = UT.RightCollarAttachment
						table.insert(js,1,bsc12)
					end
					if LT and not LT:FindFirstChild('Dismembered') then   
						local bsc13 = Instance.new("BallSocketConstraint",LT)
						bsc13.Attachment0 = LT.WaistRigAttachment
						bsc13.Attachment1 = UT.WaistRigAttachment
						table.insert(js,1,bsc13)
					end
					if head and not headless and not head:FindFirstChild('Dismembered')  then
						local bsc14 = Instance.new("BallSocketConstraint",head)
						bsc14.Attachment0 = UT.NeckRigAttachment
						bsc14.Attachment1 = head.NeckRigAttachment
						bsc14.LimitsEnabled = true
						bsc14.UpperAngle = -75
						bsc14.TwistLimitsEnabled = true
		                bsc14.UpperAngle = -45
						bsc14.TwistLowerAngle = -45
						table.insert(js,1,bsc14)
					else
						--head:BreakJoints()
					end
				end
			else
				hum.Died:Connect(function()
					if hum.RigType==Enum.HumanoidRigType.R15 then
						for _,v in pairs(pc:GetDescendants()) do
							if (v:IsA('Motor6D') or v:IsA('Motor') or v:IsA("BallSocketConstraint")) and (not string.match(v.Name:lower(),'root')) then
								if not kill then
									table.insert(js2,1,{obj = v,par = v.Parent})
									v.Parent = nil
								elseif kill then
									v:Destroy()
								end
							end
						end
						local vis = false
						local vis2 = false
							
						if LF and not LF:FindFirstChild('Dismembered') then   
							local bsc1 = Instance.new("BallSocketConstraint",LF)
							bsc1.Attachment0 = LF.LeftAnkleRigAttachment
							bsc1.Attachment1 = LLL.LeftAnkleRigAttachment
							table.insert(js,1,bsc1)
						end
						if LLL and not LLL:FindFirstChild('Dismembered') then   
							local bsc2 = Instance.new("BallSocketConstraint",LLL)
							bsc2.Attachment0 = LLL.LeftKneeRigAttachment
							bsc2.Attachment1 = LUL.LeftKneeRigAttachment
							table.insert(js,1,bsc2)
						end
						if LUL and not LUL:FindFirstChild('Dismembered') then   
							local bsc3 = Instance.new("BallSocketConstraint",LUL)
							bsc3.Attachment0 = LUL.LeftHipRigAttachment
							bsc3.Attachment1 = LT.LeftHipRigAttachment
							table.insert(js,1,bsc3)
						end
						if RF and not RF:FindFirstChild('Dismembered') then   
							local bsc4 = Instance.new("BallSocketConstraint",RF)
							bsc4.Attachment0 = RF.RightAnkleRigAttachment
							bsc4.Attachment1 = RLL.RightAnkleRigAttachment
							table.insert(js,1,bsc4)
						end
						if RLL and not RLL:FindFirstChild('Dismembered') then   
							local bsc5 = Instance.new("BallSocketConstraint",RLL)
							bsc5.Attachment0 = RLL.RightKneeRigAttachment
							bsc5.Attachment1 = RUL.RightKneeRigAttachment
							table.insert(js,1,bsc5)
						end
						if RUL and not RUL:FindFirstChild('Dismembered') then   
							local bsc6 = Instance.new("BallSocketConstraint",RUL)
							bsc6.Attachment0 = RUL.RightHipRigAttachment
							bsc6.Attachment1 = LT.RightHipRigAttachment
							table.insert(js,1,bsc6)
						end
						if LH and not LH:FindFirstChild('Dismembered') then   
							local bsc7 = Instance.new("BallSocketConstraint",LH)
							bsc7.Attachment0 = LH.LeftWristRigAttachment
							bsc7.Attachment1 = LLA.LeftWristRigAttachment
							table.insert(js,1,bsc7)
						end
						if LLA and not LLA:FindFirstChild('Dismembered') then   
							local bsc8 = Instance.new("BallSocketConstraint",LLA)
							bsc8.Attachment0 = LLA.LeftElbowRigAttachment
							bsc8.Attachment1 = LUA.LeftElbowRigAttachment
							table.insert(js,1,bsc8)
						end
						if LUA and not LUA:FindFirstChild('Dismembered') then   
							local bsc9 = Instance.new("BallSocketConstraint",LUA)
							bsc9.Attachment0 = LUA.LeftShoulderAttachment
							bsc9.Attachment1 = UT.LeftCollarAttachment
							table.insert(js,1,bsc9)
						end
						if RH and not RH:FindFirstChild('Dismembered') then   
							local bsc10 = Instance.new("BallSocketConstraint",RH)
							bsc10.Attachment0 = RH.RightWristRigAttachment
							bsc10.Attachment1 = RLA.RightWristRigAttachment
							table.insert(js,1,bsc10)
						end
						if RLA and not RLA:FindFirstChild('Dismembered') then   
							local bsc11 = Instance.new("BallSocketConstraint",RLA)
							bsc11.Attachment0 = RLA.RightElbowRigAttachment
							bsc11.Attachment1 = RUA.RightElbowRigAttachment
							table.insert(js,1,bsc11)
						end
						if RUA and not RUA:FindFirstChild('Dismembered') then   
							local bsc12 = Instance.new("BallSocketConstraint",RUA)
							bsc12.Attachment0 = RUA.RightShoulderAttachment
							bsc12.Attachment1 = UT.RightCollarAttachment
							table.insert(js,1,bsc12)
						end
						if LT and not LT:FindFirstChild('Dismembered') then   
							local bsc13 = Instance.new("BallSocketConstraint",LT)
							bsc13.Attachment0 = LT.WaistRigAttachment
							bsc13.Attachment1 = UT.WaistRigAttachment
							table.insert(js,1,bsc13)
						end
						if head and not headless and not head:FindFirstChild('Dismembered')  then
							local bsc14 = Instance.new("BallSocketConstraint",head)
							bsc14.Attachment0 = UT.NeckRigAttachment
							bsc14.Attachment1 = head.NeckRigAttachment
							bsc14.LimitsEnabled = true
							bsc14.UpperAngle = -75
							bsc14.TwistLimitsEnabled = true
			                bsc14.UpperAngle = -45
							bsc14.TwistLowerAngle = -45
							table.insert(js,1,bsc14)
						else
							--head:BreakJoints()
						end
					end
				end)
			end
	    end
	end
	return js,js2
end

local blood_images = {931617584,1663434319,1391189545,4533673847,3236192667,2565888666,612591729,120362139,116830967,122022304,131339257,247766282,121678640,176677800,120361912,176678070,176678086,176677869} --305296807,256293532,148713503,176678030

local e_s = 1

function add_decal(f,t,obj,d,r)
	spawn(function()
	local texture = Instance.new("Texture")
	texture.Parent = obj
	texture.Face = f
	texture.Texture = 'rbxassetid://' .. t
	if not r then
		game:GetService("Debris"):AddItem(texture,d)
	end
	if f == 'Left' or f == 'Right' then
		texture.StudsPerTileV = obj.Size.Y + e_s
		if (obj.Size.X > obj.Size.Z) then
			texture.StudsPerTileV = obj.Size.Z + e_s
		elseif (obj.Size.Z > obj.Size.X) then
			texture.StudsPerTileU = obj.Size.X + e_s
		else
			texture.StudsPerTileU = obj.Size.X + e_s
		end
	elseif f == 'Front' or f == 'Back' then
		texture.StudsPerTileV = obj.Size.Y + e_s
		if (obj.Size.X > obj.Size.Z) then
			texture.StudsPerTileV = obj.Size.X + e_s
		elseif (obj.Size.Z > obj.Size.X) then
			texture.StudsPerTileU = obj.Size.Z + e_s
		else
			texture.StudsPerTileU = obj.Size.X + e_s
		end
	elseif f == 'Top' or f == 'Bottom' then
		texture.StudsPerTileV = obj.Size.X + e_s
		texture.StudsPerTileU = obj.Size.Z + e_s
	end
	end)
end

function add_blood(obj,t)
	local t1,t2,t3,t4,t5,t6 = blood_images[math.random(1,#blood_images)],blood_images[math.random(1,#blood_images)],blood_images[math.random(1,#blood_images)],blood_images[math.random(1,#blood_images)],blood_images[math.random(1,#blood_images)],blood_images[math.random(1,#blood_images)]
	add_decal('Top',t1,obj,5,t)
	add_decal('Bottom',t2,obj,5,t)
	add_decal('Left',t3,obj,5,t)
	add_decal('Right',t4,obj,5,t)
	add_decal('Front',t5,obj,5,t)
	add_decal('Back',t6,obj,5,t)
end

function add_blood2(obj)
	--[[
	local blood_particle = Instance.new("ParticleEmitter")
	blood_particle.Parent = obj
	blood_particle.Speed = NumberRange.new(5, 14)
	blood_particle.Color = ColorSequence.new(Color3.new(0.45098, 0, 0),Color3.new(0.45098, 0, 0))
	blood_particle.LightEmission = 0.20000000298023
	blood_particle.LightInfluence = 1
	blood_particle.Texture = "http://www.roblox.com/asset/?id=134531274"
	blood_particle.Transparency = NumberSequence.new(0.30000001192093,0.30000001192093)
	blood_particle.ZOffset = 1
	blood_particle.Size = NumberSequence.new(0.12499988079071,0)
	blood_particle.Acceleration = Vector3.new(0, -20, 0)
	blood_particle.EmissionDirection = Enum.NormalId.Front
	blood_particle.Lifetime = NumberRange.new(0.5, 1.5)
	blood_particle.Rate = 100000
	blood_particle.SpreadAngle = Vector2.new(360, 360)
	blood_particle.VelocitySpread = 360
	blood_particle.Enabled = true
	spawn(function()
		wait(0.3)
		blood_particle.Enabled = false
		game:GetService("Debris"):AddItem(blood_particle,2)
	end)
	]]
	spawn(function()
		create_blood_att()
		if blood_att then
			blood_att.Parent = obj
		end
		local bcd = blood_cooldown
		blood_cooldown = 0.3
		if (0 >= bcd) then
			for i,v in pairs(blood_att:GetChildren()) do
				v.Enabled = true
			end
			repeat Swait(1) until (0 >= blood_cooldown)
			for i,v in pairs(blood_att:GetChildren()) do
				v.Enabled = false
			end
			if blood_att ~= nil then blood_att.Parent = torso; end;
		end
	end)
end
function touch_dmg(p,t,current_hit_id,mode,_kb)
	spawn(function()
	while attacking do
		Swait()
		spawn(function()
		local hitregion = Region3.new(p.Position-(p.Size/2),p.Position+(p.Size/2))
		local regionparts = workspace:FindPartsInRegion3WithIgnoreList(hitregion,{char,script})
		
		for _,obj in pairs(regionparts) do
			local knock = nil
			local targplr,targchar,targhum,targhead,targtorso,hitval,killval,knockval,blockval
			pcall(function()
				if obj.Parent:IsA("Accessory") or obj.Parent:IsA("Tool") then
					targchar = obj.Parent.Parent
				else
					targchar = obj.Parent
				end
			end)
			for i,v in pairs(game:GetService("Players"):GetPlayers()) do
				if v.Character and obj:IsDescendantOf(v.Character) then
					targchar = v.Character
				end
			end
			pcall(function()
				targplr = game:GetService("Players"):GetPlayerFromCharacter(targchar)
			end)
			pcall(function()
				targhum = targchar:FindFirstChildOfClass("Humanoid")
			end)
			pcall(function()
				hitval = targhum:FindFirstChild("Hit by " .. plr.Name .. current_hit_id)
			end)
			pcall(function()
				killval = targhum:FindFirstChild("killer")
			end)
			pcall(function()
				knockval = targhum:FindFirstChild("knocked")
			end)
			pcall(function()
				blockval = targhum:FindFirstChild("blocking")
			end)
			pcall(function()
				finishingval = targhum:FindFirstChild("finishing")
			end)
			pcall(function()
				targhead = targchar:FindFirstChild("Head")
			end)
			pcall(function()
				targtorso = targchar:FindFirstChild("Torso") or targchar:FindFirstChild("UpperTorso") or targchar:FindFirstChild("HumanoidRootPart")
			end)
			--if (targplr and targplr.TeamColor == plr.TeamColor and not targplr.Neutral and not plr.Neutral) then return end
			if targchar and targhum and targhead and targtorso --[[and targhum.Health > 0]] and not obj:FindFirstChild("Dismembered") and attacking --[[and (current_hit_id == hit_id)]] and not hitval --[[and not killval]] and (not finishingval) and ((mode ~= 2) or not targplr or (mode == 4) or ((mode == 2) and (targhum.PlatformStand or targhum.Sit or 0 >= targhum.Health))) then
				local temphitval = Instance.new("ObjectValue")
				temphitval.Name = ("Hit by " .. plr.Name .. current_hit_id)
				temphitval.Parent = targhum
				if mode == 4 then
					game:GetService("Debris"):AddItem(temphitval,t)
				end
				local ch = targhum.Health
				local tempdamage = dmg
				if tempdamage >= targhum.Health and targhum.Health > 1 and targplr then
					tempdamage = targhum.Health - 1
					targhum:TakeDamage(tempdamage)
				elseif ((targhum.Health > dmg) or not targplr) then
					targhum:TakeDamage(tempdamage)
				end
				if not knockval and not killval and not blockval then
					if p == Blade then
						stun_duration = 0.4
					elseif mode == 3 then
						stun_duration = 0.5
					else
						stun_duration = 0.6
					end
					local tempstunval = Instance.new("ObjectValue")
					tempstunval.Name = 'Stunned'
					tempstunval.Parent = targhum
					game:GetService("Debris"):AddItem(tempstunval,stun_duration)
					if mode == 3 then
						knock = Instance.new("ObjectValue")
						knock.Name = 'knocked'
						knock.Parent = targhum
						game:GetService("Debris"):AddItem(knock,t)
					end
				end
				if (ch > targhum.Health) or (0 >= targhum.Health) or (15 >= targhum.Health) or (mode == 4) then
					if obj.Name ~= 'HumanoidRootPart' then
						add_blood(obj)
						add_blood2(obj)
					end
					if p == Blade then
						local mrd = 0
						if (15 >= targhum.Health) then
							mrd = math.random(1,5)
						else
							mrd = math.random(1,15)
						end
						if mrd == 1 then
							bladedismember_s.SoundId = 'rbxassetid://' .. bladedismembers[math.random(1,#bladedismembers)]
							bladedismember_s:Play()
							if obj.Parent == targchar and obj.Name ~= 'Torso' and obj.Name ~= 'LowerTorso' and obj.Name ~= 'UpperTorso' and obj.Name ~= 'HumanoidRootPart' then
								break_limb(obj,hum.RigType,targtorso,targhum,rootpart.CFrame.lookVector)
							else
								local parts = {}
								for i,v in pairs(targchar:GetChildren()) do
									if (v:IsA("BasePart") or v:IsA("UnionOperation")) and not v:FindFirstChild("Dismembered") and v.Name ~= 'Torso' and v.Name ~= 'LowerTorso' and v.Name ~= 'UpperTorso' and v.Name ~= 'HumanoidRootPart' then
										table.insert(parts,1,v)
									end
								end
								if #parts > 0 then
									local _obj = parts[math.random(1,#parts)]
									break_limb(_obj,hum.RigType,targtorso,targhum,rootpart.CFrame.lookVector)
								end
							end
						else
							bladehit_s.SoundId = 'rbxassetid://' .. bladehits[math.random(1,#bladehits)]
							bladehit_s:Play()
						end
						--bleed2(targtorso,targhum,false,4,false)
						if not bloody then
							bloody = true
							add_blood(Blade,true)
						end
					else
						punch.SoundId = 'rbxassetid://' .. punches[math.random(1,#punches)]
						punch:Play()
					end
				elseif katana then
					bladeclash_s.PlaybackSpeed = math.random(95,105)/100
					bladeclash_s.SoundId = 'rbxassetid://' .. bladeclashes[math.random(1,#bladeclashes)]
					bladeclash_s:Play()
				end
				if 0 >= targhum.Health then
					if not killval and not targhum:FindFirstChild("Ragdolled") then
						local ragval = Instance.new("ObjectValue")
						ragval.Name = 'Ragdolled'
						ragval.Parent = targhum
						local tempkillval = Instance.new("ObjectValue")
						tempkillval.Name = 'killer'
						tempkillval.Value = plr
						tempkillval.Parent = targhum
						targhum:TakeDamage(1/0)
						targhum.AutoRotate = false
						targhum.PlatformStand = true
						Ragdoll(targchar,false,true,true)
					end
					if mode == 2 then
						finish.SoundId = 'rbxassetid://' .. finishes[math.random(1,#finishes)]
						finish:Play()
					end
				end
				if targchar and targhum and targhum ~= hum and hum and not killval then
					spawn(function()
						if (15 >= targhum.Health or (knock and knock.Parent)) --[[and targhum.Health > 0]] and not targhum:FindFirstChild("Ragdolled") then
							local ragval = Instance.new("ObjectValue")
							ragval.Name = 'Ragdolled'
							ragval.Parent = targhum
							local sa,pe = create_stars(targhead)
							targhum:SetStateEnabled(Enum.HumanoidStateType.FallingDown,false)
							targhum:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,false)
							spawn(function()
								local kb = _kb or 15
								local b = Instance.new("BodyVelocity")
								b.Parent = targtorso
								b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
								b.Velocity = rootpart.CFrame.lookVector*kb + Vector3.new(0,2,0)
								game:GetService("Debris"):AddItem(b,0.15)
							end)
							local collision_limbs = {}
							for i,v in pairs(targchar:GetChildren()) do
								local limbs = limb_collide(v)
								if limbs then
									for i,limb in pairs(limbs) do
										table.insert(collision_limbs,1,limb)
									end
								end
							end
							local ar = targhum.AutoRotate
							targhum.AutoRotate = false
							targhum.PlatformStand = true
							local js,js2 = Ragdoll(targchar,false,true)
							--[[
							knocked_t[hum] = true
							table.insert(ragdolled,1,{knock = knock,hum = targhum})
							repeat wait(0.1) until not knocked_t[targhum]
							]]
							while (15 >= targhum.Health or (knock and knock.Parent)) and targhum.Health > 0 do
								targhum.AutoRotate = false
								targhum.PlatformStand = true
								wait(0.1)
							end
							for i,v in pairs(js) do v:Destroy(); end;
							for i,v in pairs(js2) do if not v.obj:FindFirstChild("Dismembered") then v.obj.Parent = v.par; end; end;
							for i,v in pairs(collision_limbs) do v:Destroy(); end;
								if targhum and 0 >= targhum.Health then
								targhum.AutoRotate = false
								targhum.PlatformStand = true
								Ragdoll(targchar,false,true,true)
								return;
							end;
							for i,v in pairs(targchar:GetChildren()) do
								if v:IsA("BasePart") or v:IsA("UnionOperation") then
									game:GetService("PhysicsService"):SetPartCollisionGroup(v,"Default")
								end
							end
							if pe then
								pe.Enabled = false
								game:GetService("Debris"):AddItem(pe,2)
							end
							if ar then
								targhum.AutoRotate = true
							end
							ragval:Destroy()
							targhum.Sit = false
							targhum.PlatformStand = false
							targtorso.Velocity = Vector3.new()
						end
					end)
				end
			end
		end
		end)
	end
	end)
end

function left_slice(speed,current_hit_id)
	stamina = stamina - 9
	dmg = 14
	enabled[rs] = false
	--enabled[rj] = false
	blade_swing.PlaybackSpeed = math.random(95,105)/100
	blade_swing.SoundId = 'rbxassetid://' .. bladeswings[math.random(1,#bladeswings)]
	blade_swing:Play()
	local rr = math.random(15,45)
	touch_dmg(Blade,2,current_hit_id)
	for i = 1,3 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-20),math.rad(-rr),math.rad(-145))*CFrame.new(0,-0.3,0),speed)
		Swait(anim_wait)
	end
	k_trail.Enabled = true
	for i = 1,2 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-rr),math.rad(-45))*CFrame.new(0,0,0),speed)
		Swait(anim_wait)
	end
	for i = 1,3 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(rr),math.rad(25))*CFrame.new(0,0,0),speed)
		Swait(anim_wait)
	end
	enabled[rs] = true
	--enabled[rj] = true
	k_trail.Enabled = false
end

function right_slice(speed,current_hit_id)
	stamina = stamina - 9
	dmg = 14
	enabled[rs] = false
	--enabled[rj] = false
	blade_swing.PlaybackSpeed = math.random(95,105)/100
	blade_swing.SoundId = 'rbxassetid://' .. bladeswings[math.random(1,#bladeswings)]
	blade_swing:Play()
	local rr = math.random(15,45)
	touch_dmg(Blade,2,current_hit_id)
	for i = 1,3 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(20),math.rad(-rr),math.rad(-145))*CFrame.new(0,-0.3,0),speed)
		Swait(anim_wait)
	end
	k_trail.Enabled = true
	for i = 1,2 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(rr),math.rad(-45))*CFrame.new(0,0,0),speed)
		Swait(anim_wait)
	end
	for i = 1,3 do
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-rr),math.rad(25))*CFrame.new(0,0,0),speed)
		Swait(anim_wait)
	end
	enabled[rs] = true
	--enabled[rj] = true
	k_trail.Enabled = false
end

function left_punch(speed,current_hit_id)
	stamina = stamina - 7
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	dmg = 10
	touch_dmg(larm,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[neck] = false
	larm_trail.Enabled = true
	for i = 1,2 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(120))*CFrame.new(0,0.5,0),speed)
		
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-150))*CFrame.new(0,0.7,0),speed)
		
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(1)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = false
	enabled[rs] = false
	enabled[neck] = false
	for i = 1,3 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-60),math.rad(0),math.rad(110))*CFrame.new(0.7,0,0.8),speed)
		
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-130))*CFrame.new(-0.1,0.5,0),speed)
		
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(-1)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[neck] = true
	larm_trail.Enabled = false
end

function right_punch(speed,current_hit_id)
	stamina = stamina - 7
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	dmg = 10
	touch_dmg(rarm,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[neck] = false
	rarm_trail.Enabled = true
	for i = 1,2 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(150))*CFrame.new(0,0.7,0),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(-120))*CFrame.new(0,0.5,0),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(-1)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = false
	enabled[rs] = false
	enabled[neck] = false
	for i = 1,3 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(130))*CFrame.new(-0.1,0.5,0),speed)
		
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-60),math.rad(0),math.rad(-110))*CFrame.new(-0.7,0,0.8),speed)
		
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(1)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[neck] = true
	rarm_trail.Enabled = false
end

function air_punch(speed,current_hit_id)
	stamina = stamina - 10
	dmg = 15
	touch_dmg(larm,2,current_hit_id)
	touch_dmg(rarm,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[rh] = false
	enabled[lh] = false
	enabled[rj] = false
	rarm_trail.Enabled = true
	larm_trail.Enabled = true
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(140))*CFrame.new(0,0,0.5),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(-140))*CFrame.new(0,0,0.5),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(45)),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(10),math.rad(0),math.rad(0)),speed)
		Swait(anim_wait)
	end
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	enabled[neck] = false
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(75))*CFrame.new(0,0,0.5),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(-75))*CFrame.new(0,0,0.5),speed)
		
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(0)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(25)),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(0)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[rh] = true
	enabled[lh] = true
	enabled[rj] = true
	enabled[neck] = true
	rarm_trail.Enabled = false
	larm_trail.Enabled = false
end

function left_kick(speed,current_hit_id)
	stamina = stamina - 15
	dmg = 16
	touch_dmg(lleg,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rj] = false
	enabled[neck] = false
	lleg_trail.Enabled = true
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-15)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-5)),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(-5),math.rad(-45)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(15)),speed)
		Swait(anim_wait)
	end
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(15)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(5)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(5)),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(5),math.rad(75)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-10)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[rh] = true
	enabled[lh] = true
	enabled[rj] = true
	enabled[neck] = true
	lleg_trail.Enabled = false
end

function right_kick(speed,current_hit_id)
	stamina = stamina - 15
	dmg = 16
	touch_dmg(rleg,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	rleg_trail.Enabled = true
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(5)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(15)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(5)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(5),math.rad(45)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15)),speed)
		Swait(anim_wait)
	end
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,5 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-15)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(-5),math.rad(-75)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(10)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[rh] = true
	enabled[lh] = true
	enabled[rj] = true
	enabled[neck] = true
	rleg_trail.Enabled = false
end

function air_kick(speed)
	
end

function right_round_house(speed,current_hit_id)
	stamina = stamina - 20
	dmg = 25
	touch_dmg(rleg,2,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	rleg_trail.Enabled = true
	for i = 1,3 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(5)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(15)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(5)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(5),math.rad(45)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15)),speed)
		Swait(anim_wait)
	end
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,4 do

		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[rh] = true
	enabled[lh] = true
	enabled[rj] = true
	enabled[neck] = true
	rleg_trail.Enabled = true
end

function left_sweep(speed,current_hit_id)
	stamina = stamina - 20
	dmg = 12
	hum.WalkSpeed = 0
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	lleg_trail.Enabled = true
	local kb = 25
	local b = Instance.new("BodyVelocity")
	b.Parent = rootpart
	b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	b.Velocity = rootpart.CFrame.lookVector*kb
	game:GetService("Debris"):AddItem(b,0.15)
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(35),math.rad(0))*CFrame.new(0,-0.5,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-45))*CFrame.new(0.5,0,0.2),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(60))*CFrame.new(0,0,-0.5),speed)
		Swait(anim_wait)
	end
	touch_dmg(lleg,1,current_hit_id,3,25)
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-25)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-45)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(35),math.rad(-25))*CFrame.new(0,-1,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-45))*CFrame.new(0.1,0.1,-0.1),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(45*i))*CFrame.new(0,0,-1),speed)
		Swait(anim_wait)
	end
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-45)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(45),math.rad(-35)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(35),math.rad(-25))*CFrame.new(0,-1,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-45))*CFrame.new(0.1,0.1,-0.1),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(180+(45*i)))*CFrame.new(0,0,-1.2),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	lleg_trail.Enabled = false
end

function right_sweep(speed,current_hit_id)
	stamina = stamina - 20
	dmg = 12
	hum.WalkSpeed = 0
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	rleg_trail.Enabled = true
	local kb = 25
	local b = Instance.new("BodyVelocity")
	b.Parent = rootpart
	b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	b.Velocity = rootpart.CFrame.lookVector*kb
	game:GetService("Debris"):AddItem(b,0.15)
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-5)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(35),math.rad(0))*CFrame.new(0,-0.5,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-45))*CFrame.new(0.5,0,0.2),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(60))*CFrame.new(0,0,-0.5),speed)
		Swait(anim_wait)
	end
	touch_dmg(rleg,1,current_hit_id,3,25)
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(25)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(45)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(45))*CFrame.new(-0.1,0.1,-0.1),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(-35),math.rad(25))*CFrame.new(0,-1,0),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(-45*i))*CFrame.new(0,0,-1),speed)
		Swait(anim_wait)
	end
	for i = 1,4 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(45)),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(25)),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-35)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(45))*CFrame.new(-0.1,0.1,-0.1),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(-35),math.rad(25))*CFrame.new(0,-1,0),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-25),math.rad(0),math.rad(-180+(-45*i)))*CFrame.new(0,0,-1.2),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	rleg_trail.Enabled = false
end

function left_low_kick(speed,current_hit_id)
	stamina = stamina - 13
	dmg = 22
	hum.WalkSpeed = 8
	touch_dmg(lleg,1,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	lleg_trail.Enabled = true
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,6 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(80))*CFrame.new(0.5,0,0),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-150))*CFrame.new(0,0.5,0),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(25)),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(100))*CFrame.new(0.5,0,0),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(25),math.rad(0),math.rad(0)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	lleg_trail.Enabled = false
end

function right_low_kick(speed,current_hit_id)
	stamina = stamina - 13
	dmg = 22
	hum.WalkSpeed = 8
	touch_dmg(rleg,1,current_hit_id)
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	rleg_trail.Enabled = true
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	for i = 1,6 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(150))*CFrame.new(0,0.5,0),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-80))*CFrame.new(-0.5,0,0),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-100))*CFrame.new(-0.5,0,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25)),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(25),math.rad(0),math.rad(0)),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	rleg_trail.Enabled = false
end

function left_high_kick(speed,current_hit_id)
	stamina = stamina - 30
	dmg = 25
	hum.WalkSpeed = 0
	touch_dmg(lleg,1,current_hit_id,3,30)
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	lleg_trail.Enabled = true
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	local kb = 30
	local b = Instance.new("BodyVelocity")
	b.Parent = rootpart
	b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	b.Velocity = rootpart.CFrame.lookVector*kb
	game:GetService("Debris"):AddItem(b,0.15)
	for i = 1,6 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(150),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.5),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(75),math.rad(-10),math.rad(10))*CFrame.new(0,0,-0.2),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(45)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(60),math.rad(0),math.rad(0))*CFrame.new(-0.3,-1.3,0.7),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(90),math.rad(0),math.rad(0))*CFrame.new(0,-0.5,0),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-60),math.rad(-90))*CFrame.new(0,0,-1),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	lleg_trail.Enabled = false
end

function right_high_kick(speed,current_hit_id)
	stamina = stamina - 30
	dmg = 25
	hum.WalkSpeed = 0
	touch_dmg(rleg,1,current_hit_id,3,30)
	enabled[ls] = false
	enabled[rs] = false
	enabled[lh] = false
	enabled[rh] = false
	enabled[rj] = false
	enabled[neck] = false
	rleg_trail.Enabled = true
	swing_s.PlaybackSpeed = math.random(90,110)/100
	swing_s:Play()
	local kb = 30
	local b = Instance.new("BodyVelocity")
	b.Parent = rootpart
	b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	b.Velocity = rootpart.CFrame.lookVector*kb
	game:GetService("Debris"):AddItem(b,0.15)
	for i = 1,6 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(75),math.rad(10),math.rad(-10))*CFrame.new(0,0,-0.2),speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(150),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.6),speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-45)),speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(90),math.rad(0),math.rad(0))*CFrame.new(0,-0.5,0),speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(60),math.rad(0),math.rad(0))*CFrame.new(0.3,-1.3,0.7),speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(60),math.rad(90))*CFrame.new(0,0,-1),speed)
		Swait(anim_wait)
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[lh] = true
	enabled[rh] = true
	enabled[rj] = true
	enabled[neck] = true
	rleg_trail.Enabled = false
end

function time_stop(speed,current_hit_id)
	finishing = true
	
	local hitregion = Region3.new(rootpart.Position-(Vector3.new(3, 6, 3)/2),rootpart.Position+(Vector3.new(3, -6, 3)/2))
	local targchar,targtorso,targhead,targhum
	local regionparts = workspace:FindPartsInRegion3WithIgnoreList(hitregion,{char,script})
	
	for _,obj in pairs(regionparts) do
		if not obj:IsDescendantOf(char) then
			local tempchar,temptorso,temphead,temphum
			pcall(function()
				if not obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent
				elseif obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent.Parent
				end
			end)
			for i,v in pairs(game:GetService("Players"):GetPlayers()) do
				if v.Character and obj:IsDescendantOf(v.Character) then
					tempchar = v.Character
				end
			end
			pcall(function()
				temptorso = tempchar:FindFirstChild("Torso") or tempchar:FindFirstChild("UpperTorso") or tempchar:FindFirstChild("HumanoidRootPart")
			end)
			pcall(function()
				temphead = tempchar:FindFirstChild("Head")
			end)
			pcall(function()
				temphum = tempchar:FindFirstChildOfClass("Humanoid")
			end)
			if tempchar and temptorso and temphead and temphum and not temphum:FindFirstChild('killer') and temphum.Health > 0 and 15 > temphum.Health and (temphum.PlatformStand or temphum.Sit) then
				targchar = tempchar
				targtorso = temptorso
				targhead = temphead
				targhum = temphum
			end
		end
	end
	
	if targchar and targtorso and targhead and targhum and not targhum:FindFirstChild('killer') and targhum.Health > 0 and 15 > targhum.Health and (targhum.PlatformStand or targhum.Sit) then
		za_warudo:Play()
		
		local finishval = Instance.new("ObjectValue")
		finishval.Name = 'finishing'
		finishval.Parent = hum
		stamina = stamina - 50
		dmg = 10
		--hum.WalkSpeed = 0
		--targhum.Health = 1
		torso.Anchored = true
		targtorso.CFrame = (torso.CFrame*CFrame.new(0,0.5,-1.7))
		wait()
		targtorso.Anchored = true
		
		sheathe_weld.Parent = Handle
		sheathe_weld2.Parent = nil
		_sheathe_weld.Parent = Handle
		_sheathe_weld2.Parent = nil
		
		local Part0 = Instance.new("Part")
		local Decal1 = Instance.new("Decal")
		local Decal2 = Instance.new("Decal")
		local Decal3 = Instance.new("Decal")
		local Decal4 = Instance.new("Decal")
		local Decal5 = Instance.new("Decal")
		local Decal6 = Instance.new("Decal")
		local Part7 = Instance.new("Part")
		Part0.Parent = script
		Part0.CFrame = CFrame.new(42.4755936, 8.44500637, 103.907288, 1, 0, 0, 0, 1, 0, 0, 0, 1)
		Part0.Position = Vector3.new(42.4755936, 8.44500637, 103.907288)
		Part0.Color = Color3.new(1, 1, 0.8)
		Part0.Size = Vector3.new(1, 1, 1)
		Part0.Anchored = true
		Part0.BottomSurface = Enum.SurfaceType.Smooth
		Part0.BrickColor = BrickColor.new("Pastel yellow")
		Part0.CanCollide = false
		Part0.Locked = true
		Part0.CastShadow = false
		Part0.Material = Enum.Material.ForceField
		Part0.TopSurface = Enum.SurfaceType.Smooth
		Part0.brickColor = BrickColor.new("Pastel yellow")
		Part0.Shape = Enum.PartType.Ball
		Decal1.Parent = Part0
		Decal1.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal1.Transparency = 0.80000001192093
		Decal1.Face = Enum.NormalId.Top
		Decal2.Parent = Part0
		Decal2.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal2.Transparency = 0.80000001192093
		Decal2.Face = Enum.NormalId.Right
		Decal3.Parent = Part0
		Decal3.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal3.Transparency = 0.80000001192093
		Decal3.Face = Enum.NormalId.Bottom
		Decal4.Parent = Part0
		Decal4.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal4.Transparency = 0.80000001192093
		Decal4.Face = Enum.NormalId.Back
		Decal5.Parent = Part0
		Decal5.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal5.Transparency = 0.80000001192093
		Decal5.Face = Enum.NormalId.Left
		Decal6.Parent = Part0
		Decal6.Texture = "http://www.roblox.com/asset/?id=2031969"
		Decal6.Transparency = 0.80000001192093
		Part7.Parent = script
		Part7.CFrame = CFrame.new(42.4760017, 8.44499969, 103.906998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
		Part7.Position = Vector3.new(42.4760017, 8.44499969, 103.906998)
		Part7.Color = Color3.new(0.992157, 0.917647, 0.552941)
		Part7.Size = Vector3.new(2, 2, 2)
		Part7.Anchored = true
		Part7.BottomSurface = Enum.SurfaceType.Smooth
		Part7.BrickColor = BrickColor.new("Cool yellow")
		Part7.CanCollide = false
		Part7.Locked = true
		Part7.CastShadow = false
		Part7.Material = Enum.Material.ForceField
		Part7.TopSurface = Enum.SurfaceType.Smooth
		Part7.brickColor = BrickColor.new("Cool yellow")
		Part7.Shape = Enum.PartType.Ball
		Part0.Position = torso.Position
		Part0.Transparency = 1
		Part7.Position = torso.Position
		Part7.Transparency = 1
		local s = 50
		local s2 = (s + 1)
		game:GetService("TweenService"):Create(Part0,TweenInfo.new(1),{Size = Vector3.new(s,s,s),Transparency = 0}):Play()
		game:GetService("TweenService"):Create(Part7,TweenInfo.new(1),{Size = Vector3.new(s2,s2,s2),Transparency = 0}):Play()
		wait(0.9)
		--touch_dmg(larm,0.1,current_hit_id,4)
		--touch_dmg(rarm,0.1,current_hit_id,4)
		enabled[ls] = false
		enabled[rs] = false
		enabled[neck] = false
		enabled[rj] = false
		enabled[lh] = false
		enabled[rh] = false
		muda_s:Play()
		while muda_s.IsPlaying do --for i = 1,10 do
			rarm_trail.Enabled = false
			larm_trail.Enabled = true
			swing_s.PlaybackSpeed = math.random(90,110)/100
			swing_s:Play()
			punch.SoundId = 'rbxassetid://' .. punches[math.random(1,#punches)]
			punch:Play()
			local ch = targhum.Health
			local tempdamage = dmg
			if tempdamage >= targhum.Health and targhum.Health > 1 then
				tempdamage = targhum.Health - 1
				targhum:TakeDamage(tempdamage)
			elseif (targhum.Health > dmg) then
				targhum:TakeDamage(tempdamage)
			end
			--add_blood(targhead)
			--add_blood2(targhead)
			for i = 1,4 do
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed*2)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-60),math.rad(0),math.rad(110))*CFrame.new(0.7,0,0.8),speed*2)
				
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed*2)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-130))*CFrame.new(-0.1,0.5,0),speed*2)

				neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed*2)
				neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(-1)),speed*2)
				
				rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed*2)
				rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed*2)

				lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed*2)
				lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed*2)

				rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed*2)
				rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed*2)
				Swait(anim_wait)
			end
			rarm_trail.Enabled = true
			larm_trail.Enabled = false
			swing_s.PlaybackSpeed = math.random(90,110)/100
			swing_s:Play()
			punch.SoundId = 'rbxassetid://' .. punches[math.random(1,#punches)]
			punch:Play()
			local ch = targhum.Health
			local tempdamage = dmg
			if tempdamage >= targhum.Health and targhum.Health > 1 then
				tempdamage = targhum.Health - 1
				targhum:TakeDamage(tempdamage)
			elseif (targhum.Health > dmg) then
				targhum:TakeDamage(tempdamage)
			end
			--add_blood(targhead)
			--add_blood2(targhead)
			for i = 1,4 do
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed*2)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(130))*CFrame.new(-0.1,0.5,0),speed*2)
				
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed*2)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-60),math.rad(0),math.rad(-110))*CFrame.new(-0.7,0,0.8),speed*2)
				
				neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed*2)
				neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(1),math.rad(1)),speed*2)
				Swait(anim_wait)
			end
		end
		Swait()
		finish.PlaybackSpeed = math.random(95,105)/100
		finish.SoundId = 'rbxassetid://206082273'
		finish:Play()
		targtorso.Anchored = false
		targhum.PlatformStand = false
		targhum.Sit = false
		local kb = 30
		local b = Instance.new("BodyVelocity")
		b.Parent = targtorso
		b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		b.Velocity = rootpart.CFrame.lookVector*kb + Vector3.new(0,2,0)
		game:GetService("Debris"):AddItem(b,0.15)
		local tempkillval = Instance.new("ObjectValue")
		tempkillval.Name = 'killer'
		tempkillval.Value = plr
		tempkillval.Parent = targhum
		targhum:TakeDamage(1/0)
		--Ragdoll(targchar,false,true)
		add_blood2(targtorso)
		game:GetService("TweenService"):Create(Part0,TweenInfo.new(0.2),{Size = Vector3.new(),Transparency = 1}):Play()
		game:GetService("TweenService"):Create(Part7,TweenInfo.new(0.2),{Size = Vector3.new(),Transparency = 1}):Play()
		game:GetService("Debris"):AddItem(Part0,0.21)
		game:GetService("Debris"):AddItem(Part7,0.21)
		enabled[ls] = true
		enabled[rs] = true
		enabled[neck] = true
		enabled[rj] = true
		enabled[lh] = true
		enabled[rh] = true
		rarm_trail.Enabled = false
		larm_trail.Enabled = false
		torso.Anchored = false
		finishval:Destroy()
		if katana then
			sheathe_weld.Parent = nil
			sheathe_weld2.Parent = Handle
			_sheathe_weld.Parent = nil
			_sheathe_weld2.Parent = Handle
		end
	end
	finishing = false
end

function basic_finish(speed,current_hit_id)
	finishing = true
	
	local hitregion = Region3.new(rootpart.Position-(Vector3.new(3, 6, 3)/2),rootpart.Position+(Vector3.new(3, -6, 3)/2))
	local targchar,targtorso,targhum
	local regionparts = workspace:FindPartsInRegion3WithIgnoreList(hitregion,{char,script})
	
	for _,obj in pairs(regionparts) do
		--if not obj:IsDescendantOf(char) then
			local tempchar,temptorso,temphum
			pcall(function()
				if not obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent
				elseif obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent.Parent
				end
			end)
			for i,v in pairs(game:GetService("Players"):GetPlayers()) do
				if v.Character and obj:IsDescendantOf(v.Character) then
					tempchar = v.Character
				end
			end
			pcall(function()
				temptorso = tempchar:FindFirstChild("Torso") or tempchar:FindFirstChild("UpperTorso") or tempchar:FindFirstChild("HumanoidRootPart")
			end)
			pcall(function()
				temphum = tempchar:FindFirstChildOfClass("Humanoid")
			end)
			if tempchar and temptorso and temphum and not temphum:FindFirstChild('killer') and temphum.Health > 0 and 15 > temphum.Health and (temphum.PlatformStand or temphum.Sit) then
				targchar = tempchar
				targtorso = temptorso
				targhum = temphum
			end
		--end
	end
	if targchar and targtorso and targhum and not targhum:FindFirstChild('killer') and targhum.Health > 0 and 15 > targhum.Health and (targhum.PlatformStand or targhum.Sit) then
		local finishval = Instance.new("ObjectValue")
		finishval.Name = 'finishing'
		finishval.Parent = hum
		targtorso.Anchored = true
		--hum.WalkSpeed = 0
		local rpos = Vector3.new(targtorso.Position.X,torso.Position.Y,targtorso.Position.Z)
		torso.CFrame = CFrame.new(torso.Position,rpos)*CFrame.new(0,-0.5,0.1)
		wait()
		torso.Anchored = true
		if fists then
		finish.SoundId = 'rbxassetid://' .. finishes[math.random(1,#finishes)]
		enabled[neck] = false
		enabled[rh] = false
		enabled[lh] = false
		enabled[rj] = false
		rleg_trail.Enabled = true
		for i = 1,5 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.5,-0.9,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		swing_s.PlaybackSpeed = math.random(90,110)/100
		swing_s:Play()
		for i = 1,2 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(0.7,-0.1,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		finish:Play()
		punch.SoundId = 'rbxassetid://' .. punches[math.random(1,#punches)]
		punch:Play()
		local tempkillval = Instance.new("ObjectValue")
		tempkillval.Name = 'killer'
		tempkillval.Value = plr
		tempkillval.Parent = targhum
		targhum:TakeDamage(1/0)
		targtorso.Anchored = false
		--targhum.PlatformStand = false
		--Ragdoll(targchar,false,true)
		add_blood(targtorso)
		add_blood2(rleg)
		for i = 1,3 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.7,0.1,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		for i = 1,5 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.5,-0.9,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		elseif katana then
		finish.SoundId = 'rbxassetid://' .. bladehits[math.random(1,#bladehits)]
		enabled[rs] = false
		enabled[ls] = false
		enabled[neck] = false
		enabled[rh] = false
		enabled[lh] = false
		enabled[rj] = false
		k_trail.Enabled = true
		sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)*CFrame.Angles(math.rad(180),math.rad(0),math.rad(0))
		for i = 1,8 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(5))*CFrame.new(0,0,0),speed)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(190),math.rad(-180),math.rad(-15))*CFrame.new(-0.1,-0.3,0.2),speed)

			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)
	
			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))*CFrame.new(-0.5,-0.5,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-45))*CFrame.new(0,0,0),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.5),speed)
			Swait(anim_wait)
		end
		blade_swing.SoundId = 'rbxassetid://' .. bladeswings[math.random(1,#bladeswings)]
		blade_swing:Play()
		for i = 1,7 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-5))*CFrame.new(0,0,0),speed)
		
			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(140),math.rad(-180),math.rad(80))*CFrame.new(-0.1,-0.3,0.3),speed)
	 
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-20))*CFrame.new(-0.5,-0.5,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25))*CFrame.new(0,0,0),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.5),speed)
			Swait(anim_wait)
		end
		finish:Play()
		local tempkillval = Instance.new("ObjectValue")
		tempkillval.Name = 'killer'
		tempkillval.Value = plr
		tempkillval.Parent = targhum
		targhum:TakeDamage(1/0)
		targtorso.Anchored = false
		--targhum.PlatformStand = false
		--Ragdoll(targchar,false,true)
		add_blood(targtorso)
		add_blood2(Blade)
		if not bloody then
			bloody = true
			add_blood(Blade,true)
		end
		for i = 1,11 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-5))*CFrame.new(0,0,0),speed)
		
			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(140),math.rad(-180),math.rad(80))*CFrame.new(-0.1,-0.3,0.3),speed)
	 
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-20))*CFrame.new(-0.5,-0.5,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25))*CFrame.new(0,0,0),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.5),speed)
			Swait(anim_wait)
		end
		bladedismember_s.SoundId = 'rbxassetid://' .. bladedismembers[math.random(1,#bladedismembers)]
		bladedismember_s:Play()
		add_blood2(targtorso)
		for i = 1,13 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-5))*CFrame.new(0,0,0),speed)
		
			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(190),math.rad(-200),math.rad(-15))*CFrame.new(-0.1,-0.3,0.3),speed)
	 
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-20))*CFrame.new(-0.5,-0.5,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-25))*CFrame.new(0,0,0),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(0))*CFrame.new(0,0,-0.5),speed)
			Swait(anim_wait)
		end
		sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)
		end
		enabled[ls] = true
		enabled[rs] = true
		enabled[neck] = true
		enabled[rh] = true
		enabled[lh] = true
		enabled[rj] = true
		torso.Anchored = false
		rleg_trail.Enabled = false
		k_trail.Enabled = false
		finishval:Destroy()
	--[[
	elseif stamina >= 10 then
		stamina = stamina - 10
		dmg = 10
		hum.WalkSpeed = 0
		--enabled[ls] = false
		--enabled[rs] = false
		enabled[neck] = false
		enabled[rh] = false
		enabled[lh] = false
		enabled[rj] = false
		rleg_trail.Enabled = true
		for i = 1,5 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.5,-0.9,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		touch_dmg(rleg,2,current_hit_id,2)
		swing_s.PlaybackSpeed = math.random(90,110)/100
		swing_s:Play()
		for i = 1,5 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.7,0.1,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		for i = 1,5 do
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0)),speed)

			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(-0.5,-0.9,0),speed)

			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-5)),speed)

			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(0)),speed)
			Swait(anim_wait)
		end
		enabled[ls] = true
		enabled[rs] = true
		enabled[neck] = true
		enabled[rh] = true
		enabled[lh] = true
		enabled[rj] = true
		rleg_trail.Enabled = false
	]]
	end
	finishing = false
end

function carry(speed)
	local hitregion = Region3.new(rootpart.Position-(Vector3.new(5, 6, 5)/2),rootpart.Position+(Vector3.new(5, -6, 5)/2))
	local targchar,targtorso,targhum
	local regionparts = workspace:FindPartsInRegion3WithIgnoreList(hitregion,{char,script})
	
	for _,obj in pairs(regionparts) do
		--if not obj:IsDescendantOf(char) then
			local tempchar,temptorso,temphum
			pcall(function()
				if not obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent
				elseif obj.Parent:IsA("Accessory") then
					tempchar = obj.Parent.Parent
				end
			end)
			for i,v in pairs(game:GetService("Players"):GetPlayers()) do
				if v.Character and obj:IsDescendantOf(v.Character) then
					tempchar = v.Character
				end
			end
			pcall(function()
				temptorso = tempchar:FindFirstChild("Torso") or tempchar:FindFirstChild("UpperTorso") or tempchar:FindFirstChild("HumanoidRootPart")
			end)
			pcall(function()
				temphum = tempchar:FindFirstChildOfClass("Humanoid")
			end)
			if tempchar and temptorso and temphum and not temphum:FindFirstChild("Being Carried") and (15 > temphum.Health) and (temphum.PlatformStand or temphum.Sit or (0 >= temphum.Health) or temphum:FindFirstChild('knocked')) then
				targchar = tempchar
				targtorso = temptorso
				targhum = temphum
			end
		--end
	end
	
	if (targchar and targtorso and targhum and not targhum:FindFirstChild("Being Carried") and (15 > targhum.Health) and (targhum.PlatformStand or targhum.Sit or (0 >= targhum.Health) or targhum:FindFirstChild('knocked'))) then
		carrying = true
		enabled[ls] = false
		enabled[rs] = false
		enabled[neck] = false
		local cval = Instance.new("ObjectValue")
		cval.Name = 'Being Carried'
		cval.Parent = targhum
		local bp = Instance.new("BodyPosition")
		bp.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
		bp.P = 100000
		bp.Parent = targtorso
		while carrying and (targchar and targtorso and targhum and (15 > targhum.Health) and (targhum.PlatformStand or targhum.Sit or (0 >= targhum.Health) or targhum:FindFirstChild('knocked'))) do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(45))*CFrame.new(0.8,0,0.6),speed)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(-45))*CFrame.new(-0.8,0,0.6),speed)

			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(0)),speed)
			--targtorso.CFrame = torso.CFrame*CFrame.new(0,0,-4.5)
			bp.Position = (torso.CFrame*CFrame.new(0,0,-4.5)).p
			wait()
		end
		if bp then
			bp:Destroy()
		end
		if cval then
			cval:Destroy()
		end
		carrying = false
		enabled[ls] = true
		enabled[rs] = true
		enabled[neck] = true
		enabled[rh] = true
		enabled[lh] = true
		enabled[rj] = true
	end
end

function ghost(mode)
	local gid = ghost_id
	last_trans[gid] = {}
	local _last_trans = last_trans[gid]
	pcall(function()
	for i,v in pairs(char:GetDescendants()) do
		if (v.Name ~= 'HumanoidRootPart') then
			if mode then
				local c = nil
				if (v:IsA("BasePart") or v:IsA("UnionOperation")) then
					c = v:Clone()
					c.Transparency = 0.5
					c.Material = Enum.Material.SmoothPlastic
					c.Color = Color3.new(1,1,1)
					c.Anchored = true
					c.CanCollide = false
					c.Locked = true
					c.Massless = true
					for i,v in pairs(c:GetChildren()) do
						if not v:IsA("SpecialMesh") and not v:IsA("BlockMesh") and not v:IsA("CharacterMesh") then
							v:Destroy()
						end
					end
					c.Parent = script
				end
				pcall(function()
					_last_trans[v] = v.Transparency
					game:GetService("TweenService"):Create(v,TweenInfo.new(0.1),{Transparency = 1}):Play()
				end)
				if c then
					spawn(function()
						wait(0.2)
						game:GetService("TweenService"):Create(c,TweenInfo.new(1),{Transparency = 1}):Play()
						game:GetService("Debris"):AddItem(c,1.1)
					end)
				end
			elseif not mode then
				local lt = _last_trans[v]
				pcall(function()
					if lt then
						game:GetService("TweenService"):Create(v,TweenInfo.new(0.1),{Transparency = lt}):Play()
					else
						game:GetService("TweenService"):Create(v,TweenInfo.new(0.1),{Transparency = 0}):Play()
					end
				end)
			end
		end
	end
	end)
end

function dash(speed,key)
	attacking = true
	attacking2 = true
	enabled[ls] = false
	enabled[rs] = false
	enabled[neck] = false
	enabled[rh] = false
	enabled[lh] = false
	enabled[rj] = false
	stamina = stamina - 20
	local kb = 100
	local dir = Vector3.new()
	if key == 'w' then
		dir = rootpart.CFrame.lookVector
	elseif key == 'a' then
		dir = rootpart.CFrame.rightVector*-1
	elseif key == 's' then
		dir = rootpart.CFrame.lookVector*-1
	elseif key == 'd' then
		dir = rootpart.CFrame.rightVector
	end
	local bv = Instance.new("BodyVelocity")
	bv.Parent = rootpart
	bv.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
	bv.Velocity = dir*kb
	dash_s:Play()
	ghost_id = (ghost_id+1)
	--ghost(true)
	for i = 1,8 do
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(-15))*CFrame.new(0,0,0),speed)
		
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(15))*CFrame.new(0,0,0),speed)
		
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(0)),speed)
		
		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-1),math.rad(0),math.rad(45))*CFrame.new(-1,-0.5,0),speed)
		
		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-1),math.rad(0),math.rad(-35))*CFrame.new(0,-0.3,0),speed)
		
		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(-15),math.rad(0),math.rad(0))*CFrame.new(0,0,0),speed)
		Swait(anim_wait)
	end
	--ghost(false)
	if bv then
		bv:Destroy()
	end
	enabled[ls] = true
	enabled[rs] = true
	enabled[neck] = true
	enabled[rh] = true
	enabled[lh] = true
	enabled[rj] = true
	attacking2 = false
	attacking = false
end

function equip_katana(mode,speed)
	if not toggling_katana then else return end
	toggling_katana = true
	dance(false)
	enabled[rs] = false
	enabled[ls] = false
	_sheathe_weld.Parent = nil
	_sheathe_weld2.Parent = Handle
	sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)
	if mode then
		for i = 1,14 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-2),math.rad(0),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(-105),math.rad(-20))*CFrame.new(-0.5,-0.15,0.4),speed)
			Swait(anim_wait)
		end
		sheathe_weld.Parent = nil
		sheathe_weld2.Parent = Handle
		for i = 1,2 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(0)),speed/3)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed/3)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-35),math.rad(0),math.rad(0)),speed/3)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(-5))*CFrame.new(-0.1,0.1,-0.6),speed/3)
			Swait(anim_wait)
		end
		unsheathe:Play()
		sheathe:Stop()
		for i = 1,12 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(0)),speed/3)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed/3)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-35),math.rad(0),math.rad(0)),speed/3)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(-5))*CFrame.new(-0.1,0.1,-0.6),speed/3)
			Swait(anim_wait)
		end
	elseif not mode then
		for i = 1,14 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-45),math.rad(0),math.rad(0)),speed/3)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed/3)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-35),math.rad(0),math.rad(0)),speed/3)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(-5))*CFrame.new(-0.1,0.1,-0.6),speed/3)
			Swait(anim_wait)
		end
		sheathe_weld.Parent = Handle
		sheathe_weld2.Parent = nil
		for i = 1,2 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-2),math.rad(0),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(-105),math.rad(-20))*CFrame.new(-0.5,-0.15,0.4),speed)
			Swait(anim_wait)
		end
		sheathe:Play()
		unsheathe:Stop()
		for i = 1,12 do
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(70),math.rad(15))*CFrame.new(0,0.1,-0.2),speed)

			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-2),math.rad(0),math.rad(0)),speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(-105),math.rad(-20))*CFrame.new(-0.5,-0.15,0.4),speed)
			Swait(anim_wait)
		end
		for i,v in pairs(Blade:GetChildren()) do
			if v:IsA("Texture") then
				v:Destroy()
			end
		end
		bloody = false
		_sheathe_weld.Parent = Handle
		_sheathe_weld2.Parent = nil
	end
	enabled[rs] = true
	enabled[ls] = true
	toggling_katana = false
end

function dance(mode)
	if not toggling_dance then else return end
	toggling_dance = true
	if mode and not dancing then
		dancing = true
		blocking = false
		blocking2 = false
		enabled[ls] = false
		enabled[rs] = false
		enabled[neck] = false
		enabled[rh] = false
		enabled[lh] = false
		enabled[rj] = false
		reset_anims(false)
		local d = hum:LoadAnimation(dance_anim)	
		d.Priority = Enum.AnimationPriority.Action
		d:Play()
		mash:Play()
	elseif not mode and dancing then
		mash:Stop()
		reset_anims(true)
		enabled[ls] = true
		enabled[rs] = true
		enabled[neck] = true
		enabled[rh] = true
		enabled[lh] = true
		enabled[rj] = true
		dancing = false
	end
	toggling_dance = false
end

function alive()
	local alive = false
	if (plr and plr.Parent and char and char.Parent and hum and hum.Parent and hum.Health > 0 and torso and torso.Parent) then
		alive = true
	end
	return alive
end

function create_gui(p)
	local screen = Instance.new("ScreenGui")
	local ImageLabel1 = Instance.new("ImageLabel")
	local blockstat = Instance.new("TextLabel")
	local blockbar = Instance.new("ImageLabel")
	local ImageLabel4 = Instance.new("ImageLabel")
	local healthstat = Instance.new("TextLabel")
	local healthbar = Instance.new("ImageLabel")
	local ImageLabel7 = Instance.new("ImageLabel")
	local staminastat = Instance.new("TextLabel")
	local staminabar = Instance.new("ImageLabel")
	screen.Parent = p
	ImageLabel1.Name = "Block"
	ImageLabel1.Parent = screen
	ImageLabel1.Position = UDim2.new(0.317999989, 0, 0.940303028, 0)
	ImageLabel1.Size = UDim2.new(0.331917137, 0, 0.0316969417, 0)
	ImageLabel1.BackgroundColor = BrickColor.new("Institutional white")
	ImageLabel1.BackgroundColor3 = Color3.new(1, 1, 1)
	ImageLabel1.BackgroundTransparency = 1
	ImageLabel1.Image = "rbxassetid://3570695787"
	ImageLabel1.ImageColor3 = Color3.new(1, 0.647059, 0.619608)
	ImageLabel1.ScaleType = Enum.ScaleType.Slice
	ImageLabel1.SliceCenter = Rect.new(100, 100, 100, 100)
	blockstat.Name = "title"
	blockstat.Parent = ImageLabel1
	blockstat.Size = UDim2.new(1, 0, 1, 0)
	blockstat.BackgroundColor = BrickColor.new("Institutional white")
	blockstat.BackgroundColor3 = Color3.new(1, 1, 1)
	blockstat.BackgroundTransparency = 1
	blockstat.ZIndex = 3
	blockstat.Font = Enum.Font.GothamBlack
	blockstat.FontSize = Enum.FontSize.Size24
	blockstat.Text = "Block: NAN"
	blockstat.TextColor = BrickColor.new("Institutional white")
	blockstat.TextColor3 = Color3.new(1, 1, 1)
	blockstat.TextSize = 20
	blockstat.TextStrokeTransparency = 0
	blockstat.TextWrap = true
	blockstat.TextWrapped = true
	blockbar.Name = "bar"
	blockbar.Parent = ImageLabel1
	blockbar.Size = UDim2.new(1, 0, 1, 0)
	blockbar.BackgroundColor = BrickColor.new("Institutional white")
	blockbar.BackgroundColor3 = Color3.new(1, 1, 1)
	blockbar.BackgroundTransparency = 1
	blockbar.Image = "rbxassetid://3570695787"
	blockbar.ImageColor3 = Color3.new(1, 0.545098, 0.827451)
	blockbar.ScaleType = Enum.ScaleType.Slice
	blockbar.SliceCenter = Rect.new(100, 100, 100, 100)
	ImageLabel4.Name = "Health"
	ImageLabel4.Parent = screen
	ImageLabel4.Position = UDim2.new(0.317578763, 0, 0.859090745, 0)
	ImageLabel4.Size = UDim2.new(0.332338333, 0, 0.0316969417, 0)
	ImageLabel4.BackgroundColor = BrickColor.new("Institutional white")
	ImageLabel4.BackgroundColor3 = Color3.new(1, 1, 1)
	ImageLabel4.BackgroundTransparency = 1
	ImageLabel4.Image = "rbxassetid://3570695787"
	ImageLabel4.ImageColor3 = Color3.new(1, 0.25098, 0.262745)
	ImageLabel4.ScaleType = Enum.ScaleType.Slice
	ImageLabel4.SliceCenter = Rect.new(100, 100, 100, 100)
	healthstat.Name = "title"
	healthstat.Parent = ImageLabel4
	healthstat.Size = UDim2.new(1, 0, 1, 0)
	healthstat.BackgroundColor = BrickColor.new("Institutional white")
	healthstat.BackgroundColor3 = Color3.new(1, 1, 1)
	healthstat.BackgroundTransparency = 1
	healthstat.ZIndex = 3
	healthstat.Font = Enum.Font.GothamBlack
	healthstat.FontSize = Enum.FontSize.Size24
	healthstat.Text = "Health: NAN"
	healthstat.TextColor = BrickColor.new("Institutional white")
	healthstat.TextColor3 = Color3.new(1, 1, 1)
	healthstat.TextSize = 20
	healthstat.TextStrokeTransparency = 0
	healthstat.TextWrap = true
	healthstat.TextWrapped = true
	healthbar.Name = "bar"
	healthbar.Parent = ImageLabel4
	healthbar.Size = UDim2.new(1, 0, 1, 0)
	healthbar.BackgroundColor = BrickColor.new("Institutional white")
	healthbar.BackgroundColor3 = Color3.new(1, 1, 1)
	healthbar.BackgroundTransparency = 1
	healthbar.Image = "rbxassetid://3570695787"
	healthbar.ImageColor3 = Color3.new(0.286275, 1, 0.235294)
	healthbar.ScaleType = Enum.ScaleType.Slice
	healthbar.SliceCenter = Rect.new(100, 100, 100, 100)
	ImageLabel7.Name = "Stamina"
	ImageLabel7.Parent = screen
	ImageLabel7.Position = UDim2.new(0.317999989, 0, 0.899393916, 0)
	ImageLabel7.Size = UDim2.new(0.331917137, 0, 0.0316969417, 0)
	ImageLabel7.BackgroundColor = BrickColor.new("Institutional white")
	ImageLabel7.BackgroundColor3 = Color3.new(1, 1, 1)
	ImageLabel7.BackgroundTransparency = 1
	ImageLabel7.Image = "rbxassetid://3570695787"
	ImageLabel7.ImageColor3 = Color3.new(0.858824, 0.737255, 1)
	ImageLabel7.ScaleType = Enum.ScaleType.Slice
	ImageLabel7.SliceCenter = Rect.new(100, 100, 100, 100)
	staminastat.Name = "title"
	staminastat.Parent = ImageLabel7
	staminastat.Size = UDim2.new(1, 0, 1, 0)
	staminastat.BackgroundColor = BrickColor.new("Institutional white")
	staminastat.BackgroundColor3 = Color3.new(1, 1, 1)
	staminastat.BackgroundTransparency = 1
	staminastat.ZIndex = 3
	staminastat.Font = Enum.Font.GothamBlack
	staminastat.FontSize = Enum.FontSize.Size24
	staminastat.Text = "Stamina: NAN"
	staminastat.TextColor = BrickColor.new("Institutional white")
	staminastat.TextColor3 = Color3.new(1, 1, 1)
	staminastat.TextSize = 20
	staminastat.TextStrokeTransparency = 0
	staminastat.TextWrap = true
	staminastat.TextWrapped = true
	staminabar.Name = "bar"
	staminabar.Parent = ImageLabel7
	staminabar.Size = UDim2.new(1, 0, 1, 0)
	staminabar.BackgroundColor = BrickColor.new("Institutional white")
	staminabar.BackgroundColor3 = Color3.new(1, 1, 1)
	staminabar.BackgroundTransparency = 1
	staminabar.Image = "rbxassetid://3570695787"
	staminabar.ImageColor3 = Color3.new(1, 0.941177, 0.27451)
	staminabar.ScaleType = Enum.ScaleType.Slice
	staminabar.SliceCenter = Rect.new(100, 100, 100, 100)
	return screen,healthbar,healthstat,staminabar,staminastat,blockbar,blockstat
end

function raycast(Pos, Dir, Max, Ignore)
	return game:service("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(Pos, Dir.unit * (Max or 999.999)), Ignore) 
end 

function knocked()
	local r = false
	if hum.PlatformStand and (15 > hum.Health or hum:FindFirstChild("knocked")) then
		r = true
	end
	return r
end

function update()
	healthstat.Text = 'Health: ' .. tostring(math.floor(hum.Health)) .. "/" .. tostring(math.floor(hum.MaxHealth))
	game:GetService("TweenService"):Create(healthbar,TweenInfo.new(0.3),{Size = UDim2.new((hum.Health/hum.MaxHealth), 0, 1, 0)}):Play()
	--
	staminastat.Text = 'Stamina: ' .. tostring(math.floor(stamina)) .. "/" .. tostring(math.floor(staminamax))
	game:GetService("TweenService"):Create(staminabar,TweenInfo.new(0.3),{Size = UDim2.new((stamina/staminamax), 0, 1, 0)}):Play()
	--
	blockstat.Text = 'Block: ' .. tostring(math.floor(blockhealth)) .. "/" .. tostring(math.floor(blockhealthmax))
	game:GetService("TweenService"):Create(blockbar,TweenInfo.new(0.3),{Size = UDim2.new((blockhealth/blockhealthmax), 0, 1, 0)}):Play()
end

hum.ChildAdded:Connect(function(obj)
	if obj.Name == 'Stunned' then
		change_stun_type()
	end
end)

hum.HealthChanged:Connect(function(new_health)
	if --[[alive() and]] (last_health > new_health) and blocking2 and not knocked() and (blockhealth >= 25) and not hum:FindFirstChild("Fall Damage") then
		blockhealth = blockhealth - 25
		block_counter = 1
		hum.Health = last_health
		spawn(function()
			local kb = 20
			local b = Instance.new("BodyVelocity")
			b.Parent = torso
			b.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
			b.Velocity = rootpart.CFrame.lookVector*-1*kb + Vector3.new(0,1,0)
			game:GetService("Debris"):AddItem(b,0.1)
		end)
		--[[if katana then
			dodge_s.SoundId = 'rbxassetid://' .. bladeclash[math.random(1,#bladeclash)]
		else]]
			dodge_s.SoundId = 'rbxassetid://4458055429'
		--end
		if dodge_s then
			dodge_s:Play()
		end
		local bp = torso:FindFirstChild("block_p")
		if bp then bp = bp:FindFirstChild("block_p") end
		if not bp then
			local att = Instance.new("Attachment")
			att.Name = 'block_p'
			att.Parent = torso
			bp = Instance.new("ParticleEmitter")
			bp.Name = "block_p"
			bp.Parent = att
			bp.Speed = NumberRange.new(15, 15)
			bp.Color = ColorSequence.new(Color3.new(0.921569, 1, 0.192157),Color3.new(1, 0.972549, 0.666667))
			bp.LightEmission = 1
			bp.Texture = "http://www.roblox.com/asset/?id=271370648"
			bp.Transparency = NumberSequence.new({
				NumberSequenceKeypoint.new(0,1),
				NumberSequenceKeypoint.new(0.1,0.25),
				NumberSequenceKeypoint.new(0.2,0),
				NumberSequenceKeypoint.new(0.5,0),
				NumberSequenceKeypoint.new(0.75,0.35),
				NumberSequenceKeypoint.new(1,1),
			})
			bp.Size = NumberSequence.new({
				NumberSequenceKeypoint.new(0,0.3),
				NumberSequenceKeypoint.new(0.103,0.7),
				NumberSequenceKeypoint.new(1,0),
			})
			bp.Acceleration = Vector3.new(0, 0, 0)
			bp.Lifetime = NumberRange.new(0.35, 0.35)
			bp.Rate = 360
			bp.SpreadAngle = Vector2.new(360,360)
			bp.Speed = NumberRange.new(10,10)
			bp.Rotation = NumberRange.new(90,90)
		end
		spawn(function()
			bp.Enabled = true
			wait(0.1)
			bp.Enabled = false
		end)
	elseif (last_health > new_health) and ((blockhealth >= 25) or not blocking or not blocking2) then
		block_stun_cooldown = 0.1
	end
	last_health = hum.Health
end)

screen,healthbar,healthstat,staminabar,staminastat,blockbar,blockstat = create_gui(plr['PlayerGui'])

hum.Died:Connect(function()
	if screen then
		screen:Destroy()
	end
end)

spawn(function()
	while wait(0.1) do
		--[[
		for i,v in pairs(ragdolled) do
			local targhum = v.hum
			local knock = v.knock
			if (15 >= targhum.Health or (knock and knock.Parent)) and targhum.Health > 0 then
				targhum.PlatformStand = true
				knocked_t[targhum] = true
			else
				knocked_t[targhum] = false
			end
		end
		for i,v in pairs(bloodlol_t) do
			if v then
				if v.Transparency < 1 then
					v.Transparency = v.Transparency + 0.05
				else
					v:Destroy()
				end
			end
		end
		]]
		if blood_cooldown > 0 then
			blood_cooldown = blood_cooldown - 0.1
		elseif 0 > blood_cooldown then
			blood_cooldown = 0
		end
		if screen then
			update()
		end
		if block_stun_cooldown > 0 then
			block_stun_cooldown = block_stun_cooldown - 0.1
		elseif 0 > block_stun_cooldown then
			block_stun_cooldown = 0
		end
		if stamina_counter > 0 then
			stamina_counter = stamina_counter - 0.1
		elseif 0 > stamina_counter then
			stamina_counter = 0
		end
		if block_counter > 0 then
			block_counter = block_counter - 0.1
		elseif 0 > block_counter then
			block_counter = 0
		end
	end
end)

spawn(function()
	while wait(0.6) do
		if not finishing then
		if (0 >= stamina_counter) and (staminamax > stamina) then
			if 0 > stamina then
				stamina = 0
			end
			stamina = stamina + 9
			if (stamina > staminamax) then
				stamina = staminamax
			end
		end
		if (0 >= block_counter) and (blockhealthmax > blockhealth) then
			if (0 > blockhealth) then
				blockhealth = 0
			end
			blockhealth = blockhealth + 7
			if (blockhealth > blockhealthmax) then
				blockhealth = blockhealthmax
			end
		end
		end
	end
end)

local footsteps = {
	Fabric = {
		4085884845,
		4085885171
	},
	Concrete = {
		4085860640,
		4085860959
	},
	Grass = {
		4085928076,
		4085927377
	},
	Dirt = {
		4085928076,
		4085927377
	},
	Glass = {
		4085888884,
		4085889170
	},
	Metal = {
		4085894561,
		4085894913
	},
	Rubble = {
		4085865543,
		4085865926
	},
	Sand = {
		4085867669,
		4085868134
	},
	Snow = {
		4085886274,
		4085886651
	},
	Water = {
		4085887687,
		4085888023
	},
	Wood = {
		4085869219,
		4085869581
	},
	Stone = {
		3744398825,
		3744399210,
		3744399642,
		3744399949
	}
};
local referenceChart = {
	[Enum.Material.Plastic]="Fabric",
	[Enum.Material.Grass]="Grass",
	[Enum.Material.Pebble]="Rubble",
	[Enum.Material.Metal]="Metal",
	[Enum.Material.Ice]="Ice",
	[Enum.Material.Grass]="Grass",
	[Enum.Material.Concrete]="Concrete",
	[Enum.Material.Marble]="Concrete",
	[Enum.Material.Wood]="Wood",
	[Enum.Material.WoodPlanks]="Wood",
	[Enum.Material.Sand]="Sand",
	[Enum.Material.Glass]="Glass",
	[Enum.Material.ForceField]="Glass",
	[Enum.Material.Neon]="Glass",
	[Enum.Material.Fabric]="Fabric",
	[Enum.Material.DiamondPlate]="Metal",
	[Enum.Material.CorrodedMetal]="Metal",
	[Enum.Material.Slate]="Stone"
};
local step_s = Instance.new("Sound");
step_s.Parent = rootpart;
step_s.Volume = 0.9;
step_s.Name = "FootSteps";
local material = "Stone";
local walking = false;
local walkTick = tick();

local function play()
	if (walking and footsteps[material]) then
		step_s.SoundId = "rbxassetid://" .. footsteps[material][math.random(1, #footsteps[material])];
		step_s:Play();
	else
		step_s:Stop();
	end
end

hum.Changed:Connect(function(prop)
	if (prop == "MoveDirection") and equipped then
		if (hum.Sit == false and hum.PlatformStand == false and hum.MoveDirection.Magnitude > 0) then
			if (walking == false) then
				walking = true;
				walkTick = tick();
				local walkTickN = walkTick;
				while (walking and walkTick == walkTickN) do
					local ray = Ray.new(rootpart.Position, Vector3.new(0, -5, 0));
					local part = workspace:FindPartOnRay(ray, char);
					if (part) then
						(function()
							if (part.Material == Enum.Material.Grass and part.Color.g < .5) then
								material = "Dirt";
								return;
							end
							if (part.Material == Enum.Material.Sand and part.Color.r > .5 and part.Color.g > .5 and part.Color.b > .5) then
								material = "Snow";
								return;
							end
							material = referenceChart[part.Material] or "Air";
						end)()
					else
						material = "Air";
					end
					play();
					if anim == 'crouch' and crouching then
						wait(0.6)
					elseif anim == 'run' and not crouching then
						wait(0.2);
					else
						wait(0.4);
					end
				end
			end
		else
			walking = false;
		end
	end
	if (prop == "Sit") and equipped then
		if (hum.Sit) then
			walking = false;
		end
	end
end)

remote.OnServerEvent:Connect(function(lplr,mode,mode2)
	if alive() and equipped and (plr == lplr) then else return end
	if mode == 1 and (fists or katana) and not toggling_dance and not toggling_katana then
		blocking = mode2
		dance(false)
		if not knocked() and blocking and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
			blocking2 = true
			_blockingval.Parent = hum;
		else
			blocking2 = false
			_blockingval.Parent = nil;
		end;
	elseif mode == 2 and not toggling_dance then
		sprinting = mode2
	elseif mode == 3 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and (fists or katana) and not knocked() and not toggling_dance and not toggling_katana and not blocking2 then else return end
		if fists and (anim ~= 'run') and (stamina >= 7) then
			attacking = true
			dance(false)
			hit_id = hit_id + 1
			stamina_counter = 1
			if not jumping then
				if pa == 1 then
					left_punch(0.7,hit_id)
				elseif pa == 2 then
					right_punch(0.7,hit_id)
				end
			elseif jumping then
				if (stamina >= 10) then
					air_punch(0.7,hit_id)
				else
					if pa == 1 then
						left_punch(0.7,hit_id)
					elseif pa == 2 then
						right_punch(0.7,hit_id)
					end
				end
			end
			pa = pa + 1
			if pa > 2 then
				pa = 1
			end
		elseif katana and (stamina >= 9) then
			attacking = true
			dance(false)
			hit_id = hit_id + 1
			stamina_counter = 1
			if ksa == 1 then
				left_slice(0.7,hit_id)
			elseif ksa == 2 then
				right_slice(0.7,hit_id)
			end
			ksa = ksa + 1
			if ksa > 2 then
				ksa = 1
			end
		end
		attacking = false
	elseif mode == 4 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and fists and not knocked() and not crouching and not toggling_dance and not toggling_katana and not blocking2 and (anim ~= 'run') and (stamina >= 13) then else return end
		attacking = true
		dance(false)
		hit_id = hit_id + 1
		stamina_counter = 1
		if not jumping and stamina >= 15 then
			if ka == 1 then
				left_kick(0.7,hit_id)
			elseif ka == 2 then
				right_kick(0.7,hit_id)
			end
			ka = ka + 1
			if ka > 2 then
				ka = 1
			end
		elseif jumping then
			if (stamina >= 13) then
				if lka == 1 then
					left_low_kick(0.6,hit_id)
				elseif lka == 2 then
					right_low_kick(0.6,hit_id)
				end
				lka = lka + 1
				if lka > 2 then
					lka = 1
				end
			elseif stamina >= 15 then
				if ka == 1 then
					left_kick(0.7,hit_id)
				elseif ka == 2 then
					right_kick(0.7,hit_id)
				end
				ka = ka + 1
				if ka > 2 then
					ka = 1
				end
			end
		end
		attacking = false
	elseif mode == 5 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and (fists or katana) and not finishing and not knocked() and not crouching and not toggling_dance and not toggling_katana and not blocking2 and (anim ~= 'run') then else return end
		attacking = true
		attacking2 = true
		dance(false)
		hit_id = hit_id + 1
		stamina_counter = 1
		basic_finish(0.5,hit_id)
		attacking2 = false
		attacking = false
	elseif mode == 6 then
		if not toggling_dance then else return end
		crouching = mode2
		dance(false)
	elseif mode == 7 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and fists and not knocked() and not toggling_dance and not toggling_katana and not blocking2 and (anim ~= 'run') and (stamina >= 30) then else return end
		attacking = true
		attacking2 = true
		dance(false)
		if not jumping then
			hit_id = hit_id + 1
			stamina_counter = 1
			if hka == 1 then
				left_high_kick(0.6,hit_id)
			elseif hka == 2 then
				right_high_kick(0.6,hit_id)
			end
			hka = hka + 1
			if hka > 2 then
				hka = 1
			end
		end
		attacking2 = false
		attacking = false
	elseif mode == 8 then
		if not attacking and not carrying and not finishing and not knocked() and not toggling_dance and not toggling_katana then else return end
		blocking = false
		blocking2 = false
		fists = not fists
		if fists and katana then
			katana = false
			equip_katana(false,0.7)
		end
	elseif mode == 9 then
		last_mpos = mode2
	elseif mode == 10 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and fists and not knocked() and not toggling_dance and not toggling_katana and not blocking2 and (anim ~= 'run') and (stamina >= 20) then else return end
		attacking = true
		attacking2 = true
		dance(false)
		if not jumping then
			hit_id = hit_id + 1
			stamina_counter = 1
			if sa == 1 then
				left_sweep(0.5,hit_id)
			elseif sa == 2 then
				right_sweep(0.5,hit_id)
			end
			sa = sa + 1
			if sa > 2 then
				sa = 1
			end
		end
		attacking2 = false
		attacking = false
	elseif mode == 11 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and not attacking2 and not knocked() and not toggling_dance and not toggling_katana and (anim == 'idle' or anim == 'crouch') then else return end
		dance(true)
	elseif mode == 12 and not hum:FindFirstChild("Stunned") then
		if not attacking and not attacking2 and not knocked() and not toggling_dance and not toggling_katana then else return end
		if mode2 == true then
			carry(0.6)
		elseif mode2 == false then
			carrying = false
		end
	elseif mode == 13 and not hum:FindFirstChild("Stunned") then
		if not attacking and not carrying and not finishing and not knocked() and not toggling_dance and not toggling_katana then else return end
		blocking = false
		blocking2 = false
		katana = not katana
		if katana and fists then
			fists = false
		end
		equip_katana(katana,0.7)
	elseif mode == 14 then
		local fallval = Instance.new("ObjectValue")
		fallval.Name = 'Fall Damage'
		fallval.Parent = hum
		local tempdmg = ((hum.MaxHealth/100)*mode2)
		hum:TakeDamage(tempdmg)
		if not alive() and not hum:FindFirstChild("Ragdolled") then
			bone_crack.SoundId = 'rbxassetid://' .. bonecracks[math.random(1,#bonecracks)]
			bone_crack:Play()
			local tempkillval = Instance.new("ObjectValue")
			tempkillval.Name = 'killer'
			tempkillval.Value = nil -- plr
			tempkillval.Parent = hum
			hum:TakeDamage(1/0)
			local ragval = Instance.new("ObjectValue")
			ragval.Name = 'Ragdolled'
			ragval.Parent = hum
			hum.AutoRotate = false
			hum.PlatformStand = true
			Ragdoll(char,false,true,true)
		end
		game:GetService("Debris"):AddItem(fallval,0.1)
	    if mode2 < 14 then
			falldamage.SoundId = "rbxassetid://4057626616"
			falldamage:Play()
		elseif mode2 >= 14 then
			falldamage.SoundId = "rbxassetid://535681058"
			falldamage:Play()
			if not hum:FindFirstChild("knocked") then
				knock = Instance.new("ObjectValue")
				knock.Name = 'knocked'
				knock.Parent = hum
				game:GetService("Debris"):AddItem(knock,2)
			end
			if alive() then
				spawn(function()
					if (knock and knock.Parent) and hum.Health > 0 and not hum:FindFirstChild("Ragdolled") then
						local ragval = Instance.new("ObjectValue")
						ragval.Name = 'Ragdolled'
						ragval.Parent = hum
						local sa,pe = create_stars(head)
						hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown,false)
						hum:SetStateEnabled(Enum.HumanoidStateType.Ragdoll,false)
						local collision_limbs = {}
						for i,v in pairs(char:GetChildren()) do
							local limbs = limb_collide(v)
							if limbs then
								for i,limb in pairs(limbs) do
									table.insert(collision_limbs,1,limb)
								end
							end
						end
						local ar = hum.AutoRotate
						hum.AutoRotate = false
						hum.PlatformStand = true
						local js,js2 = Ragdoll(char,false,true)
						--[[
						knocked_t[hum] = true
						table.insert(ragdolled,1,{knock = knock,hum = hum})
						repeat wait(0.1) until not knocked_t[hum]
						]]
						while (15 >= hum.Health or (knock and knock.Parent)) and hum.Health > 0 do
							hum.PlatformStand = true
							wait(0.1)
						end
						
						for i,v in pairs(js) do v:Destroy(); end;
						for i,v in pairs(js2) do if not v.obj:FindFirstChild("Dismembered") then v.obj.Parent = v.par; end; end;
						for i,v in pairs(collision_limbs) do v:Destroy(); end;
						if hum and 0 >= hum.Health then
							hum.AutoRotate = false
							hum.PlatformStand = true
							Ragdoll(char,false,true,true)
							return;
						end;
						for i,v in pairs(char:GetChildren()) do
							if v:IsA("BasePart") or v:IsA("UnionOperation") then
								game:GetService("PhysicsService"):SetPartCollisionGroup(v,"Default")
							end
						end
						if pe then
							pe.Enabled = false
							game:GetService("Debris"):AddItem(pe,2)
						end
						if ar then
							hum.AutoRotate = true
						end
						ragval:Destroy()
						hum.Sit = false
						hum.PlatformStand = false
						torso.Velocity = Vector3.new()
					end
				end)
			end
		end
	elseif mode == 15 and not hum:FindFirstChild("Stunned") then
		if not attacking and not finishing and not carrying and not attacking2 and not knocked() and not toggling_dance and not toggling_katana and stamina >= 20 then else return end
		dance(false)
		hit_id = hit_id + 1
		stamina_counter = 1
		dash(0.7,mode2)
	elseif mode == 16 and not hum:FindFirstChild("Stunned") then
		if not attacking and not finishing and not attacking2 and not carrying and not knocked() and not toggling_dance and not toggling_katana and not blocking2 and (anim ~= 'run') and (stamina >= 50) then else return end
		attacking = true
		attacking2 = true
		dance(false)
		hit_id = hit_id + 1
		stamina_counter = 1
		time_stop(0.6,hit_id)
		attacking2 = false
		attacking = false
	end
end)
NLS([[
	local plr = game:GetService("Players").LocalPlayer
	local char = plr.Character
	local mouse = plr:GetMouse()
	local remote = script.Parent
	local started_dash_timer,can_dash = {},{}
	function dash_timer(key)
		spawn(function()
			if not started_dash_timer[key] then else return end
			started_dash_timer[key] = true
			wait(0.2)
			can_dash[key] = false
			started_dash_timer[key] = false
		end)
	end
	mouse.KeyDown:Connect(function(key)
		if key == 'f' then
			remote:FireServer(1,true)
		elseif key == '2' then
			remote:FireServer(2,true)
		elseif key == 'e' then
			remote:FireServer(4,true)
		elseif key == 'r' then
			remote:FireServer(5,true)
		elseif key == 'c' then
			remote:FireServer(6,true)
		elseif key == 'g' then
			remote:FireServer(7,true)
		elseif key == 'q' then
			remote:FireServer(8,true)
		elseif key == 'v' then
			remote:FireServer(10,true)
		elseif key == 'b' then
			remote:FireServer(11,true)
		elseif key == 't' then
			remote:FireServer(12,true)
		elseif key == 'y' then
			remote:FireServer(13,true)
		elseif (key == 'w') or (key == 'a') or (key == 's') or (key == 'd') then
			if can_dash[key] then
				can_dash[key] = false
				remote:FireServer(15,key)
			else
				can_dash[key] = true
				dash_timer(key)
			end
		elseif key == 'x' then
			remote:FireServer(16,true)
		end
	end)
	mouse.KeyUp:Connect(function(key)
		if key == 'f' then
			remote:FireServer(1,false)
		elseif key == '2' then
			remote:FireServer(2,false)
		elseif key == 'c' then
			remote:FireServer(6,false)
		elseif key == 't' then
			remote:FireServer(12,false)
		end
	end)
	mouse.Button1Down:Connect(function()
		remote:FireServer(3,true)
	end)
	mouse.Button1Down:Connect(function()
		remote:FireServer(3,false)
	end)
	function SetCharacterLocalTransparency(transparency)
	    for i,v in pairs(char:GetChildren()) do
	       if (v:IsA("BasePart") and v.Name ~= 'HumanoidRootPart' and v.Name ~= 'Torso' and v.Name ~= 'Head') then
			  v.LocalTransparencyModifier = transparency
	       end
	    end
	end
	hum = char:WaitForChild("Humanoid")
	fallremote = script.Parent
	pos = Vector3.new()
	isFalling = false
	hum.FreeFalling:Connect(function()
	    if not char:FindFirstChild("fallblock") then
	        local e = Instance.new("Part")
			e.Name = "fallblock"
	        e.Anchored = true
	        e.CanCollide = false
			e.Massless = true
	        e.Size = Vector3.new()
	        e.Transparency = 1
			e.Parent = char
	        e.Position = char.Torso.Position
	        pos = e.Position
	    elseif char:FindFirstChild("fallblock") then
	        pos = char.fallblock.Position
	    end
	end)
	hum.Climbing:Connect(function()
	    isFalling = false
	    pos = Vector3.new()
	end)
	hum.StateChanged:Connect(function(state)
	    if state == Enum.HumanoidStateType.Landed then
	        if char:FindFirstChild("fallblock") then
	            char.fallblock:Destroy()
	        end
	        local mag = math.abs(pos.Y - char.Torso.Position.Y)
	        pos = Vector3.new()
	        if mag >= 8 then
	            remote:FireServer(14,mag)
	        end
	    elseif state == Enum.HumanoidStateType.Climbing then
	        pos = Vector3.new()
	        isFalling = false
	    end
	end)
	game:GetService("RunService").RenderStepped:Connect(function()
		--remote:FireServer(9,mouse.Hit.p)
		SetCharacterLocalTransparency(0);
	end)
]],remote)

warn[[
== KrY's Combat Loaded ==

= Main Controls =
- R to Basic Finish
- X to Time Stop Finish
- T to Carry(Hold)
- B to Dance/Taunt
- C to Crouch
- Ctrl to Sprint
- Double tap W,A,S,D to dash

= Fist Controls =
- Click to Punch
- Q to Toggle Fists
- F to Block
- E to Kick
- V to Leg Sweep
- G to High Kick
= Alt Attack Variations =
- Punch(Click) while jumping
- Kick(E) while jumping

= Katana Controls =
- Click to Slice
- Y to Toggle katana
]]

game:GetService("RunService").Heartbeat:Connect(function()
	if alive() and equipped then else
		attacking = false;
		attacking2 = false;
		crouching = false;
		falling = false;
		sprinting = false;
		sprinting2 = false;
		blocking = false;
		blocking2 = false;
		carrying = false;
		_blockingval.Parent = nil;
		step_s:Stop()
		return;
	end;
	sine = sine+0.1
	local bodyvel = (rootpart.Velocity*Vector3.new(1,0,1)).magnitude
	local fallvel = rootpart.Velocity.y
	local hitfloor,posfloor=raycast(rootpart.Position,(CFrame.new(rootpart.Position,rootpart.Position - Vector3.new(0,1,0))).lookVector,4,{script,char})
	local rightvector = (rootpart.Velocity * rootpart.CFrame.rightVector).X + (rootpart.Velocity * rootpart.CFrame.rightVector).Z
	local lookvector = (rootpart.Velocity * rootpart.CFrame.lookVector).X + (rootpart.Velocity * rootpart.CFrame.lookVector).Z
	if not attacking2 and sprinting and not crouching and stamina >= 0.1 then
		sprinting2 = true
		hum.WalkSpeed = 24
	elseif not attacking2 and not crouching then
		sprinting2 = false
		hum.WalkSpeed = 16
	elseif not attacking2 and crouching then
		sprinting2 = false
		hum.WalkSpeed = 8
	end
	local speed_val = hum.WalkSpeed/10
	if 0.8 >= speed_val then
		speed_val = 0.8
	elseif speed_val > 2 then
		speed_val = 2
	end
	if not hitfloor then
		jumping = true
	else
		jumping = false
	end
	local k = knocked()
	local a = alive()
	if k or not a then
		carrying = false
	end
	if k or carrying or not blocking or attacking or attacking2 or (25 > blockhealth) or (block_stun_cooldown > 0) then
		blocking2 = false
		_blockingval.Parent = nil
	end
	if not hitfloor and ((fallvel > 1) or (fallvel < -1)) then
		falling = true
	else
		falling = false
	end
	if lookvector > hum.WalkSpeed then
		lookvector = hum.WalkSpeed
	end
	if lookvector < -hum.WalkSpeed then
		lookvector = -hum.WalkSpeed
	end
	if rightvector > hum.WalkSpeed then
		rightvector = hum.WalkSpeed
	end
	if rightvector < -hum.WalkSpeed then
		rightvector = -hum.WalkSpeed
	end
	local lookvel = lookvector / hum.WalkSpeed
	local rightvel = rightvector / hum.WalkSpeed
	local lookvel2 = lookvel
	if lookvel2 > 0 then
		lookvel2 = 1
	elseif lookvel2 < 0 then
		lookvel2 = -1
	end
	if hum:FindFirstChild("Stunned") then
		blocking2 = false
		_blockingval.Parent = nil
		if dancing then
			dance(false)
		end
		hum.WalkSpeed = 0
		--change_stun_type()
		local _anim_speed = anim_speed*1.5
		if stun_type == 1 then
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),_anim_speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(10),math.rad(0),math.rad(10)),_anim_speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),_anim_speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(-55)),_anim_speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),_anim_speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(5),math.rad(25)),_anim_speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),_anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(5)),_anim_speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),_anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15)),_anim_speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),_anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(0)),_anim_speed)
		elseif stun_type == 2 then
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),_anim_speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(5),math.rad(0),math.rad(55)),_anim_speed)

		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),_anim_speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(10),math.rad(0),math.rad(-10)),_anim_speed)

		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),_anim_speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(5),math.rad(-25)),_anim_speed)

		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),_anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(15)),_anim_speed)

		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),_anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(5)),_anim_speed)

		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),_anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.Angles(math.rad(15),math.rad(0),math.rad(0)),_anim_speed)
		end
		return
	end
	if not k and not dancing and not finishing then
		if fists and anim ~= 'run' then
			if not blocking2 then
				if enabled[ls] then
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.new(-0.2,-0.1,0.2)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(120)),anim_speed)
				end
				if enabled[rs] then
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.new(0.2,-0.1,0.2)*CFrame.Angles(math.rad(-20),math.rad(0),math.rad(-120)),anim_speed)
				end
			elseif blocking2 then
				if enabled[ls] then
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.new(-0.8,0.2,0.9)*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(170)),anim_speed)
				end
				if enabled[rs] then
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.new(0.8,0.2,0.9)*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(-170)),anim_speed)
				end
			end
		elseif katana then
			if not blocking2 then
				_sheathe_weld.Parent = nil
				_sheathe_weld2.Parent = Handle
				sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)
				if anim ~= 'run' then
					if enabled[ls] then
					ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
					ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(3),math.rad(0),math.rad(-5)),anim_speed)
					end
					if enabled[rs] then
					rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
					--rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-10),math.rad(0),math.rad(-45))*CFrame.new(-0.1,0,0.4),anim_speed)
					rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(10),math.rad(25),math.rad(-15))*CFrame.new(-0.1,0,0),anim_speed)
					end
				elseif anim == 'run' then
					if enabled[ls] then
					ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
					ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(7),math.rad(0),math.rad(-25)),anim_speed)
					end
					if enabled[rs] then
					rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
					--rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-5),math.rad(0),math.rad(-40))*CFrame.new(-0.1,0,0.1),anim_speed)
					rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(35),math.rad(25),math.rad(-15))*CFrame.new(-0.1,0.2,0),anim_speed)
					end
				end
			elseif blocking2 and anim ~= 'run' then
				_sheathe_weld.Parent = Handle
				_sheathe_weld2.Parent = nil
				sheathe_weld2.C1 = CFrame.new(0, 0, 0, -4.37113883e-08, -1, 0, 1, -4.37113883e-08, 0, 0, 0, 1)*CFrame.new(0,0.3,0)*CFrame.Angles(math.rad(90),math.rad(-88),math.rad(0))
				if enabled[ls] then
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-7),math.rad(15),math.rad(110))*CFrame.new(0,0,0),anim_speed)
				end
				if enabled[rs] then
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(1),math.rad(20),math.rad(-80))*CFrame.new(0.3,0.1,0),anim_speed)
				end
			end
		end
	end
	if (fallvel > 1) and falling and not k then
		if dancing then
			dance(false)
		end
		anim = 'jump'
		if blocking and not carrying and not attacking and not attacking2 and not k and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
			blocking2 = blocking
			_blockingval.Parent = hum
		end
		if enabled[rh] then
		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(15))*CFrame.new(-0.5,-0.7,0),anim_speed/2)
		end
		if enabled[lh] then
		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-15))*CFrame.new(0.5,-0.7,0),anim_speed/2)
		end
		if enabled[rj] then
		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,0)*CFrame.Angles(math.rad(lookvel*-4),math.rad(rightvel*-4),math.rad(0)),anim_speed)
		end
	elseif (fallvel < -1) and falling and not k then
		anim = 'fall'
		if blocking and not carrying and not k and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
			blocking2 = blocking
			_blockingval.Parent = hum
		end
		if enabled[rh] then
		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-10))*CFrame.new(-0.2,-0.4,0),anim_speed/2)
		end
		if enabled[lh] then
		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(10))*CFrame.new(0.2,-0.4,0),anim_speed/2)
		end
		if enabled[rj] then
		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,0)*CFrame.Angles(math.rad(lookvel*-3),math.rad(rightvel*-4),math.rad(0)),anim_speed)
		end
	end
	if bodyvel >= 1 and dancing then
		dance(false)
	end
	if crouching and not k then
		anim = 'crouch'
		if blocking and not carrying and not attacking and not attacking2 and not k and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
			blocking2 = blocking
			_blockingval.Parent = hum
		end
		if enabled[ls] and not fists and not katana then
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-1 * math.cos(sine*speed_val)),0,math.rad(-1 * math.cos(sine*speed_val))),anim_speed)
		end
		if enabled[rs] and not fists and not katana then
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(1 * math.cos(sine*speed_val)),0,math.rad(-1 * math.cos(sine*speed_val))),anim_speed)
		end
		if enabled[neck] then
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		end
		if enabled[rh] and not falling then
		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))*CFrame.new(-0.5,-1,0),anim_speed)
		end
		if enabled[lh] and not falling then
		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-75))*CFrame.new(0.5,0.2,0),anim_speed)
		end
		if enabled[rj] and not falling then
		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,-1),anim_speed)
		end
	end
	if 0 >= bodyvel and not crouching then
		anim = 'idle'	
		if blocking and not carrying and not attacking and not attacking2 and not k and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
			blocking2 = blocking	
			_blockingval.Parent = hum
		end
		if enabled[ls] and not fists and not katana then
		ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-1 * math.cos(sine*speed_val)),0,math.rad(-1 * math.cos(sine*speed_val))),anim_speed)
		end
		if enabled[rs] and not fists and not katana then
		rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(1 * math.cos(sine*speed_val)),0,math.rad(-1 * math.cos(sine*speed_val))),anim_speed)
		end
		if enabled[neck] then
		neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		end
		if enabled[rh] and not falling then
		rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
		rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.new(0,-0.01 * math.cos(sine*speed_val),0),anim_speed)
		end
		if enabled[lh] and not falling then
		lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
		lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.new(0,-0.01 * math.cos(sine*speed_val),0),anim_speed)
		end
		if enabled[rj] and not falling then
		rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
		rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,-0.01 * math.cos(sine*speed_val)),anim_speed)
		end
	elseif bodyvel >= 1 and not k then
		if sprinting2 and not crouching then
			anim = 'run'
			blocking2 = false
			_blockingval.Parent = nil
			stamina = stamina - 0.1
			stamina_counter = 1
			if enabled[ls] and not katana then
			ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
			ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(lookvel*-15 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*80 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*-0.1 + 0.2 * math.cos(sine*speed_val),0,0),anim_speed)
			end
			if enabled[rs] and not katana then
			rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
			rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(lookvel*15 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*80 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*0.1 - 0.2 * math.cos(sine*speed_val),0,0),anim_speed)
			end
			if enabled[neck] then
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
			end
			if enabled[rh] and not falling then
			rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
			rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(rightvel*-2 + 4 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2 * -75 * math.sin(sine*speed_val)))*CFrame.new(lookvel2 * -0.3 + 0.6 * math.cos(sine*speed_val),lookvel2 * 0.2 - 0.4 * math.sin(sine*speed_val),0),anim_speed)
			end
			if enabled[lh] and not falling then
			lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
			lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(rightvel*-2 - 4 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2 * -75 * math.sin(sine*speed_val)))*CFrame.new(lookvel2 * -0.3 + 0.6 * math.cos(sine*speed_val),lookvel2 * 0.2 + 0.4 * math.sin(sine*speed_val),0),anim_speed)
			end
			if enabled[rj] and not falling then
			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
			rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,-0.02+(0.02 * math.sin(sine*1.5*speed_val)))*CFrame.Angles(math.rad(lookvel*-15),math.rad(rightvel*-4),math.rad(0)),anim_speed)
			end
		else
			if not crouching then
				anim = 'walk'
			end
			if blocking and not carrying and not attacking and not attacking2 and not k and (blockhealth >= 25) and (0 >= block_stun_cooldown) then
				blocking2 = blocking
				_blockingval.Parent = hum
			end
			if enabled[ls] and not fists and not katana then
				if not crouching then
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(lookvel*-7.5 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*40 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*-0.05 + 0.1 * math.cos(sine*speed_val),0,0),anim_speed)
				else
				ls.C0 = clerp(ls.C0,CFrame.new(-1,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				ls.C1 = clerp(ls.C1,CFrame.new(.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-4 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel*20 * math.sin(sine*speed_val)))*CFrame.new(-0.025 * math.cos(sine*speed_val),0,0),anim_speed)
				end
			end
			if enabled[rs] and not fists and not katana then
				if not crouching then
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(lookvel*7.5 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*40 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*0.05 - 0.1 * math.cos(sine*speed_val),0,0),anim_speed)
				else
				rs.C0 = clerp(rs.C0,CFrame.new(1,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rs.C1 = clerp(rs.C1,CFrame.new(-.5,.5,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(4 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel*20 * math.sin(sine*speed_val)))*CFrame.new(0.025 * math.cos(sine*speed_val),0,0),anim_speed)
				end
			end
			if enabled[neck] and not crouching then
			neck.C0 = clerp(neck.C0,CFrame.new(0,1,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
			neck.C1 = clerp(neck.C1,CFrame.new(0,-.5,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
			end
			if enabled[rh] and not falling then
				if not crouching then
				rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(-1 + 2 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2 * -30 * math.sin(sine*speed_val)))*CFrame.new(lookvel2 * -0.1 + 0.2 * math.cos(sine*speed_val),lookvel2 * 0.1 - 0.2 * math.sin(sine*speed_val),0),anim_speed)
				else
				rh.C0 = clerp(rh.C0,CFrame.new(1,-1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0)),anim_speed)
				rh.C1 = clerp(rh.C1,CFrame.new(.5,1,0)*CFrame.Angles(math.rad(0),math.rad(90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))*CFrame.new(-0.5,-1,0)*CFrame.Angles(math.rad(rightvel*-0.5 + 1 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*-15 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*-0.025 + 0.05 * math.cos(sine*speed_val),lookvel2*0.025 - 0.05 * math.cos(sine*speed_val),0),anim_speed)
				end
			end
			if enabled[lh] and not falling then	
				if not crouching then
				lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(-1 - 2 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2 * -30 * math.sin(sine*speed_val)))*CFrame.new(lookvel2 * -0.1 + 0.2 * math.cos(sine*speed_val),lookvel2 * 0.1 + 0.2 * math.sin(sine*speed_val),0),anim_speed)
				else
				lh.C0 = clerp(lh.C0,CFrame.new(-1,-1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0)),anim_speed)
				lh.C1 = clerp(lh.C1,CFrame.new(-.5,1,0)*CFrame.Angles(math.rad(0),math.rad(-90),math.rad(0))*CFrame.Angles(math.rad(0),math.rad(0),math.rad(-75))*CFrame.new(0.5,0.2,0)*CFrame.Angles(math.rad(rightvel*-0.5 - 1 * math.sin(sine*speed_val)),math.rad(0),math.rad(lookvel2*-15 * math.sin(sine*speed_val)))*CFrame.new(lookvel2*0.025 + 0.05 * math.cos(sine*speed_val),lookvel2*-0.025 + 0.05 * math.cos(sine*speed_val),0),anim_speed)
				end
			end
			if enabled[rj] and not falling then
			rj.C0 = clerp(rj.C0,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0)),anim_speed)
				if not crouching then
				rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,-0.025+(0.025 * math.sin(sine*1.5*speed_val)))*CFrame.Angles(math.rad(lookvel*-5),math.rad(rightvel*-2),math.rad(0)),anim_speed)
				else
				rj.C1 = clerp(rj.C1,CFrame.new(0,0,0)*CFrame.Angles(math.rad(-90),math.rad(-180),math.rad(0))*CFrame.new(0,0,-1+(-0.025+(0.025 * math.sin(sine*speed_val))))*CFrame.Angles(math.rad(lookvel*-1),math.rad(rightvel*-0.4),math.rad(0)),anim_speed)
				end
			end
		end
	end
end)
INFO