if TurnCharacterToMouse==true then MseGuide=true HeadHorFactor=0 BodyHorFactor=0 end;(game:GetService("\082\117\110\083\101\114\118\105\099\101")).RenderStepped:Connect(function()local V=Cam.CoordinateFrame if(IsR6 and Body.Torso or Body.UpperTorso)~=nil and Body.Head~=nil then local n=Trso.CFrame.lookVector local v=Head.CFrame.p if IsR6 and Neck or Neck and Waist then if Cam.CameraSubject:IsDescendantOf(Body)or Cam.CameraSubject:IsDescendantOf(Plr)then local S=nil local i=nil if not MseGuide then S=(Head.CFrame.p-V.p).magnitude i=Head.CFrame.Y-V.Y if not IsR6 then Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(aSin(i/S)*HeadVertFactor,-((v-V.p).Unit:Cross(n)).Y*HeadHorFactor,0),UpdateSpeed/2)Waist.C0=Waist.C0:lerp(WaistOrgnC0*Ang(aSin(i/S)*BodyVertFactor,-((v-V.p).Unit:Cross(n)).Y*BodyHorFactor,0),UpdateSpeed/2)else Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(-(aSin(i/S)*HeadVertFactor),0,-((v-V.p).Unit:Cross(n)).Y*HeadHorFactor),UpdateSpeed/2)end else local V=Mouse.Hit.p S=(Head.CFrame.p-V).magnitude i=Head.CFrame.Y-V.Y if not IsR6 then Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(-(aTan(i/S)*HeadVertFactor),((v-V).Unit:Cross(n)).Y*HeadHorFactor,0),UpdateSpeed/2)Waist.C0=Waist.C0:lerp(WaistOrgnC0*Ang(-(aTan(i/S)*BodyVertFactor),((v-V).Unit:Cross(n)).Y*BodyHorFactor,0),UpdateSpeed/2)else Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(aTan(i/S)*HeadVertFactor,0,((v-V).Unit:Cross(n)).Y*HeadHorFactor),UpdateSpeed/2)end end end end end if TurnCharacterToMouse==true then Hum.AutoRotate=false Core.CFrame=Core.CFrame:lerp(CFrame.new(Core.Position,Vector3.new(Mouse.Hit.p.x,Core.Position.Y,Mouse.Hit.p.z)),UpdateSpeed/2)else Hum.AutoRotate=true end end)

if TurnCharacterToMouse == true then
	MseGuide = true
	HeadHorFactor = 0
	BodyHorFactor = 0
end

game:GetService("RunService").RenderStepped:Connect(function()
	local CamCF = Cam.CoordinateFrame
	if ((IsR6 and Body["Torso"]) or Body["UpperTorso"])~=nil and Body["Head"]~=nil then	--[Check for the Torso and Head...]
		local TrsoLV = Trso.CFrame.lookVector
		local HdPos = Head.CFrame.p
		if IsR6 and Neck or Neck and Waist then	--[Make sure the Neck still exists.]
			if Cam.CameraSubject:IsDescendantOf(Body) or Cam.CameraSubject:IsDescendantOf(Plr) then
				local Dist = nil;
				local Diff = nil;
				if not MseGuide then	--[If not tracking the Mouse then get the Camera.]
					Dist = (Head.CFrame.p-CamCF.p).magnitude
					Diff = Head.CFrame.Y-CamCF.Y
					if not IsR6 then	--[R6 and R15 Neck rotation C0s are different; R15: X axis inverted and Z is now the Y.]
						Neck.C0 = Neck.C0:lerp(NeckOrgnC0*Ang((aSin(Diff/Dist)*HeadVertFactor), -(((HdPos-CamCF.p).Unit):Cross(TrsoLV)).Y*HeadHorFactor, 0), UpdateSpeed/2)
						Waist.C0 = Waist.C0:lerp(WaistOrgnC0*Ang((aSin(Diff/Dist)*BodyVertFactor), -(((HdPos-CamCF.p).Unit):Cross(TrsoLV)).Y*BodyHorFactor, 0), UpdateSpeed/2)
					else	--[R15s actually have the properly oriented Neck CFrame.]
						Neck.C0 = Neck.C0:lerp(NeckOrgnC0*Ang(-(aSin(Diff/Dist)*HeadVertFactor), 0, -(((HdPos-CamCF.p).Unit):Cross(TrsoLV)).Y*HeadHorFactor),UpdateSpeed/2)
					end
				else
					local Point = Mouse.Hit.p
					Dist = (Head.CFrame.p-Point).magnitude
					Diff = Head.CFrame.Y-Point.Y
					if not IsR6 then
						Neck.C0 = Neck.C0:lerp(NeckOrgnC0*Ang(-(aTan(Diff/Dist)*HeadVertFactor), (((HdPos-Point).Unit):Cross(TrsoLV)).Y*HeadHorFactor, 0), UpdateSpeed/2)
						Waist.C0 = Waist.C0:lerp(WaistOrgnC0*Ang(-(aTan(Diff/Dist)*BodyVertFactor), (((HdPos-Point).Unit):Cross(TrsoLV)).Y*BodyHorFactor, 0), UpdateSpeed/2)
					else
						Neck.C0 = Neck.C0:lerp(NeckOrgnC0*Ang((aTan(Diff/Dist)*HeadVertFactor), 0, (((HdPos-Point).Unit):Cross(TrsoLV)).Y*HeadHorFactor), UpdateSpeed/2)
					end
				end
			end
		end
	end
	if TurnCharacterToMouse == true then
		Hum.AutoRotate = false
		Core.CFrame = Core.CFrame:lerp(CFrame.new(Core.Position, Vector3.new(Mouse.Hit.p.x, Core.Position.Y, Mouse.Hit.p.z)), UpdateSpeed / 2)
	else
		Hum.AutoRotate = true
	end
end)
