cancel
Showing results for 
Search instead for 
Did you mean: 

Achievements and Leaderboards with Unreal Engine 5.4.4

2SsockS
Honored Guest

Background:

I have a rift and quest app in the Meta Store (they are grouped together). I created Achievements and Leaderboards in the Meta Horizons Dashboard. Also requested and gotten permission in Data Use Checkup for User ID, User Profile and Deep Linking (all which appeared to be required). Using UE 5.4.4 from Epic launcher and installed MetaXR and MetaXR Platform plugins in the project's plugin folder. Both are enabled.

The MetaXR Platform appears to get initialized (in the game instance, the event OvrPlatformSubsystemStarted gets called w/ a boolean set to true). Immediately after Start Message Pump then Entitlement Get Is Viewer Entitled and Get User Access Token are called, the latter two return on success.

Problem:

The problem is the documentation for updating Achievements and Leaderboards. It appears the documentation instructs one to use the generic Online nodes: Get Cached Achievement Description, Get Cached Achievement Progress, Write Achievement Progress, Read Leaderboard Integer and Write Leaderboard Integer. Unfortunately they do nothing. Either return errors or say it's fine. Regardless, the Dashboard never gets updated.

Solution?

I then started looking at the nodes from the OVR Platform instead: Leaderboard Get Enteries, Fetch Leaderboard Entry Page, Achievements Unlock, Leaderboard Write Entry and Achievements Add Count (for counting achievements). This seems to work mostly.  Leaderboards can be updated and read (e.g. at start) and Simple Achievements can be unlocked. Count Achievements don't appear to unlock when Target value is reached.

Questions:

  1. Which nodes are suppose to be used: OVR Platform or generic Online? Are both depreciated? if the generic Online nodes, is there another required (subsystem) plugin? I tried to enable the old SubsystemOculus plugin, but that caused conflicts with MetaXR Platform. Is documentation out of date? 
  2. Achievements Add Count takes the count (int64) and uses that as a new value or does it actually add to the current value of the achievement? It appears to use the new value, so the name of this node is confusing.
  3. Do Count Achievements need to be unlocked explicitly once Target value is met? Meta Horizon doesn't do this automatically?
  4. Achievements and Leaderboards are all using Client Authorization. Is this correct? Should Server Authorization methods be looked at instead?
  5. Since the Quest and Rift apps are grouped, does that mean they will share Leaderboards or not? Will unlocked achievements be tied to the user, app or device?
  6. Any sample code/blueprints showing a working Achievement and/or Leadership for Meta Horizon in UE 5.4+?

Thank you for any ideas/answers.

1 REPLY 1

2SsockS
Honored Guest

Some answers....

  1. Still not clear what is depreciated and what is not
  2. Achievements Add Count does add the Count fed in. Adjusted the logic so the delta Count is fed in.
  3. Once the Target value is reached, the count Achievement does unlock automatically.
  4. Since i'm not using POST events, Client Authorization works fine.
  5. Yes, they share Leaderboard and Achievements and seems to be tied to the user.
  6. None that i found.

Any further clarification on 1. and 6. would be useful.