BillboardGuis do not render on the server when their Adornee is reparented

When creating a BillboardGui and setting its Adornee property to a part that is parented to nil, parenting the Adornee only causes the BillboardGui to show on the client until the BillboardGui is updated (anything that causes the AncestryChanged event to fire).

I’m posting this in studio bugs because while it technically affects live games, there is no way to see the server’s rendered view of the workspace in a live game.

Repro script:

-- INSTRUCTIONS
-- 1. Playtest the game
--    Notice the BillboardGui rendering

-- 2. Switch to server view
--    Notice the BillboardGui NOT rendering

-- 3. Parent the BillboardGui to any descendant of workspace
--    Notice the BillboardGui begin to render again



-- Code to create the Billboard and part
local billboard = Instance.new("BillboardGui", workspace)
billboard.Size = UDim2.new(1, 0, 1, 0)
billboard.AlwaysOnTop = true

local frame = Instance.new("Frame", billboard)
frame.Size = billboard.Size
frame.BackgroundColor3 = Color3.new(1, 0, 0)

local part = Instance.new("Part")



-- Code below causes the bug, swapping the two lines fixes it
billboard.Adornee = part
part.Parent = workspace

-- That's so frightening.

Expected behavior: the BillboardGui renders on the server as soon as the Adornee is parented to Workspace
image

What actually happens: the client can see the BillboardGui, but the server can’t until it is reparented.

3 Likes

Thanks for the report! I filed a ticket in our internal database and we’ll follow up when we have an update for you.

1 Like

Thank you for the repro script! Is it possible to post an rbxl file with instructions? Also - for that repro could you tell us what happens now, and what you expect to happen?

Thanks for submitting this bug, we are always trying to make Roblox better!

1 Like

I can post an rbxl later, but for now just enter an empty baseplate, create a script in workspace, and paste the repro code in.

I will re-test the repro later

Place1.rbxl (45.2 KB)
The repro still works, and I also updated the original post for more clarity.

Instructions are in the script game.Workspace.Billboard