Player's field of view | Bird's eye perspective

So here is what I did:

Create A Part with a flashlight in it. Part must be anchored and uncollidable (and invisible)

SpotLight Settings:
Angle: 120
Brightness: 20
Range: 60
Shadows: Disabled

Lighting Changed Settings:
Ambient: 0, 0, 0
Brightness: 0
EnvironmentDiffuseScale: 0
EnvironmentSpecularScale: 0
OutdoorAmbient: 0,0,0
Technology: Future

and this is the script i used

local player = game:GetService("Players").LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local hRP = character:WaitForChild("HumanoidRootPart")
local camera = workspace.CurrentCamera
local fl = game.ReplicatedStorage:WaitForChild("fl")
local flashlight = fl:Clone()
flashlight.Parent = hRP
camera.CameraType = Enum.CameraType.Scriptable

local mouse = player:GetMouse()

game:GetService("RunService").RenderStepped:Connect(function()
	local characterpos = character:GetPivot().Position
	character:SetPrimaryPartCFrame(CFrame.new(hRP.CFrame.Position, Vector3.new(mouse.Hit.Position.X, hRP.CFrame.Position.Y, mouse.Hit.Position.Z)))
	local Distance = math.clamp((camera.CFrame.Position - characterpos).Magnitude, 20, 20)
	camera.CFrame = CFrame.lookAt(characterpos + Vector3.new(0, Distance, 0.5), characterpos)
	flashlight.CFrame = hRP.CFrame * CFrame.new(0, 0, 2)-- offset
end)

just replace camera script if you have to.

5 Likes