First, you would need to remove the default leaderboard.
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
Next, create your leaderboard design in StarterGui service.
If you don’t know how, this article goes into detail on GUIs.
Now, the complicated part. You have to script it. I’m not going to script it for you completely, since that would take a bit, but I will teach you how.
Create a LocalScript as a child of your ScreenGUI. Inside of it, you will need to bind some keybinds into it. With the default leaderboard, you click Tab key and it closes it. Read this to learn about UserInputService (keybinds service)
If you want yours to be animated, I highly suggest reading this to learn how to tween GUIs, it’s very useful. GuiObject | Roblox Creator Documentation
Here is what your current code should somewhat look like.
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.E then
script.Parent:FindFirstChild("Frame").Visible = false
end
Now let’s do the players. You can use ChildAdded event in the Player service to detect a new player.
game:GetService("Players").ChildAdded:Connect(function(playr)
TextLabel.Text = game:GetService("Players").LocalPlayer.Name
end)
Your final code should look something like below. Keep in mind, this is just an example and it shouldn’t look the exact same. It is a rough draft.
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false)
game:GetService("StarterGui"):SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
local UIS = game:GetService("UserInputService")
UIS.InputBegan:Connect(function(input, gameProcessed)
if input.UserInputType == Enum.UserInputType.E then
script.Parent:FindFirstChild("Frame").Visible = false
end
game:GetService("Players").ChildAdded:Connect(function(playr)
TextLabel.Text = game:GetService("Players").LocalPlayer.Name
end)
Sorry for bad code formatting, I’m on mobile right now.