Currently, Game Center leaderboard scores can only change one-way (e.g. increase). This makes it impossible (I think) to deal with Elo ratings and the like. How are you getting around this in your leaderboards?

I have filed a bug report / feature request with Apple already FWIW.

Are you using a third-party leaderboard service? Rolling your own?

  • \$\begingroup\$ I don't know anything about the Game Center... But did you try adding a negative score? \$\endgroup\$
    – Ricket
    Commented Jan 27, 2011 at 3:58
  • \$\begingroup\$ GC leaderboards only accept entries that are better than previous so this will have no effect. \$\endgroup\$
    – z8000
    Commented Jan 28, 2011 at 4:13
  • \$\begingroup\$ Did you ever find a solution for this? The answer below works for storing the scores, but not for using Game Center leaderboard views or rankings, so it would be impossible to know (without completely retrieving both leaderboards) in which position (rank) a player is. Am I missing something? \$\endgroup\$
    – elibud
    Commented Nov 14, 2012 at 22:04

1 Answer 1


Off the top of my head, if negative scores are not allowed: track positive and negative scores separately.

For instance, when writing the leaderboard:

// Pseudocode
points_for_win = 3;
points_for_loss = 2;

if (didWin)
    leaderboard.positive_score += points_for_win;
    leaderboard.negative_score += points_for_loss;

When retrieving the leaderboard, you can then compute the user's actual score by:

actual_score = leaderboard.positive_score - leaderboard.negative_score; 

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .