What I want to replicate: https://youtu.be/bWK0T6Femug
I know basic scripting, and this looks as if it's just a gui and a pointlight. I can do the scripting for something like this probably, but I just want a confirmation that my guess is correct.
From the observation I gave with the provided Video, I will assure you it’s not a GUI, though to me it seems like the PointLight
is being projected relatively to the CurrentCamera
of the LocalPlayer
.
The best way I’d assume this was achieved was having a Part
imitate the current CoordinateFrame of the Camera, and having a PointLight
attached to the Part
.
To get the smoothest function to refresh the Part’s CoordinateFrame relative to the Camera’s, I’d use RenderService
’s RenderStepped
Signal, as it fires every Rendered Frame.
local Player = game:GetService("Players").LocalPlayer local Camera = workspace.CurrentCamera local Part = workspace.Part --// Preferably CanCollide is off and the Transparency is 0. Part.Parent = Camera local RenderService= game:GetService("RenderService") local Stepped = RenderService.RenderStepped:Connect(function() if not (Part) then Stepped:Disconnect() --// If for some reason the Part becomes nil, it’s best to not leave a pointless function running every frame. Part.CFrame = Camera.CFrame end)