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).