How do I make a "Bodycam like footage" effect in Roblox?

Glass is known to be very limited, the sun reflection can’t be removed unfortunately.
You will have to pick another material to get around this.

I need to detect if the player’s screen is dark or bright.

Sadly, as far as I know it’s not possible to detect if the screen is dark or bright.


Awww man… Thats also sad. Again…

This would make a great feature request if it doesn’t exist already. though it probably does

It is possible to find if the screen is bright without access to the actual screen but it would require a lot of hacky checks, too many to make it worthwhile or even feasible. Something like this is something I feel should be available in a game engine…

Edit: What I mean by possible is that if you tune your game to be completely dark without lights it is possible to check if any lights are lighting up the place you are at, though almost no games can be made pitch black to make this approach work.

I just discovered there is a module that detects if the screen is bright or not.

1 Like

Here we go I figured it out!

local runService=game:GetService("RunService")
local camera = workspace.Camera
local FieldOfView = 170

	if FieldOfView>=120 then
		local dv=(1.7320508075688767*((camera.ViewportSize.Y/2)/math.tan(math.rad(FieldOfView/2))))/(camera.ViewportSize.Y/2)
		camera.CFrame *=,0,0,dv,0,0,0,dv,0,0,0,1)

Just put this in “StarterPlayerScripts” in a local script and you will be done.

1 Like

Oh my god! That’s really sick dude!

I’m currently still trying to do the light detection for the exposure.

Lemme also try this out really quick.

Everything else you should be able to do with either FOV viewports GUIs. I hope that helps and solves your questions!


You guys really helped out a lot! I thank you guys very much! Goodluck on your journeys! I’ll just reply if I get any further problems. Thanks again.


Increase FOV to higher than 120? - #7 by NowDoTheHarlemShake it can be done

  • XxXGlowXxX

You could simulate the chromatic aberration by taking the pixel colors of the camera output (like in Oops!) and just splitting them into 4 colors.
(red, green, blue and yellow)
Split the colors and assign them to four different replicas of the camera output and make them slightly offset them.
For example:
Shrink the green output by 1/5th of the original size and move it 1/3rd of the original size to the right.
Then shrink the blue output by 1/3rd of the original size and move it 1/4th of the original size to the left.
Then shrink the yellow output by 1/4th of the original size and move it 1/2th of the original size to the left.
Then shrink the red output by 1/6th of the original size and move it 1/6th of the original size to the right.
Then you can just overlay all the 4 replicas in the same place.
(make sure to disable the GUI for all the replicas)
Here is an example code:
local camera = game.Workspace.CurrentCamera – the camera you want to apply the effect on
local cameraOutput =“ImageLabel”, camera) – the camera output
cameraOutput.Size =, 0, 1, 0)
cameraOutput.BackgroundTransparency = 1
cameraOutput.Image = camera
– set the camera’s post processing effects to {}, so the camera output won’t show the post processing effects aswell
local postProcessingTable = {}
for i,v in pairs(camera:GetDescendants()) do
if v:IsA(“PostProcessEffect”) then
table.insert(postProcessingTable, v)
camera.PostProcessingEffects = {}
– you could also just set the camera’s post processing effects to {}, but this won’t work if you want to keep other post processing effects
– so we need to remove the post processing effect from the camera and add it back to the camera after we changed the camera output

– now we need to split the camera output’s

idk dude but this sounds like something coming out of the OpenAI thing.
there’s so many thing wrong in this such as using the Camera instance as the ImageId and not using the real instance class of post processing effect


I cant believe u replied after 2 years lol