I want to setup weekly leaderboards but also have the ability to show global scores. I can achieve weekly by setting a reset time in the Unity Dashboard, however this will archive my old scores which means that I will no longer be able to show global scores. As a workaround I can query all versions and then fetch scores for each and compare, but this seems like a lot of extra work and poor API design - e.q, some versions were archived in my game due to scores being invalid or after changing the level layout which invalidates the scores. As another workaround I could store the date in metadata and filter by that, but this also means that I’d have to parse and filter a tonne score entries which doesn’t make sense memory-wise.
So my suggestion: all leaderboard APIs which emit a list should allow to filter by date range (created date) in combination with other filters.
Hey EdEddnEddy,
Thanks for reaching out!
Just to clarify, when you say global scores, do you mean something like an all time leaderboard?
If so, we’d recommend setting up two separate leaderboards. One for Weekly scores and one for All Time scores.
Here’s how you could approach it:
- Create a new All Time leaderboard without a scheduled reset.
- Update your score submission logic to submit each score to both the Weekly and All Time leaderboards.
- When displaying scores to your players, query the leaderboard that fits the view you want - Weekly or All Time.
A lot of developers use this setup, some even go as far as Daily / Weekly / Monthly / All Time and find it works well without the need for filtering archived scores or adding extra metadata.
Let me know if this is helpful and would solve your use case!
Thanks,
Jamie
Just to clarify, when you say global scores, do you mean something like an all time leaderboard?
Exactly. Same leaderboard but with two different instances - one which shows all time scores and the other one shows the scores for the current week.
If so, we’d recommend setting up two separate leaderboards. One for Weekly scores and one for All Time scores.
I see. Thank you for the tip. It does complicate things though as in our case we have a leaderboard per-level. We currently have 8 leaderboards, the number will grow to about 14 as we add new levels. Multiplied by the number of environments (quest, itch, dev + ps5 soon) and weekly/all time (if we go this route) that’s quite a lof of boards to manage 
Hey!
Thanks for the clarification.
The number of leaderboards does add some complexity, however you could consider looking at the Leaderboards Admin HTTP Endpoints.
With this you could define your weekly / global leaderboards config once in code and then create the leaderboards as required.
This with some consistent naming like:
quest_level1_weekly
quest_level1_alltime
quest_level2_weekly
quest_level2_alltime
And maybe a loop over arrays of platforms, levels, and leaderboard types can make the initial setup a lot smoother.
I understand this isn’t exactly the solution you were looking for but I do think it’s a cleaner and more scalable option compared to fetching and comparing across archived versions.
Hope this helps, and if this isn’t what you’re looking for please reach out!
Thanks,
Jamie
I ended up doing something similar and ended up defining an all time + weekly leaderboard via the deployment package which wasn’t that painful as I thought. From Unity side it wasn’t that bad too, since I just iterate the board ids and store the data to all in one batch by utilizing await UniTask.WhenAll so its no biggie
The issue we have now is monitoring the data as its now all over the place in the dashboard 
Good enough workaround for now I guess, thanks for the tips.