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.