Local Script BTW

local PlayersService = game:GetService("Players")
	local LocalPlayer = PlayersService.LocalPlayer
	local Char = LocalPlayer.Character

	local TweenService = game:GetService("TweenService")
	local RunService = game:GetService("RunService")
	
	Char.Humanoid.WalkSpeed = 0
	local camera = workspace.Camera
	camera.CameraType = Enum.CameraType.Scriptable
	
	local SHIFT = math.rad(90)

	local root = Char.HumanoidRootPart

	
	local lookVec = camera.CFrame.lookVector
	local angle = -math.atan2(lookVec.Z, lookVec.X) + SHIFT
	
	root.CFrame = CFrame.new(root.Position) * CFrame.Angles(0, angle, 0)
	
	local tweenInfo3 = TweenInfo.new(
				1.5, -- Time
				Enum.EasingStyle.Linear, -- EasingStyle
				Enum.EasingDirection.Out, -- EasingDirection
				0, -- RepeatCount (when less than zero the tween will loop indefinitely)
				false, -- Reverses (tween will reverse once reaching it's goal)
				0 -- DelayTime
				)

	
	local goal2 = {
	CFrame = Char.HumanoidRootPart.CFrame
	}
	
	local anim2 = TweenService:Create(camera, tweenInfo3, goal2)
	anim2:Play()

Everything is working beside the fact the camera just goes inside of the HRP, I need it to have the camera stop on the player so it fits in the space I put. There's a part of the script that has the player face the camera as well.

https://gyazo.com/9b361e585a64f2cd6b5445363e076be6

I tried adding Vector3.new(x, x, x) and it worked only when I was in a certain spot in the map

please and thank you