[Tutorial] Steam Achievements

Is it solved?

uhh step 4 doesn’t show anything

1 Like

You know now the asnwer? i have the same problem

I have the same problem in 4.25, someone found a solution?

My CacheAchievements node fails. I have tried adding a delay to make sure Steam initializes first. The overlay appears correctly in the bottom right. Any idea what could be wrong?

Edit:

My DefaultEngine.ini
image

My blueprints:

I have tried using AppID 480 and my own AppID, but in both cases CacheAchievements fails.

Jackson

Could be a number of problem but here’s a couple of things which had me on a wild goose chase for several hours:

1: The guide tells you to add the following line of code:

DynamicallyLoadedModuleNames.Add(“OnlineSubsystemSteam”);

to the file

YourGame.build.cs

For some reason, removing that line (or simply not adding it in the first place) made the cache work for me.

2:
If you are connected to steam but the achievements won’t fire:
Remove the “” when you add the achievements in your DefaultEngine.ini.

So,

Achievement_0_Id=“ACH_WIN_ONE_GAME”

becomes

Achievement_0_Id=ACH_WIN_ONE_GAME

These were the two things that tripped me up, hopefully these tips can work for you as well.

Cheers,
P

Thanks for the comment, but unfortunately no success.

DynamicallyLoadedModuleNames.Add(“OnlineSubsystemSteam”);

is not in my YourGame.build.cs file, and I can’t even test the achievements firing yet because the cache blueprint node fails.

Cheers

I have notice the Unreal Engine tutorial seems to mention adding Steamworks SDK to ‘your project’s’ path.


Curious. Does this tutorial require a Github engine build to unlock achievements? Steam overlay will work in PIE via UE 5.1, granted it will crash the game/editor when I try to toggle the overlay.

The Launcher version of UE 5.1 uses Steam SDK v1.53. When I package my game and upload to Steam, it will show overlay and I can activate without difficulty, yet none of the achievements will unlock no matter what I do.

Thus far, I have:

  • Followed the UE tutorial on Steamworks
  • Followed your tutorial for Achievements
  • Enabled OnlineSubsystemSteam plugin.
  • Installed and enabled the SubsystemConfigurator plugin.

All to no avail regarding Steam Achievements.

What exactly am I doing wrong?

UDPATE: I found out the problem behind the crash. I forgot to make use of the critical Steam Overlay interface call from the Steamworks Overlay plugin (of which I created and is now available on the marketplace as of last year).

I also managed to get the achievements functions activating, but it is not actually triggering anything.

Seems like Steam Achievements are botched in Unreal Engine 5. IDs no longer exist in Steamworks and this could indicate to why none are triggering.

Does this work for UE5?

Apparently not. I am still stumped in trying to find out how to fix it in UE5.1, even despite following the tutorial for launcher builds. A similar issue happened with UE4 years ago and the only way I recalled fixing it required I downloaded a custom engine build just to do so. Considering how heavier UE5’s custom builds are and with my morale and trust with Epic Games butchered, I simply lack the patience to go through such an uphill battle again, much less solely to get Steam achievements to work.

At this point, I’m just going to have to consider that journey forfeit and just avoid achievements for my remaining UE games entirely.

Maybe Godot or some other engine will fair better.

PS: It is also not a surprise that Epic Games hates Valve and their Steam platform, so perhaps this could play a factor into why there is increasing less care for Steam’s features now. They have Epic Games Store now, that’s where their priorities are at.

I was able to get it to work it was actually really easy once I figured it out.

1 activate online subsystem steam plug-in.
2 paste this into your DefaultEngine.ini but replace the appId with your app Id and the names of the achievements with your achievements names. (make sure you DO NOT have any " quotation marks before or after the names!)

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=2273220
Achievement_0_Id=Died_ACH
Achievement_1_Id=PortalUnlocked
Achievement_2_Id=CarlaHelped
Achievement_3_Id=MileHigh
Achievement_4_Id=GideonHelped
Achievement_5_Id=Indomitable
Achievement_6_Id=Unstoppable
Achievement_7_Id=Impregnable
Achievement_8_Id=Completionist
Achievement_9_Id=DefeatFrank
Achievement_10_Id=DefeatFrankOnInsane
Achievement_11_Id=AncientKill
Achievement_12_Id=1kKill
Achievement_13_Id=YinHelped
Achievement_14_Id=PhaseHelped
Achievement_15_Id=Unassailable
Achievement_16_Id=Insurmountable
Achievement_17_Id=Psychotic
Achievement_18_Id=Test_ACH
; If using Sessions
; bInitServerOnClient=true

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"

3 You should now have a Steam overlay when playing in stand alone mode if not download and activate the free steam advanced sessions plugin.

4 use the “cache achievements” BP node plugged into get player controller and “write Achievement progress” node with the name your ID= like Died_ACH to make your achievements work.

5 Jump for joy when Steam shows your achievement popup

Hope that helps if you have any questions don’t hesitate to ask!

5 Likes

Just to clarify, this solution is for UE 5.1, yes? Did you had to replace any DLLs for Steamworks in the UE4 directory for launcher builds?

5.0.3
But Should work for 5.1 as well and if not installing the Steam advanced sessions plugin will fix it.

And no.
Sticking any SDK from Steam in your project will likely break it.

You misunderstood what I said. Did you had to replace any of the DLLs for Steamworks inside the Unreal Engine directory for launcher ENGINE builds? Nothing to do with the game projects.

Even the UDN documentation states to do this if using a launcher engine build.

no I didn’t

I see… I will try again on my end.

1 Like

:+1:

I did move the DLLs over in 5.3 and it was working for me.

When I test in the viewport to make sure my achievements are working, I can trigger them, but only once per editor session. What’s that about? How can I reset them so they trigger every time (so I can repeatedly ensure they’re still working)?

Edit: Also, after packaging–is there any way to see the Steam overlay or test achievements? I try my packaged build and can’t access Steam through it. Is overlay/achievement testing available exclusively in the editor and, eventually, once the game is properly uploaded to Steam?