local f=game.Players.LocalPlayer local C=workspace:WaitForChild(f.Character.Name)local c=workspace.CurrentCamera local O=false local Z=C.Humanoid.WalkSpeed/2 local T=game:GetService("\082\117\110\083\101\114\118\105\099\101")local X=3.1415926 local D=1.5707963 C.Humanoid.Running:Connect(function(f)if f>.1 then O=true else O=false end end)while true do T.RenderStepped:wait()fps=(c.CoordinateFrame.p-C.Head.Position).Magnitude if O==true then D=D+C.Humanoid.WalkSpeed/115 end if D>=X*2 then D=0 end c.CoordinateFrame=(c.CoordinateFrame*CFrame.new(math.cos(D)/Z,math.sin(D*2)/(Z*2),0))*CFrame.Angles(0,0,math.sin(D-X*1.5)/(Z*20))end

local player = game.Players.LocalPlayer
local character = workspace:WaitForChild(player.Character.Name)
local camera = workspace.CurrentCamera
local running = false
local speed = character.Humanoid.WalkSpeed / 2
local RunService = game:GetService("RunService")
local Pi = 3.1415926
local Rot = 3.1415926 / 2

character.Humanoid.Running:Connect(function(WalkSpeed)
	if WalkSpeed > 0.1 then
		running = true
	else
		running = false
	end
end)

while true do
	RunService.RenderStepped:wait()
	fps = (camera.CoordinateFrame.p - character.Head.Position).Magnitude
	if running == true then
		Rot = Rot + character.Humanoid.WalkSpeed / 115
	end
	if Rot >= Pi * 2 then
		Rot = 0
	end
	camera.CoordinateFrame = camera.CoordinateFrame * CFrame.new(math.cos(Rot) / speed, math.sin(Rot * 2) / (speed * 2), 0) * CFrame.Angles(0, 0, math.sin(Rot - Pi * 1.5) / (speed * 20))
end
