Multiple Viewport Frames at Once

I am having issues displaying multiple viewport frames at one time.

They both appear inside of PlayerGui, and they both are set to adornee the correct parts, but only one of them is ever displayed, and it is random which one it is. The non-working one just shows white.

My Code:

Code
local ViewportHandler = require(script.ViewportHandler)

local gui = script.Parent

local guis = {}
local cameras = {}
local handlers = {}

for _,v in pairs(workspace.TV_Displays:GetChildren()) do
	local surfacegui = Instance.new("SurfaceGui")
	surfacegui.Parent = game.Players.LocalPlayer.PlayerGui
	surfacegui.Adornee = v.Screen
	surfacegui.Face = Enum.NormalId.Front
	
	print("Made tv screen number: " .. _)
	
	local Frame = Instance.new("ViewportFrame")
	Frame.Parent = surfacegui
	Frame.Name = "ViewportFrame"
	Frame.Size = UDim2.new(1,0,1,0)
	
	table.insert(guis,surfacegui)
	
	for x,w in pairs(cameras) do
		if w.CFrame == v.CameraLocation.Value.CFrame then
			Frame.CurrentCamera = w
		end
	end	
	
	if Frame.CurrentCamera == nil then
		local Camera = Instance.new("Camera")
		Camera.CFrame = v.CameraLocation.Value.CFrame
		table.insert(cameras,Camera)
	end
	
	local handler = ViewportHandler.new(Frame)	
	
	handler:RenderObject(workspace.Baseplate)
	handler:RenderHumanoid(game.Players.LocalPlayer.Character or game.Players.LocalPlayer.CharacterAdded:Wait())	
end

I figured it out, I can’t share the same camera between multiple viewport frames.

For for anyone else trying to have multiple viewports show one camera view, you have to setup individual cameras for each viewport frame.

1 Like