Can't retrieve a listing of all entries in a Steam Leaderboard

We need to implement a high scores list in our game, I am thinking of using Steam Leaderboards for that task. They are basically exactly what we need. However, it seems there is no way to retrieve a list of all leaderboard entries, only for certain players. But for obvious reasons this is not an option if one wants to show a full listing of the leaderboard in the game.

So, how is one supposed to access a Steam Leaderboard via the UE4 online subsystem?
If there is no such option in the online subsystem, what else is the intended way to achieve this?

Hi ,

Have you tried using the Read/Write leaderboard options?


Hello , please read my original question again. I am not asking for how to read one single leaderboard entry, as the BP node you suggested would do. Instead I need to read a range of multiple values, e.g. 5 before my current user, and 5 afterwards. Or even the whole leaderboard at once. I know that these features are supported by the Steam SDK!

While I believe the Read Leaderboard node would work (run a forloop to check the integers before and after the original position), I have found some posts about leaderboards that may prove helpful:

Please check these out and see if their responses are helpful for what you need.

For the records: I ended up with using the Steam SDK directly. Do you see any drawbacks in that approach?

Hi ,

As far as I am aware directly accessing the Steam SDK should not be a problem. If you continue having errors with this please post back here and I’ll be happy to look into the error further.

Ok thanks. So far direct access to Steam SDK seems to work fine …

Hello ,
I need to show a leaderboard too. How did you manage to get the full leaderboard by accessing the Steam SDK directly?

Thanks in advance.

From what I can tell so far it seems to be sufficient to add “Steamworks” to the dependencies in your Build.cs file:

    PublicDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemSteam", "OnlineSubsystemUtils", "Steamworks" });
    PrivateDependencyModuleNames.AddRange(new string[] { "Steamworks" });
    AddEngineThirdPartyPrivateStaticDependencies(Target, "Steamworks");

Then include the Steam header file in your code:

#include "ThirdParty/Steamworks/Steamv132/sdk/public/steam/steam_api.h"

For the rest: just checkout the Steamworks SDK docs :slight_smile:

Nice, thanks a lot! :slight_smile: