Description: When updating anything within a ViewportFrame that is within a CanvasGroup is changed, the content is not updated. Meaning, if you were to rotate a part within a ViewportFrame that is parented to a CanvasGroup then the part looks to be standing still, when in reality the CFrame property is being changed. Strangely, the ViewportFrame only seems to update when the mouse enters or leaves any UI element.
Where: This bug occurs in Studio, in play-testing, and in the Roblox application. When: I did not encounter this bug until just recently on 3 / 19 / 2023 at 10 a.m. Videos and images:
I added this code in order to rotate the parts.
local i = 0
while true do
i += 1
script.Parent.ViewportFrame.Part.CFrame = CFrame.fromOrientation(0, math.rad(i), 0)
task.wait()
end
However, this can also be reproduced by just changing any properties in Studio. For example:
Reproduction instructions and files: Create a ScreenGui, place a CanvasGroup within that ScreenGui, and then place a ViewportFrame within the CanvasGroup. Then, set up the ViewportFrame by placing a default Camera within the ViewportFrame and setting the CurrentCamera property to that Camera. Finally, place a Part within the ViewportFrame and try changing any properties about the part.
If this is supposed to be fixed, it’s broken again (or still is since this 80 days ago). My avatar viewer is breaking constantly because of this bug.
Making viewports practically unusable within canvasgroups
The only workaround I’ve found is to either change properties on the CanvasGroup constantly or re-parent your target object in the ViewportFrame constantly. Still waiting on a fix.
Yea, but I’m talking about it in-game which has no properties window. However, I have found a workaround within the game but it doesn’t mean the bug isn’t annoying.
If the viewport is within a scroll frame and you scroll in any direction it’ll update. But that’s the only method I’ve come up with to update it
RunService.HeartBeat:Connect(function()
for i,v in pairs(CanvasGroup:GetChildren())
if v:FindFirstChild("ViewportFrame") then
v.Visible = false
v.Visible = true
end
end
end)
You can have this in a spawn function aswell that just runs. (locally)
this will bypass and be a temp work around untill the bug has been fixed.
Bump - still happens to date. Extremely annoying and the only good solution I’ve found is to “jitter” one of the viewport properties, or the viewport camera for some reason, on each render step to get a consistent refresh (I flicker the camera FOV slightly).
Hey. I can confirm that as of the 4th of April 2024, this bug is still in fact, unfixed. I literally spent 3 hours wondering why it wasn’t playing animations. massive waste of time. roblox employees cant get one thing right.