Are there accurate instructions for enabling Steamworks in a Windows Build

I am trying to prepare a Unreal project for release on the Steam store. The Steam side is prepared in that I have a valid App ID, Depot ID, etc. I am unable to get the Steam api to initialize properly in a packaged build however. It fails with the following errors on launch:


LogOnline:Display: STEAM: Loading Steam SDK 1.37
LogOnline:Warning: STEAM: Steamworks: SteamUtils() failed!
LogOnline:Warning: STEAM: Steamworks: SteamUser() failed!
LogOnline:Warning: STEAM: Steamworks: SteamFriends() failed!
LogOnline:Warning: STEAM: Steamworks: SteamRemoteStorage() failed!
LogOnline:Warning: STEAM: Steamworks: SteamUserStats() failed!
LogOnline:Warning: STEAM: Steamworks: SteamMatchmakingServers() failed!
LogOnline:Warning: STEAM: Steamworks: SteamApps() failed!
LogOnline:Warning: STEAM: Steamworks: SteamNetworking() failed!
LogOnline:Warning: STEAM: Steamworks: SteamMatchmaking() failed!
LogOnline:Display: STEAM: OnlineSubsystemSteam::Shutdown()
LogOnline:Warning: STEAM: Steam API failed to initialize!
LogOnline:Display: STEAM: OnlineSubsystemSteam::Shutdown()

I am building from a source build from the 4.12.5 branch. I followed the steps from the documentation here: Online Subsystem Steam Interface in Unreal Engine | Unreal Engine 5.1 Documentation

Those steps included getting the latest SDK (1.37) and modifying the engine to include that version of the SDK. There seems to be some slightly different steps from a community member here: A new, community-hosted Unreal Engine Wiki - Announcements - Epic Developer Community Forums

Neither set of instructions has gotten me past this error. Are there more up to date instructions available? I’ve added the needed changes to DefaultEngine.ini, the build.cs file, and the target.cs file.

Is there anything else I need to do to get the Steam API to initialize properly?

Thanks!

Hi Bill,

I’ve assigned this issue to one of our Steam experts who will be able to look into this issue for you. We know time is of essence for the team, so I wanted to let you know we’ve received the issue and that it is moving through our support pipeline.

Best,

Josh

Hi Bill,

Does your packaged build use the Shipping configuration? In Debug and Development builds, we automatically write out the steam_appid.txt file next to the game executable (this is where Steam expects it to be), but we don’t do this in shipping, since we’re assuming that would be installed from Steam, which works like you said.

If you’re in Shipping, try creating the steam_appid.txt file yourself and see if that works - it just contains your Steam AppID and nothing else.

Just an update on this. Testing the application after installing it via Steam itself seems to prevent the issue from occurring. Is there no way to test the Steam integration before pushing a build to steam itself?

I’m looking forward to Epic’s response as well, but did find this step by step tutorial in case you hadn’t seen it yet. It is a bit old, running on 4.9.

Hi Bart,

The problem is in a Development build. Where does the system find the AppID? Its been specified in the DefaultEngine.ini file. Will the steam_appid file contain that AppID or the default ‘480’ id?

Hi Bill,

We are marking this report as Resolved for tracking purposes. If you would like to continue investigating the issue, just post a comment to reopen the report.

Thanks,

TJ

Hi Bill,

It should contain the value you’ve assigned to SteamDevAppId in your DefaultEngine.ini config file. Can you check that file is written out and the contents are correct by setting a breakpoint in FOnlineSubsystemSteam::Init() after ConfigureSteamInitDevOptions is called?