[Guide] - How to make a Global leaderboard with ProfileService?

Hi there,if you are looking like me for a way to make Global leaderboards working with Madwork - ProfileService you probably noticed that it’s not easy to do at all, but I found a workaround to be able to accomplish that, got inspiration from How do I make a Global leaderboard with ProfileService

If you knows a better way to make that, please post your solution for that problem on this topic

  • So basically you gonna need create 2 (two) differents datastores. The first one its obviously the ProfileService and the other gonna be a normal datastore from Roblox

  • After creating these two different data types, you will need to store the values you want to use in the leaderboard in a folder within the player. To do this, create a folder in the PlayerAdded event and add the values from the “ProfileService” datastore to this folder,like i did here.

  • Now you can access these values from any script. Let’s use this to store this data in Roblox’s DataStore, and finally, we can use the :GetSortedAsync event to organize this data in ascending order.

  • Now we can use this type of data to update the leaderboard globally, as we have essentially duplicated the values in it. And to prevent the Roblox DataStore system from being overloaded, we can update the leaderboard only when necessary, or as I did, when the player leaves the game.

You can get the full file here > Leaderboard+ProfileService.rbxl (177.7 KB)


Thanks for this, will try this out when developing my next game that requires saving data.

What if you have more than 1 leaderstat?

Simply update the leaderboard’s datastore with the other leaderstat, similar to what I did in my last image example.

1 Like