[BUG] Steam achievement progress instant unlock

Hello, we have problems with 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 build game or in “Standalone Game”.

We added achievements and stats to Steamworks as following pictures:

Any error in them?

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

Thx ;).

Not too familiar with steam, but you have your minimum value for 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 same for me, 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 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. WriteAchievements node will unlock achievement when it is run. Progress input is a bit misleading; that actually refers to a function in engine that is not currently implemented in Steam OSS, SteamUserStats()->IndicateAchievementProgress() for things like showing a progress bar.

Instead, you want to update Stat itself. In Blueprints, you can access this using ReadLeaderboardInteger and WriteLeaderboardInteger nodes. Once value you feed it reaches max limit you’ve set on Achievement, it will automatically unlock (as long as 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 “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 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 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 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 [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 Stat name.

-Stat Blueprint name = mystatname:

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

First of all, get 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 status of Stats.

Hey ,
Any updates on this topic?

Hi ooParanoia,

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

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

does this mean write achievement progress node cannot just show achievement progress?
After some testing when progress=0 nothing happens, when progress anything>0 it just unlocks 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 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 “Progress” input on “Write Achievement Progress” being broken), does work, provided you also use workaround required for “Write Leaderboard Integer” node (i.e. doubled up stat name), BUT DO NOTE: it only works up to a value of 10, oddly. e.g. if you write stat each time “Item X” is used, with a goal of 20 times, it successfully writes stat for 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. other achievements work just fine!
Here’s my BP:

API name of 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 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!!