I know if it is a bit late now, I assume OP @BlueBloxBlast has already found a solution but…
I think I have resolved the issue of certain aspect ratios/screen resolutions being limited by the FOV.
I discovered from the FOV post that the camera FOV does not start to change until the distort
value is below 1. Assuming that the Camera’s FieldOfView
angle is set to 70, If we set the distort value to 0.5 the resulting FOV angle would be around 105 (wild guess)
Now take these results with a grain of bricks, I too am not good at maths, Instead, I just created a flat test pattern and counted the black squares. The camera is set at a fixed position.
Test Pattern
(the coloured lines tell me the target aspect ratio. They must be outside the camera’s view otherwise the aspect ratio does not match with the key provided on the test pattern.)
Also the camera’s FieldOfView
mode must be set to Vertical
, other FOV modes produced very different results.
I will use this post to compare my implementation with the method of modifying the Camera’s FOV directly. I have set the Target aspect ratio to 4:3, a common aspect ratio for CRT and SXGA monitors
Changing the Camera's FOV directly

You notice we lost the top and bottom screen as the FOV reaches past 120.
Changing the FOV using CFrame

We now retain the top and bottom areas even at silly resolutions and/or aspect ratios
Now i am going to use the test pattern (to see what is really going on). Because I set the aspect ratio to 4:3 if I ever see the red lines or the amount of black squares visible changes then the final FOV for the target aspect ratio is incorrect.
Using the test pattern (Direct FOV)

You can see when I whack the window size to the smallest width the FOV has reached the limit and we end up losing screen space.

Using the test Pattern (CFrame method)

Now the visible space can be seen even with the most weirdest resolutions or aspect ratios.
Here is the script and GUI i made. Currently, it is UNUSABLE for cutscenes requiring you to change a CFrame value called TargetCameraCFrame
which the script will use to position the camera. Changing the camera CFrame directly while this script is running would cause a literal black hole. I wouldn’t reccommend this for deployed work either, its only a proof of concept.

(the script also contains explanations on how it basically works)
Aspect ratio GUI Demo.rbxm (6.4 KB)
Someday, If i ever need this script again, I’ll make a new thread with a more refined and final version of this. (with better documentation of course)