Tween not working right from a localscript!

I want to make a camera tweening system and i created a little LocalScript with this inside:

local player = game.Players.LocalPlayer
script.Parent:GetPropertyChangedSignal("Occupant"):Connect(function() 
	if script.Parent.Occupant then
		local camera = game.Workspace.CurrentCamera
		workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
		local info = TweenInfo.new(.5,Enum.EasingStyle.Linear,Enum.EasingDirection.Out)
		tween = game.TweenService:Create(camera,info,{CFrame = script.Parent.Parent.Mesh.Part.CFrame})
		tween:Play()
		wait(.5)
		camera.CameraSubject = script.Parent.Parent.Mesh.Part
	else
		if tween then
			tween:Pause()
		end
		workspace.CurrentCamera.CameraType = Enum.CameraType.Fixed
		local camera = game.Workspace.CurrentCamera
		local info = TweenInfo.new(.5,Enum.EasingStyle.Linear,Enum.EasingDirection.Out)
		local newtween = game.TweenService:Create(camera,info,{CFrame = script.Parent.Parent.Mesh.Part.CFrame})
		newtween:Play()
		wait(.5)
		camera.CameraSubject = player.Character.Humanoid
	end
end)

i thought this was strange because it looks perfectly fine…
AND… there are no output errors.

You can only Script the camera if the CameraType is Scriptable, Fixed is similar but you cant script it

that doesnt seem to work either…