local O=Players.LocalPlayer local w=script.Parent local h=w:WaitForChild("\072\117\109\097\110\111\105\100")local M=w.HumanoidRootPart local j=w.Torso local i=M.RootJoint local B=j["\076\101\102\116 \072\105\112"]local C=j["\082\105\103\104\116 \072\105\112"]local function X(O,w,h)return O+(w-O)*h end local m=nil local e=nil local I=0 local r=0 local l=i.C0 local J=B.C0 local V=C.C0 RunService.RenderStepped:Connect(function()m=M.Velocity*Vector3.new(1,0,1)if m.Magnitude>2 then e=m.Unit I=M.CFrame.RightVector:Dot(e)r=M.CFrame.LookVector:Dot(e)else I=0 r=0 end i.C0=i.C0:Lerp(l*CFrame.Angles(math.rad(r*7),math.rad(-I*7),0),.2)B.C0=B.C0:Lerp(J*CFrame.Angles(math.rad(-I*7),0,0),.2)C.C0=C.C0:Lerp(V*CFrame.Angles(math.rad(I*7),0,0),.2)end)

	local Player = Players.LocalPlayer
local Character = script.Parent
local Humanoid = Character:WaitForChild"Humanoid"

local HumanoidRootPart = Character.HumanoidRootPart
local Torso = Character.Torso

local RootJoint = HumanoidRootPart.RootJoint
local LeftHipJoint = Torso["Left Hip"]
local RightHipJoint = Torso["Right Hip"]

local function Lerp(a, b, c)
	return a + (b - a) * c
end

local Force = nil
local Direction = nil
local Value1 = 0
local Value2 = 0

local RootJointC0 = RootJoint.C0
local LeftHipJointC0 = LeftHipJoint.C0
local RightHipJointC0 = RightHipJoint.C0

RunService.RenderStepped:Connect(function()
	Force = HumanoidRootPart.Velocity * Vector3.new(1,0,1)
	if Force.Magnitude > 2 then
		Direction = Force.Unit	
		Value1 = HumanoidRootPart.CFrame.RightVector:Dot(Direction)
		Value2 = HumanoidRootPart.CFrame.LookVector:Dot(Direction)
	else
		Value1 = 0
		Value2 = 0
	end

	RootJoint.C0 = RootJoint.C0:Lerp(RootJointC0 * CFrame.Angles(math.rad(Value2 * 7), math.rad(-Value1 * 7), 0), 0.2)
	LeftHipJoint.C0 = LeftHipJoint.C0:Lerp(LeftHipJointC0 * CFrame.Angles(math.rad(-Value1 * 7), 0, 0), 0.2)
	RightHipJoint.C0 = RightHipJoint.C0:Lerp(RightHipJointC0 * CFrame.Angles(math.rad(Value1 * 7), 0, 0), 0.2)
end)
