How to know player's camera CFrame

When the camera type is custom it’s as simple as checking the CFrame and Focus properties and comparing them for various purposes. However, when I set the CameraType to scriptable and start moving it around using this code:

RunService:BindToRenderStep("CameraMovement", Enum.RenderPriority.Camera.Value, function()

The camera CFrame is obviously being updated by the script. However the player can still zoom their camera in and out and move it around, though they wouldn’t see the changes until after the camera is no longer being scripted. When the camera is being scripted, how do I access the real CFrame of the camera which is controlled by the player, not the scripted CFrame?

To scripters reading this, please at least tell me if you’re certain there’s no way. If there isn’t a simple way, explain how I may work around the problem!

You need to set the CameraType to Scriptable beforehand.

local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable

The camera type is already scriptable, what I need is a way to know where the camera lies while the camera is being scripted. For example, imagine if through a script I set camera type to scriptable then start tweening the camera to another room. If the player zooms in and out they won’t see the movements they’ve made since the camera is being controlled by a script. However, once the tween ends and the camera type is set to custom again, they’ll notice their camera is super zoomed out. This reveals that even when a player’s camera is being controlled by a script, the game still tracks and stores a “phantom” camera CFrame that is tied to player controls that is being changed but not seen. I need that CFrame