Add a way for GUI's to ignore the GUI inset

As a Roblox developer, it is currently too hard to design a GUI which is not affected by the GUI inset. In order to do this at the moment you will need to call GetGuiInset and offset/resize your GUI’s accordingly.

While developing the egg hunt we encountered an issue where the GUI inset would change when players teleported. This meant that the available size for a GUI to fill would suddenly change and everything which was not anchored from the bottom of the screen would ‘shift’ up momentarily until the inset was reset again. We overcame this by adding in some code which would position all the elements used in our teleport GUI’s from the bottom of the screen. This was far from ideal.

When trying to make a frame cover the entire screen you intuitively assume that setting its size to (1, 0), (1, 0) is the correct way to do this. Unfortunately it’s not, you need to take the inset into account when sizing and positioning it to ensure the screen is indeed covered.

If you want to hide an element above the top bar, setting its anchor point and position to (X, 1) and (Xs, Xo), (0, 0) respectively will not achieve this. You’ll need to include the GUI inset in your position.

Finally, if you want to position an element at the very top of the screen (this is common when you disable the top-bar) then once again you will need to consider the inset to ensure it’s positioned correctly and not just use (Xs, Xo), (0, 0).

I imagine a significant number of developers position their elements under the impression that this inset may never change. It’s tedious to use GetGuiInset and update all your GUI’s to take this into account.

Side-note: A global flag may not be the best solution since different GUI’s may have different requirements. As an example I may want to position an element beneath the top bar, and have a separate element that I might want to use to cover the entire screen (this may occur with a transparent top-bar).

9 Likes

Agreed. Inset should be set to (0,0),(0,0) when the top bar is outright disabled, but not when it’s transparency is set to 1.

This should be entirely separate from the top-bar, there may be other reasons to change the GUI inset at a future date. Further, there are situations where you may want the top bar to be enabled yet translucent, in this case I might want a GUI to cover the entire screen while another element to be positioned beneath the top-bar, one should take the inset into account while the other should not.

1 Like