View as Markdown

Leaderboards

The Leaderboards system manages competitive player rankings based on scores. Learn more in the Leaderboards concept guide.

The methods below require Hiro 1.33 or later. If you are on an earlier version, see Hiro 1.32 and earlier.

Overview #

The Leaderboards system enables your game to:

  • Retrieve defined leaderboards.
  • Track and display player rankings.

Before you start #

Make sure you have:

  • Python project configured with Hiro SDK.
  • Nakama system integrated (guide).

Working with leaderboards #

Get all leaderboards #

List all available leaderboards.

1
2
3
4
request = LeaderboardListRequest()

leaderboard_list = await hiro_client.leaderboard_list(session, request)
print(leaderboard_list)

Filter by category:

1
2
3
4
5
request = LeaderboardListRequest()
request.categories = ["Tournament"]

leaderboard_list = await hiro_client.leaderboard_list(session, request)
print(leaderboard_list)

Get a leaderboard #

Get a specified leaderboard by ID.

1
2
3
4
5
request = LeaderboardGet()
request.id = "GalacticChampions"

leaderboard = await hiro_client.leaderboard_get(session, request)
print(leaderboard)

Submit a score #

Submit a score to a leaderboard.

1
2
3
4
5
6
7
request = LeaderboardUpdate()
request.id = "GalacticChampions"
request.set_score_numeric(1500)
request.set_subscore_numeric(0)

leaderboard_score = await hiro_client.leaderboard_update(session, request)
print(leaderboard_score)

List scores #

List scores on a leaderboard. Pass owner_ids to retrieve scores for specific owners.

1
2
3
4
5
6
7
request = LeaderboardScoresListRequest()
request.id = "GalacticChampions"
request.owner_ids = ["userId1", "userId2"]
request.limit = 100

score_list = await hiro_client.leaderboard_scores_list(session, request)
print(score_list)

Filter by region:

1
2
3
4
5
6
7
request = LeaderboardScoresListRequest()
request.id = "GalacticChampions"
request.region = "EU"
request.limit = 100

score_list = await hiro_client.leaderboard_scores_list(session, request)
print(score_list)

List scores around owner #

List scores centred around a specific owner.

1
2
3
4
5
6
7
request = LeaderboardScoresListAroundOwnerRequest()
request.id = "GalacticChampions"
request.owner_id = session.user_id
request.limit = 10

score_list = await hiro_client.leaderboard_scores_list_around_owner(session, request)
print(score_list)

Hiro 1.32 and earlier #

Prior to Hiro 1.33, leaderboards_config_get was the only way to retrieve available leaderboards, returning a LeaderboardConfigList with basic configuration data. This method is deprecated in Hiro 1.33 and later. Use leaderboard_list instead.

1
2
leaderboard_config_list = await hiro_client.leaderboards_config_get(session)
print(leaderboard_config_list)