[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
    image
    image

  • 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)

26 Likes

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

Isn’t this a server based leaderboard rather than a global one? I’m not that familiar with datastores so I might be wrong but as far as I understand you can’t access the entire datastore with profile service?

Is their anyway to make a global (every player whose played the game) leaderboard with profile service or would you recommend leaving it and using datastore v2

Global is more likely Simulator and Rpg games etc.

Like:
Highest Gold
Highest Rebirth
Etc.

quick question, will this work with the leaderboard script that I have been using with a normal data store or do I have to change it?