Here is a cut from my script:

	cam.CameraType = "Scriptable"
	local lns = obj:GetChildren()
	local bs = lns[1]:GetChildren()
	local midl = math.floor(#lns/2)
	local midb = math.floor(#bs/2)
	cam.CameraSubject = obj:FindFirstChild("l"..midl):FindFirstChild("b"..midb)
	local atcf = obj:GetModelCFrame() + Vector3.new(0, 475, 0)
	atcf = atcf*CFrame.Angles(math.rad(90), 0, math.rad(-90))
	cam.CFrame = atcf
	wait()
	cam.CameraType = "Watch"

object is a model in workspace, this model has 60 lines, which each have 75 bricks in them.

The camera subject is then made to the middle one.

Then the camera is set to look at the model from a given angle, and that works completely fine. If I didn't change the cameratype back it'd look fine, but I want the user to be able to move the camera about for a better view of the model.

I've tried a bunch of camera types and watch seems to work best, when I change it to watch nothing happens instantly, but as soon as the user moves their screen the camera will suddenly flick to the top right corner of the model (Which is 2d), and view the center from the top right corner instead of from the bottom center like it should.

Why does it do this? Every time?

I've tried changing the rotation of the camera subject brick, but it does nothing. I want the user to be able to move their camera about, but it seems none of the camera types are doing it for me...

Help!