How do I make a custom leaderboard?

Hello, I am wondering, how would I go about making a Custom leaderboard that also displays there leaderstars automatically. Basically, I want to make the default Roblox leaderstats thing look better.
If anyone doesn’t know what I’m talking about its this:

Thanks, Mason!


You have basic scripting knowledge right? For the players, you’d need to check on join all the players that are currently inside by using :getplayers() and making a frame for each one, and then players.playeremoving and players.playeradded add more frames or remove them

Then you can further configure this, if you’ve got any questions feel free to ask


You can disable the current one,
and use ScrollingFrame / Frames for the list.

And for each player that joins the game, duplicate a frame with his name,etc.
make sure it does that with an event[ from server to all clients],
and when that player leaves, remove him from the list.

For E.G, check this one in the video:
robloxapp-20220320-1826162.wmv (739.8 KB)

No need to be server sided, a leaderboard is just visual so theres no need in making it server sided since exploits won’t change anything important

Ok, thanks! But how do i add there leaderstats to the icon? NOTE: I want it to add them automatically, so it will create more slots depending on how many leaderstats there are

For the playerframe add textlabels which display each user’s points, for every player have an event which listens for value changes, like points etc

You’ll need to fire an event [for all clients] whenever a player joins/leaves the game.

And on the client, duplicate a frame/template with his name [ so that, everyone’d be able to see his name on the LB]

For adding new leaderstats icon everytime you add more leaderstats you would need an event

There’s no need in firing anything from the server though

You can’t create the leaderboard from the client. [Of course you can], but we dont trust the clients.

The thing is the remote event is useless, you are creating frames off the remoteevent which can also be exploited lol

1 Like

The frames are created after the event has been fired

A leaderboard is just visual, it’s a user interface which we don’t care if someone exploits it since it’s local

So the exploiter can just remove the listening event by destroying the localscript

Then you can simply make the leaderboard from the server, and the exploiter won’t be able to mess it.

One other thing, how would I move the frame down, because if I don’t, they will all overlap

1 Like

Server scripts for guis are useless and slow

You could use your own function or add “automatic canvas size” in the properties to Y

And a UIListLayout aaa character limit is bullshit

Im trying to get the leaderstats but my function doent work.

function GetStats()
	for _,v in next,Players:GetChildren() do
		for _,c in next,v:WaitForChild("leaderstats"):GetChildren() do
			if c:IsA("NumberValue") then
				for _,vx in pairs(c) do

What am i doing wrong?