[Tutorial] Steam Achievements

There is no single tutorial for such things. All of the information can be found across the internet.

From what i remember,you need to apply and have a very nearly completed game, of decent quality. there are certain restrictions and like a $99 game submission fee per game, you also need to be accepted. The fee is also non-refundable.

O.k. thank you :slight_smile:

Please sharing working project! :eek:

Great Thread!
However whe have an issue with the “progress” value of achievements. They unlock instantly if we increase the progress value by one, even the achievement needs 100 attempts.
https://answers.unrealengine.com/questions/323899/bug-steam-achievement-progress-instant-unlock.html

Is there anyway I can reset steam achievements? Steam seems to save the achievement ID to your profile so even if I delete the achievement and add another back in it’s place, I have still have that unlocked.

Sending (-1) to Progress (Write Achievement Progress).

This works perfect inside editor by playing in Standalone Game. However when uploading to Steam my achievements don’t get unlocked when playing through Steam. Can it be because the game is not publicly released yet? Or maybe while the game is packaged, the content becomes a .pak file, something changes? Can anyone help please?

Hey there, thank you this really helped me out!

One question though, as steam set up is really quite unknown, Do you have anything similar regarding leaderboards?
Trying to set one up now and I really just need some guidance.

Hello, I’d like to highlight some stuff that are not mentioned: if you change
define STEAM_SDK_VER TEXT(“SteamvXXX”) at OnlineSubsystemSteam\Private\OnlineSubsystemSteamPrivatePCH.h to something else, you need to also go at Steamworks.build.cs to alter the sdk version there as well because it does not get grabbed automatically and you can’t generate project files.

Also, a question: On the sdk I see linux32 and linux64 but on Unreal I see only Linux. What do I do now? (I have copied the 32bit binaries just to be sure)

A couple of other things worth mentioning here:

  1. The IDs in the INI file MUST start at 0, else none of them will work (I had a test achievement at ID 0 first for testing - it worked fine along with all the other achievements - then I deleted the test achievement at ID 0 (from Steam and from the INI file), and none of them worked until I reassigned them all starting from zero.)
  2. The “Progress” input on the “Write Achievement Progress” doesn’t work… (i.e. if you have a stat/achievement set up as 0-100, even if you write the achievement with progress=1.0 it will mark the achievement as unlocked straight away).

For the second one, there is a limited workaround - you can use the “Write Leaderboard Integer” node to increment the stat for the achievement, and it will unlock once it reaches the max. However, the “Write Leaderboard Integer” node has significant problems which remain unfixed - you have to double up the stat name in steamworks (i.e. StatName01_StatName01), and also it FORCES it to ADD your value to the existing stat. That is OK in this case, but there is another problem - it stops working once the stat gets above 10 for some reason (I had an achievement “use the thing 50 times” and incremented it every time they “use the thing”, and it successfully writes up til 10 and then fails from then on. So this workaround only works for achievements where you are doing something less than 10 times.

In the end I gave up on the progress achievements and just unlock the achievement when they reach the value (i.e. they can’t tell how close they are to reaching the achievement).

What happens if players modify the ini file?

Thanks, you help me figure out what was broken with my achievements.
Not only the IDs in the INI file must start at ID 0, but you must keep the others achievements with their ID increments of 1.

I removed an achievement and had something like this in my INI file : 0-1-2-4-5-6.
0-1-2 was working, but 4-5-6 stopped working.
Renaming the id 0-1-2-3-4-5 fix my broken achievements.

Achievement_0_Id=“ACH_WIN_ONE_GAME”
Achievement_1_Id=“ACH_WIN_100_GAMES”
Achievement_2_Id=“ACH_TRAVEL_FAR_ACCUM”

after 31 achievements the list begin new from 1

2/0 NEW_ACHIEVEMENT_2_0
2/1 NEW_ACHIEVEMENT_2_1

what is the code for this?

Achievement_2_1_Id=“ACH_WIN_100_GAMES” ?

Excellent tutorial! If the next one will be how to make items ready for Steam Workshop it will be awesome

Hi, does anyone knows how to delete/reset steam the achievements and stats ?

I am having the exact same problem! Have you found the solution by any ?

This tutorial here has helped me: https://youtu.be/ATdkoeSJ2WA

I saw it! Many times actually! Maybe I mIm missing something. I also double checked the version, for 4.20 the sdk is 1.39, but still it doesn’t work.

It will be weird (achievements sporadically working or not) until you actually publish the game. I wrote Steam about it during my last project.

I have the same problem, everything works offline, but when uploading to Steam stops working, could you solve it?