ViewportFrames do not render within SurfaceGuis if descended from the workspace

Whenever you place a SurfaceGui within the world that has a ViewportFrame within it, the contents of the ViewportFrame will not be rendered.

image
image

However, if you move this SurfaceGui into PlayerGui (or StarterGui while viewing in studio) and set the Adornee to the same part, the ViewportFrame renders just fine.

image
image

For the longest time I had believed that ViewportFrames were not supported within SurfaceGuis because of this. It’s really odd that this behavior is inconsistent, and this is definitely a bug.

Edit: People are insistent to point out that rendering ViewportFrames descending from the Workspace was intentionally disabled when ViewportFrames were first released. Regardless, this is really confusing behavior, and ought be changed. Currently, parts descending from the workspace within a ViewportFrame don’t render like normal parts within the workspace, and neither do they contribute to physics. I don’t know the details of how this works internally, but it seems simple to me that ViewportFrames should render in this case.

5 Likes

I believe this is intentional behaviour as problems arise with parts being in both the workspace (rendered in the 3D world) and in the viewport frame at the same time, if I recall correctly.

Parts inside of ViewportFrames don’t render like normal parts either (they will appear invisible), so this is a really dumb intentional behavior, and has made me go months and months without realizing that there was a valid way to render ViewportFrames within SurfaceGuis

Probably intentional behavior.

1 Like

I really want this to be fixed, here is my topic 3D Gui problems