We kept a local copy of the player’s all time highscore and limited time scores, fetched at game launch. We reported the all time highscore to the server whenever the player beat their highscore. For the limited time score, we added the player’s score after every gameplay session and reported it to the server to update their limited time score. To reset the score locally, the game checked for the ‘force reset flag’ at every launch, and reset the score to zero whenever that flag was found set. Additionally, when the leaderboard data was fetched to show in game, it could read the avatar key for each player and render the appropriate avatar against each leaderboard entry.