[BUG] Steam achievement progress instant unlock

Hello, we have problems with the achievement system between UE4 and Steam.

We have followed this link images to create stats and achievements: [link text][1]

We have also added achievements to “DefaultEngine.ini” and Steam overlay is visible when we run the build game or in “Standalone Game”.

We added achievements and stats to Steamworks as the following pictures:

Any error in them?

From our PlayerController we increased the initial value (0)+1, and try to write the result. However, even the achievement of the image needs 100 attempts, is unlocked in the first try.

Thx ;).

Not too familiar with steam, but you have your minimum value for the acheivment as Zero, so, when you add +1 its already above 0 and they get it.
Or thats what it seems like to me.

It’s the same for me, the progress just gets set to 100+whatever I’m incrementing

Hi all,

I’m trying to get our support team a Steamworks account we can use to test this with the Steamworks tool. I will let you know once we’re able to investigate further.

Hi,

It looks like Incremental Achievements work differently than regular Achievements. The WriteAchievements node will unlock the achievement when it is run. The Progress input is a bit misleading; that actually refers to a function in the engine that is not currently implemented in the Steam OSS, SteamUserStats()->IndicateAchievementProgress() for things like showing a progress bar.

Instead, you want to update the Stat itself. In Blueprints, you can access this using the ReadLeaderboardInteger and WriteLeaderboardInteger nodes. Once the value you feed it reaches the max limit you’ve set on the Achievement, it will automatically unlock (as long as the Stat and Achievement are appropriately linked; it looks like yours are).

Hope that helps!

1 Like

Today we trying to read and write “stats” using ReadLeaderboardInteger and WriteLeaderboardInteger, but the “ReadLeaderboardInteger” node always fails and WriteLeaderboardInteger returns TRUE, but nothing has changed.

Stat “1_0” for Achievement “1/0” and stat “1_1” for Achievement “1/1”, Write and Read Leaderboard Blueprints, GameOuput, DefaultEngine.ini and Steam Achievement status:

Any advice? Thx.

Can you provide the logs from your game after you run WriteLeaderboardInteger and ReadLeaderboardIngeger?

Of course, Where I can find them?
“C:\Users[MyUser]\AppData\Roaming\Unreal Engine\AutomationTool\Logs”?

I apologize, in a Shipping build it won’t generate the logs I need. I’ll keep digging and let you know. Right now I’m seeing a few reports from people who are seeing a potential problem in the Leaderboard code, and I’m looking into that now. Here’s a reference that may be helpful:

I’ll post back here when I get more info.

I can try in Standalone Game with my SteamAppId as SteamDepAppId.

¿Logs are also generated in this way?

PD: mmmm, same name for Stat and Achievement with ‘_’ for key-value pair? I’ll try and tell you something.

SUCCESS!
Stats Behaviour is very strange.

As I read the [link][1], I followed these steps:

-Steam Stat name = mystatname_mystatname

Yes, twice Stat name separated by underscore. Careful not to use more than one underscore.

-Then in Steam Achievement:

Steam Achievement name = myachievementname

Here it does not matter if it is different from the Stat name.

-Stat Blueprint name = mystatname:

Without underscore , because UE4 adds subsequently and forms mystatname_mystatname string.

First of all, get the CacheAchievements to read and write Stats.

It seems to work. Anything else?

We have noticed that if we make several “WriteLeaderboardInteger” (max 5) takes a long time to update the status of Stats.

Hey Ben,
Any updates on this topic?

Hi ooParanoia,

The information provided below is all we have to go on right now.

The Progress input is a bit
misleading; that actually refers to a
function in the engine that is not
currently implemented in the Steam
OSS,
SteamUserStats()->IndicateAchievementProgress()
for things like showing a progress
bar.

does this mean the write achievement progress node cannot just show the achievement progress?
After some testing when progress=0 nothing happens, when progress anything>0 it just unlocks the achievement (which is tied to stats/leaderboard correctly).

Using blueprints only here.

Hello Lazy Games,

I’d recommend looking at our Unreal Match 3 Project. It is done in blueprints, and has a working achievement system, including the Get Cached Achievement Progress node functioning as expected. Looking into that project should give you an idea of how to get your setup in working order.

Have a great day

Using “Write Leaderboard Integer” as a workaround (for the “Progress” input on “Write Achievement Progress” being broken), does work, provided you also use the workaround required for the “Write Leaderboard Integer” node (i.e. the doubled up stat name), BUT DO NOTE: it only works up to a value of 10, oddly. e.g. if you write the stat each time “Item X” is used, with a goal of 20 times, it successfully writes the stat for the first 10 times, but after that fails. I explained it better here.

Hey guys, I’ve tried that but looks like I’ve been unsuccessful with stats. The other achievements work just fine!
Here’s my BP:

The API name of the stat on Steam is int2_int2

WOO GOT IT TO WORK!!

Hello everyone. I too ran into this problem. Anyway I got it to work. I made a video about it to show step by step here. Progressive Steam Achievements via UE4 Blueprints - YouTube

I am completely stomped… I just can’t seem to get this to work in my game. Could you kindly post your DefaultEngine.ini related to this?

It appears that if the stats are empty it will return a fail on ReadLeaderboardInteger. When I did a WriteLeaderboardInteger, it succeeded!!!
Thank you so much for sharing your answer!!