world-based adornment GUIs (BillboardGui, SurfaceGui) created during Run test do not show unless selected

Reproduction Steps

  1. Create a Part in workspace in an empty baseplate

  2. Create a Script and put it in ServerScriptService with the following code:

local SurfaceGui = Instance.new("SurfaceGui")
SurfaceGui.Parent = workspace.Part

local TextLabel = Instance.new("TextLabel")
TextLabel.Parent = SurfaceGui
  1. Begin a “Run” (F8) i.e. play test without Clients.

Expected Behavior
All game GUIs should show when testing so that the game can be properly tested

Actual Behavior
The GUI does not render for the user until:

  • Hovered over (SurfaceGui)
  • Selected in Explorer (BillboardGui)

Workaround
I use this to display debug information in my game when running tests. I would select the GUIs, however they’re Gizmos and so delete themselves after a short time so it is frustrating to do so. I instead just print the values out, which is annoying considering the amount of data and the complexity of it.

I don’t think this is intentional, as it was not announced as a feature and only has started happening (relatively) recently, however if it is intentional, can we please get a way to disable this behaviour?

Issue Area: Studio
Issue Type: Display
Impact: Moderate
Frequency: Constantly
Date Last Experienced: 2021-07-22 18:07:00 (+01:00)

1 Like

To add, this is not restricted to when the instance is created at runtime / by a script. It also happens when the Surface- or BillboardGui is created by hand / beforehand.

Repro steps:

  1. Open repro.rbxl
  2. Observe that a TextLabel on a BillboardGui can be seen in the viewport
  3. Enter Run mode
  4. Observe that the TextLabel cannot be seen in the viewport
  5. Select the BillboardGui in the explorer
  6. Observe that the TextLabel can now be seen in the viewport
3 Likes