Game systems

In-game leaderboard: ranking, rounds and rewards

How the ready-made iDos Games leaderboard works - boards with rounds, rewards for rank and for points, protection from inflated scores - and how to set it up in the dashboard.

Updated: Русский

The leaderboard is a ready-made ranking system: boards with rounds, rewards for rank and for points. The server counts scores, ranks and rewards. You set up the boards in the dashboard, and the game submits results and shows the ranking.

What the player sees

  • Boards as tabs: each with a card showing the player's score, rank and the countdown to the end of the round.
  • The top players, with the player highlighted and medals for the top three.
  • Rank rewards and points rewards in popups; points rewards are claimed right there.
  • A popup with the reward of the last round: it appears by itself when a round ends, with a "Claim" button.
  • A "Play" button on the card if the game has a mode where points are earned.
  • A badge on the tab when a reward is waiting.
Leaderboards
12 450
320
Weekly!
Season
My score12 840
Rank#7
Ends in 2d 04:13
Rewards
Play
ShadowFox25 120
2Mira22 980
3KnightOwl19 400
4Pixel_Pete15 210
5Luna14 030
6Arrow13 115
7You12 840
8Grizzly11 900
Every enabled board is a tab; the badge means a reward is waiting.
The player card: score, rank and the countdown to the end of the round.
Rank and points rewards open from here; "Play" leads to the game mode.
Medals for the top three, the player is highlighted in the list.
Example. The leaderboard screen: the player card with the round timer and the top list.

How a board is built

  • Rounds. A board repeats in cycles (for example every week), runs on a schedule or as a chain of rounds.
  • How the score is counted. The sum of all results, the best result, the best time or the last value.
  • Rank rewards - by ranges of places at the end of a round: 1st place, 2nd to 3rd, 4th to 10th and so on.
  • Points rewards - milestones inside a round: "earn 1000 points this week".

Where points come from

Points come from the sources set on the board:

  • A result from the game (ClientScore). The game sends a number, for example the score of a run. ⚠ Set limits on the source: a maximum per submission, per day and a pause between submissions. Without this source the board takes no number from the game at all.
  • Events the server counts by itself, for example purchases or finished quests. These cannot be faked from the game.

Step 01Add a leaderboard to your project

Tell the AI coder: "Add a weekly leaderboard by best score". It installs the ready system and teaches the game to submit the result. The tab appears for players once at least one board is enabled in the dashboard.

Step 02Set up a board

Open the dashboard, pick your project and go to Live Operations → v2 → Leaderboard.

  1. Press Add leaderboard and set its ID, for example weekly_score.
  2. Choose the round schedule and how the score is counted.
  3. Add a points source. If the game submits the points, use ClientScore with limits.
  4. Set rank rewards and, if you like, points rewards.
  5. Press Save.

The AI button on the page opens an assistant: describe the board in words, it proposes changes, and you review and save them.

Step 03Test and release

Submit a few results in the test version and watch the rank change. Settings go to the live app as a separate action - see publishing and links.

For developers

The leaderboard works through client.leaderboard in @idosgames/core.

TypeScript
// Submit a result: the server applies the counting rule and the limits
const sub = await client.leaderboard.submitScore('weekly_score', 150)
if (!sub.ok) return showError(sub.error)
sub.data.NewScore // the score after counting

// A screen with several boards: top lists and the player's progress in one request
const overview = await client.leaderboard.getOverviewBatch(['weekly_score', 'season_pvp'])

// Claim everything waiting: rank rewards and points rewards
await client.leaderboard.claimAllRewardsBatch(['weekly_score', 'season_pvp'])
  • The SDK rejects a score of zero or less by itself, without a request.
  • Take the new score from NewScore in the response: with "best result" a worse result does not change the score.
  • The friends ranking is getFriendsLeaderboard(leaderboardID).

Every field is described in the leaderboard-system skill, served by the SDK MCP server.

Frequently asked questions

Can a player cheat by sending a huge score from the game?

Not when the board is set up right. A board takes a number from the game only through a ClientScore source, and that source has limits - a maximum per submission, per day and a pause between submissions.

How many leaderboards can a game have?

Several. Every enabled board is a separate tab of the leaderboard screen with its own round and rewards.

Is there a friends leaderboard?

Yes. The SDK returns the same board filtered to the player's friends.

See also

Make your own game

Describe the idea in a sentence - the AI coder builds it, and it goes live at its own link.