[4.8.3] Shipping build with steam

We have a problem when packaging a project with Project Launcher and doing a shipping build, steam api doesn’t seem to fire.

Took a look at a past issue and attempted to make changes outlined in there with steam_appid.txt in root folder, but that did not help either.

When running game in stand-alone, steam overlay shows up and API fires properly. Shipping on other hand does not.

Tried to reproduce this in a blank project, sure enough it also doesn’t work.

Blank Project has everything setup to work with steam, along with steam_appid.txt in staged folder.

Can you let us know why this blank project also does not trigger steam overlay?

(Process used to create shipping build)

I have also been able to reproduce this in 4.9.2

You can get project here

Hi ,

I’m seeing same thing in a Shipping Win64 build in your project. I have a couple of questions that may help narrow down cause:

  1. Did you build your engine from source? If so, did you adjust OnlineSubsystemSteamPrivatePCH.h to reference SDK version? Online Subsystem Steam Interface in Unreal Engine | Unreal Engine 5.1 Documentation
  2. Which Steam SDK are you using? 4.9.2 supports 1.32.

Incidentally, I tried this by adding .exe to Steam using “Add a Non-Steam Game to My Library” option from Steam’s Games menu, and playing through it shows Steam overlay as expected.

Hey ,

  1. No, did not get engine from source, just using one from EpicLauncher
  2. Using built-in 1.32, no modifications done to steam SDK, just out of box :slight_smile:

We tried pushing this build through steam on a demo appid that we use for testing, but even though steam said “Username in-game Demo Game” overlay did not show up (which I can only assume that means steam api does not get initialized).

Do we have to build engine from source to get this working?

You shouldn’t have to, no. I’ll keep digging into this to see if I can figure out what’s going on.

It feels like settings in DefaultEngine.ini file get “discarded” when online subsystem comes into play.

With a Development build, DefaultEngine.ini is present and does kick in (which I’m assuming is why it only works in development).

I’m throwing ideas really :stuck_out_tongue:

Hey ,

I got an update that I’d like to run by you. So, as I was scouring any and all steam related ue4 resources, I came across another entry that is required in DefaultEngine.ini

Adding:
SteamAppId=#####

to:

[OnlineSubsystemSteam]
    SteamAppId=#####
    SteamDevAppId=#####

Makes steam overlay work as long as you push build through steam.

We still need to run some tests on API implementation to make sure it does get initialized and this was not just a fluke.

However, with just a plain shipping build (even with steam up) overlay still does not trigger.

I will update this thread with more information as I keep running tests. Let me know if you come across anything.

Hey ,

It appears this is simply a bug. We’re aware of this behavior on Mac, but I did not know it also happened on PC. I’ve created a bug report for issue (UE-23238), and I’ll post here if I see any update on it.

For now, with project you gave me to look over, as well as projects I created here, as long as you open .exe through Steam client, overlay should appear as expected.

I’m not certain why you needed to add SteamAppId to DefaultEngine.ini to get it working. Neither should make any difference in a shipping build, and I was able to get this working through Steam client without that, and without steam_appid.txt file. Incidentally, steam_appid.txt is a development only thing. Once you are properly uploaded and instrumenting your builds with Valve and launch from Steam client, you won’t need that text file unless you’re distributing dedicated server executables: