As a Roblox Developer it is currently impossible to work your GUIs around the engine’s PerformanceStats menu.
Currently, because we’re not able to tell if this menus is open, it creates issues where the GUI overlaps in a game’s GUI.
Its already possible for CoreScripts to read the state of PerformanceStats with UserGameSettings.PerformanceStatsVisible and the PlayerList has always utilised it. The member isn’t ReadOnly so it probably wont be a good idea to unlock this.
The Chat doesn’t have this behaviour because it has the same restriction as our code, unable to tell if it’s open
If Roblox were to address this issue it would not only improve my experience, but also many players who can have the PerformanceStats menu up but still have access to the game’s entire GUIs without overlapping issues.
ps. I initially requested having this for the Microprofiler as well, but I believe thats not in the GUI rendering pipeline, not an impossible task to tell if it’s just open though with a boolean or smth
Maybe the windows should just have an opaque mode with some hotkey combination or cycling through transparencies (e.g. 1 (disabled), 0.5, 0) when you hit its hotkey? That way they don’t need to design an API for it and devs don’t need to write custom code for it.
I think you should retitle this after the problem instead of proposing a solution: your problem is that you cannot see the performance stats properly on games that have lots of UI or a busy background otherwise. My solution above and yours are just two ways of solving this problem. There may be others, and it’s pointless to create multiple threads for this.
This issue is still affecting UI development in 2026.
Performance Stats can overlap important interface elements near the top of the screen. However, regular LocalScripts cannot detect when the panel is visible because UserSettings().GameSettings.PerformanceStatsVisible is restricted to Roblox CoreScripts.