Why do surfaceguis only work with AlwaysOnTop set to true?

I searched far and wide but I only found posts asking the same question but heres the cool part, nobody responded to them. I and probably many others want to know why buttons parented to a SurfaceGui, even though the SurfaceGui is located inside of StarterGui, only ever works with the property AlwaysOnTop set to true? Thank you in advance! :smiley:

Have you tried these exact steps? 1. Insert your part.
2.Insert SurfaceGUI from instance panel.
3. Insert the button, add a localscript in it and detect MouseButton1Down, then print out β€œButton Clicked.” This will be used for debugging.
4. Set the adornee of the surfaceGUI to starterGUI
5. Parent the SurfaceGUI to starterGUI.

1 Like

I’m not sure what you mean by this.

It works as intended

adornee needs to be set to the effected part in order for it to work if the surfaceGui is not a child of that part