Repository navigation
Leaderboards
Jakub Hubacek edited this page Oct 1, 2025
·
4 revisions
Location:
godot_epic_extension/src/Leaderboards
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.
| 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 |
- 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
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 |