I want to implement regional leaderboards by country, and I want to create them dynamically as needed since my users will be traveling a lot.
I tried using PlayFabServerAPI.UpdatePlayerStatistics and it does create a statistic if it doesn't exist, but I have no way to know if it was created or if it already existed and there's also no way to specify the reset frequency nor the aggregation method which I would need to be monthly and sum.
So my flow has to be something like check if statistic exist -> create if not -> update player, that's 3 request in the worst scenario and 2 in the best and for that I would need to use the admin API (PlayFabAdminAPI.GetPlayerStatisticDefinitions, PlayFabAdminAPI.CreatePlayerStatisticDefinition) which I don't know how frequently can I use before hitting the limits (which I guess it exists).
Is there a better way to solve my problem? Thanks.
I can actually cache the check if statistic exist part, so that won't be an extra request most of the time, but still, I want to know if my approach is correct.
Answer by Sarah Zhang · Jul 24, 2020 at 08:19 AM
For Free Plan title developers, one title can create up to 300 leaderboards. You can check the Title limits in the [Game Manager]->[Title Settings]->[Limits] (https://developer.playfab.com/en-US/[YourTitleId]/limits).
So every player can have 300 statistics of different regions at most. Besides, currently, leaderboards cannot be deleted. So we don’t suggest creating the leaderboard dynamically according to the players’ behaviors. Such a leaderboards creation solution may make the leaderboards challenging to manage. You can consider creating 300 leaderboards in advance, using the region names as the name of the leaderboard (equals to statistic name). Then your game server can “allocate” corresponding leaderboards to people in different regions instead of “creating” them.
As the summary, due to the total number of leaderboards has the limit, so dynamical creation is not suitable for PlayFab Leaderboards. Title developers need to control the use of leaderboards according to plans and provide players with limited region/country options.