Tim van der Heijden avatar image
Tim van der Heijden asked

Leaderboard amount limitations & dynamic creation?


We'd like to use PlayFab for one of our projects currently in development, and we have a few questions on some of our specific use-cases. Most importantly, if we can use PlayFab for our scenario as well as perhaps some help in best practices.

Use Case

Our current project features a collection of mini-games. These mini-games also contain leaderboards to show how well the user did & to add a competition element. In addition, we allow the player to select their specific region (you could think of it as a country) which we would like to also have its own sub/child leaderboard. These leaderboards would reset after a period of time, and give the player that was in the "top 10" an "achievement-like" reward. This achievement contains information of:

  • The specific minigame
  • Bronze/silver/gold "medal" (or 10/100/500), for a specific region!
  • The period at which the achievement was achieved (example: April)

Problems / Questions

Now the obvious solution to this is to make the leaderboards in question, add prize tables & make items. However, upon researching this we ran into some trouble:

1. There is a leaderboard limit of 300

Making a simple calculation here, our initial estimate for the amount of leaderboards we need based on the region & mini-game requirement would be at around ~200. This would be enough for now, but as we make more mini-games this could exceed the 300 mark. Note that this number assumes we need a new leaderboard per mini-game, per region.

Is there a hard-cap at this amount? Can you think of a different solution which would solve the same use-case?

2. Leaderboards are made beforehand, manually

Even if this limit can exceeded, making 200 leaderboards is quite the chore. In the past (other games), we've implemented our own solution for leaderboards using Azure & Redis Cache. There, you can make a whole lot of sorted set containers by just changing the "leaderboardid" string based on parameters & letting it create the container.

As far as I can see, there is currently no way to generate leaderboards... is that correct?

3. Items are made beforehand, not dynamic

Our initial idea was to give the player an item using the leaderboard "prize tables", which does roughly what we want. However, the problem here is that the "item" is an achievement which will always be dynamic because of the data we need from it. (when was it given to the player?)

Looking at other avenues to do this, we found that we could a CloudScript triggered by Task Scheduler which Updates / Adds player data to those who got "top 10". This data could then contain the date & be read-only for the client to parse into a visual "achievement" item. Does this sound like a good solution?

Hoping to find out some answers, as you see in our use case these are crucial for our game!

Player DataCloudScriptLeaderboards and Statistics
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Citrus Yan avatar image
Citrus Yan answered

1.There is a leaderboard limit of 300

Please let us know by opening a ticket requesting more resources with our support team if you need more than that in the future.

2.Leaderboards are made beforehand, manually

The Child Leaderboard, Dynamically adding/deleting Leaderboard features are in Leaderboards v2, however, it’s currently in Private Preview and there is no fixed ETA. Please keep an eye on our blog/doc for new updates.

3.Items are made beforehand, not dynamic

You can also execute a Cloud Script function directly from the Prize Table to do that, Prize Table supports executing Cloud Script for ranked players:

Moreover, Regional Leaderboard is not available right now, you can make a feature request about it here to help us prioritize our work:

1.png (7.1 KiB)
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.