Allow Developers to Toggle Leaderboard/PlayerList Visibility (without disabling CoreGui)

The Problem
As you know, players can show/hide the Roblox Chat by clicking on the Chat Icon next to the Roblox Menu button. By using StarterGui:SetCore(“ChatActive”, true|false)), developers are also able to programatically show & hide the Roblox Chat menu easily whenever needed.
image

In a similar way, (PC) players can show/hide the Roblox Leaderboard by pressing Tab on their keyboard. However, the only way that developers can controllably show/hide the player list is by having to enable/disable it completely via StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, true|false).
Whilst this does work, there is an annoying issue that whenever you re-enable the leaderboard, it will always display as being opened by default - even if the player had previously hidden the leaderboard for themselves.

I hope this gif explains the problem I am facing better:
ezgif.com-video-to-gif
I toggled the player list to hide it. Then when the player list gets Disabled and then Enabled (via :SetCoreGuiEnabled()), the player list automatically pops open again.


This is an issue my experience because I toggle the PlayerList CoreGui often, so that it doesn’t overlap with big UIs that cover the entire screen. Whenever a big UI is opened, I disable the leaderboard, and when the UI is closed, I re-enable it.

As a result, I have received a lot of complaints about the player list being “annoying” and “getting in the way”, because players have to keep tabbing it out as it keeps on automatically re-opening (whilst I’m toggling the Enabled state of the CoreGui). I have considered disabling the leaderboard entirely or creating a custom leaderboard, but this is not something that I want to have to resort to.


Solution(s)
either #1) Add a StarterGui:SetCore(“PlayerListActive”, boolean) option so that we can toggle the leaderboard visibility, without entirely disabling it. This exists for the Chat Gui (StarterGui:SetCore(“ChatActive”, true|false)) already, so I am not sure why there isn’t an option to do this for the PlayerList yet.

or #2) Whenever the PlayerList CoreGui is disabled, and then re-enabled, preserve its “hidden” state rather than always making it pop open again by default. (basically, if the leaderboard was hidden by the player, then keep it hidden)

40 Likes

I have a melee combat game which is full of different UIs, each with many buttons, so I ended up discovering this issue the painful way, getting quite a few reports from irritated players. It would be very helpful if Roblox would address this.
About the chat already function in this way, I’d assume the leaderboard issue had just been overlooked.

Even though you can make a custom leaderboard look the same, it will not preserve the same functionality and util functions, even after hours of work.
This is not a major issue, so I doubt it will be prioritised, although it is definitely something that I’m sure would benefit a lot of game developers.

4 Likes

@ItsMuneeeb thanks for this writeup! I really need this ability too. My users and myself don’t like the current SetCoreGuiEnabled behavior of disabling the playerlist entirely. I want it to behave as if the Player themself toggled it off/on. @Focia19 can we request this feature to be implemented by Roblox Engineers? We just need a new 1st parameter to SetCore which will allow to target the PlayerList. So it would be like StarterGui:SetCore(“PlayerListActive”, true|false). The OP’s solution #2 would also be agreeable, preferably in addition to Solution #1.

Related: if only 1 item appears in this three-dots-menu, can we just skip the 2-step toggle altogether, and proceed as if the single menu item was activated? A menu with only 1 item is an anti-pattern.
image

2 Likes

Would absolutely love this! Why not have SetCore functions for all types of coregui.

What Already Exists

StarterGui:SetCore(“ChatActive”, bool)
StarterGui:GetCore(“ChatActive”)

What I want

StarterGui:SetCore(“PlayerListActive”, bool)
StarterGui:SetCore(“BackpackActive”, bool)
StarterGui:SetCore(“EmotesMenuActive”, bool)
StarterGui:GetCore(“PlayerListActive”)
StarterGui:GetCore(“BackpackActive”)
StarterGui:GetCore(“EmotesMenuActive”)

It would be so useful for multiple cases; especially the Backpack in first person games not unlocking the cursor. Very annoying to make a custom backpack just to make it unlock

13 Likes

We still need this! please Roblox :pray:

Yep, we still need this! Roblox, please add!

1 Like