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()if shooting then if tool.Parent==plr.Character then if mouse.Hit and mouse.Target~=plr.Character then remote:FireServer(mouse.hit.p)end end end if tool.Parent==plr.Character then local P=Cam.CoordinateFrame if(IsR6 and Body.Torso or Body.UpperTorso)~=nil and Body.Head~=nil then local l=Trso.CFrame.lookVector local r=Head.CFrame.p if IsR6 and Neck or Neck and Waist then if Cam.CameraSubject:IsDescendantOf(Body)or Cam.CameraSubject:IsDescendantOf(Plr)then local O=nil local v=nil if not MseGuide then O=(Head.CFrame.p-P.p).magnitude v=Head.CFrame.Y-P.Y if not IsR6 then Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(aSin(v/O)*HeadVertFactor,-((r-P.p).Unit:Cross(l)).Y*HeadHorFactor,0),UpdateSpeed/2)Waist.C0=Waist.C0:lerp(WaistOrgnC0*Ang(aSin(v/O)*BodyVertFactor,-((r-P.p).Unit:Cross(l)).Y*BodyHorFactor,0),UpdateSpeed/2)else Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(-(aSin(v/O)*HeadVertFactor),0,-((r-P.p).Unit:Cross(l)).Y*HeadHorFactor),UpdateSpeed/2)end else local P=Mouse.Hit.p O=(Head.CFrame.p-P).magnitude v=Head.CFrame.Y-P.Y if not IsR6 then Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(-(aTan(v/O)*HeadVertFactor),((r-P).Unit:Cross(l)).Y*HeadHorFactor,0),UpdateSpeed/2)Waist.C0=Waist.C0:lerp(WaistOrgnC0*Ang(-(aTan(v/O)*BodyVertFactor),((r-P).Unit:Cross(l)).Y*BodyHorFactor,0),UpdateSpeed/2)else Neck.C0=Neck.C0:lerp(NeckOrgnC0*Ang(aTan(v/O)*HeadVertFactor,0,((r-P).Unit:Cross(l)).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 else Hum.AutoRotate=true end end)
-- Activation]:
if TurnCharacterToMouse == true then
	MseGuide = true
	HeadHorFactor = 0
	BodyHorFactor = 0
end

game:GetService("RunService").RenderStepped:Connect(function()
	if shooting then
		if tool.Parent == plr.Character then
			if mouse.Hit and mouse.Target ~= plr.Character then
				remote:FireServer(mouse.hit.p)
			end
		end
	end

	if tool.Parent == plr.Character then
		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
	else
		Hum.AutoRotate = true
	end
end)
