Thanks for the writeup, a few notes.
Stats
This only really works well if you have 1 Stat. If you have multiple Stats (let’s say Kills, Gold, Level) and you try to update them at the same time (at end of level) only 1 will Succeed, the rest won’t even Fail, just nothing will happen.
While it seems to Succeed in Writing a Stat this way, for me the Read Leaderboard Integer doesn’t work (doesn’t Fail, just nothing happens). The reason I found out was: in order to READ the Stat, it needs a Leaderboard with the Same Name as the Stat but without “_Stat”. So for instance Stat = “Kills_Kills” and Leaderboard = “Kills”.
ALSO the Leaderboard needs to be Descending Numeric.
THEN the Read Leaderboard Integer works…
It’s infuriating to work this way instead of having actual Steam Stats / Achievement nodes exposed in Blueprint
Achievements
Same as above, let’s say you finished a Level = 1 Achievement, but also beat a fast time = 1 Achievement, this should Unlock 2 Achievements. But only 1 will unlock. So you need to build a custom queue system…
I suggest putting the Achievement handling in GameInstance so it works even though you exit a level, because if you create a Queue and update Stats and Unlock multiple Achievements you could be waiting for several seconds before the process completes.
It’s so ridiculously obtuse and complex in Unreal compared to Unity, this whole process is 2 lines of code in Unity and it works every time, no need for queueing, no stats ever fail, I can unlock multiple Achievements at the same time… and no word from UE Devs in over 7 years. Just wow