Skip to content

Leaderboards

Jakub Hubacek edited this page Oct 1, 2025 · 4 revisions

Leaderboards Subsystem

Location: godot_epic_extension/src/Leaderboards

Overview

The Leaderboards subsystem handles leaderboard definitions, querying ranks, and querying user scores for specific users. This subsystem provides comprehensive leaderboard functionality for competitive features in Epic Online Services.


Supported Functions

Function Description
QueryLeaderboardDefinitions() Retrieves leaderboard metadata from EOS. Requires logged-in user
QueryLeaderboardRanks(leaderboard_id, limit) Queries ranks for a leaderboard. Preserves leaderboard_id in context to avoid dangling pointers
QueryLeaderboardUserScores(leaderboard_id, user_ids) WIP: Queries scores for given users. Stores stat_name in context to ensure lifetime. Validates product user IDs
GetLeaderboardDefinitions() Returns cached definitions
GetLeaderboardRanks() Returns cached ranks
GetLeaderboardUserScores() WIP: Returns last fetched dictionary of user scores

Notes

  • Authentication Required: Leaderboard operations require a logged-in user and valid leaderboard definitions to be present for user score queries
  • Validation: The code validates user IDs using AccountHelpers. If a caller provides invalid strings, the call will fail early with a warning

πŸ” EOS SDK Coverage

Mapping of EOS_Leaderboards_ SDK functions* to implementation status:

EOS Function Status Notes
EOS_Leaderboards_QueryLeaderboardDefinitions βœ… Yes Called in QueryLeaderboardDefinitions()
EOS_Leaderboards_GetLeaderboardDefinitionCount βœ… Yes Used in callback to iterate definitions
EOS_Leaderboards_CopyLeaderboardDefinitionByIndex βœ… Yes Used to copy individual definitions in the query completion
EOS_Leaderboards_CopyLeaderboardDefinitionByLeaderboardId ❌ No Not used; copy-by-index is used instead
EOS_Leaderboards_QueryLeaderboardRanks βœ… Yes Called in QueryLeaderboardRanks()
EOS_Leaderboards_GetLeaderboardRecordCount βœ… Yes Used in ranks callback to iterate records
EOS_Leaderboards_CopyLeaderboardRecordByIndex βœ… Yes Used to copy each leaderboard record
EOS_Leaderboards_QueryLeaderboardUserScores βœ… Yes Called in QueryLeaderboardUserScores()
EOS_Leaderboards_GetLeaderboardUserScoreCount βœ… Yes Used in user-scores callback to iterate
EOS_Leaderboards_CopyLeaderboardUserScoreByIndex βœ… Yes Used to copy user score entries
EOS_Leaderboards_CopyLeaderboardUserScoreByUserId ❌ No Not used; copy-by-index is used

Clone this wiki locally