FULL TUTORIAL to add SIMPLE and PROGRESSIVE steam achievements in UE5 with BLUEPRINTS WITHOUT any paid plugins.

As previously stated, if you were to send Write Achievement Progress for multiple Achievements in a short time (like you got 100 kills, beat the level, and leveled up at the same time → 3 Achievements), then only 1 of them would unlock, the rest would get stuck in limbo.

This is one example of an Achievement Unlock Queue system.

In your GameInstance add the following Variables:
String Array where we’ll add Achievement IDs to unlock
and a Bool to let us know it’s in progress
Variables

Then write this system:


Whenever you call to unlock an ID, it’s added to the Array (in the back).

Then we check wether it’s already isUnlockingAchievements (we don’t need to proceed for Achievement nr2 or nr3 as they are already put next in queue in the Array).

Cache Achievements once, then check the Length of Array. If we have 0 then we are done, and we reset the isUnlockingAchievements. If it’s > 0, then we go ahead and Write Achievement Progress for Array[0] and Remove Array[0]. Then we Repeat that cycle until we run out of Array IDs.

Testing

This is how you call to Unlock Achievements.
They’ll be unlocked one after another.

4 Likes