Top down esc camera

I’m wanting to create an ‘almost’ top down camera on my character. However I can’t get offsets and angles right.

My current problem is the camera is super far away, and not angled enough

I’m not after a fully top down camera, but slightly angled look. So not directly above the character, but like 10-15 degrees off


local Character = Player.Character
if not Character then return end

local PlayerPosition = Character.HumanoidRootPart.Position
local CameraOffset = PlayerPosition + Vector3.new(-15, 15, 0)
local AngleOffset =  CFrame.Angles(math.rad(30), 0, 0)

CurrentCamera.CFrame = CFrame.new(CameraOffset, PlayerPosition) * AngleOffset

Try using a CFrame instead for accurate positioning like so:

local CameraOffset = Characater.HumanoidRootPart.CFrame * CFrame.New(-15,15,0)

Then for setting the CurrentCamera;

CurrentCamera.CFrame = CurrentCamera.CFrame * CFrame.new(CameraOffset) * AngleOffset

I pseudo coded all of this so I don’t know if it will work.

local Player = game:GetService'Players'.LocalPlayer
local CurrentCamera = workspace.CurrentCamera

local Angle = CFrame.Angles(math.rad(25), 0, 0)
local Offset = CFrame.new(0, 0, 15)
game:GetService'RunService'.RenderStepped:Connect(function()
	local Character = Player.Character
	if not Character then return end
	
	CurrentCamera.CFrame = CFrame.new(Character.HumanoidRootPart.Position) * CFrame.Angles(math.rad(-90), 0, 0) * Angle * Offset
end)