Create a leaderboard definition via the PlayFab Progression API (formerly Leaderboards API, renamed in 2024) specifying a VersionConfiguration with ResetInterval (e.g. 'Hour', 'Day', 'Week', 'Month') and MaxQueryableVersions
Write player scores using UpdateStatisticForEntity on the server with the player's EntityKey and the statistic name tied to the leaderboard
At season end, call IncrementLeaderboardVersion to manually trigger a reset and archive the current version; automatic resets fire based on the configured interval
Query past seasons by specifying Version in GetLeaderboard requests; versions are retained up to the MaxQueryableVersions limit
Award season-end rewards by reading the final leaderboard before the reset fires, granting items via AddInventoryItems to top-ranked players
Known gotchas
The PlayFab Leaderboards/Progression API was renamed in 2024; SDK method names may differ between SDK versions — verify method names against your installed SDK version's release notes
MaxQueryableVersions limits how many past seasons are accessible; once exceeded, the oldest version is dropped — set this value high enough to support your desired history window
Automatic resets based on ResetInterval are aligned to calendar boundaries (e.g. a monthly reset fires at the start of a calendar month), not relative to creation time; plan season end dates accordingly
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp