Steam Overlay Opens On Player Join

I’m using UE 4.7.2 (from GitHub) with Steam SDK v1.3.2. Whenever a remote client joins session, steam overlay opens up over game on listen server’s machine. I don’t think I’m doing anything particularly odd, and I can’t seem to figure out where this would be getting triggered from. Anyone have any ideas?

Hi BrainDx,

Did you integrate Steamworks v1.32 into engine yourself? Currently, 1.32 is not supported (it’s being integrated into 4.8).

Yeah, I followed instructions in the docs. It was seemingly very straight forward. Unfortunately, I don’t see any link to download an older version of SDK. Everything works fine except overlay opening on player join. Is there really something that would be different from v1.30 to v1.32 in this regard? For record, I’ve tried it using both bUsesPresence set to true and false, so it doesn’t seem to be a Lobby vs. older sessions thing. None of calls to steam overlay opening functions are called from UE (I’ve set breakpoints), so I don’t know what would be triggering this.

Well, I was able to get my hands on v1.30 by modifying link to latest SDK (changing filename to v1.30). problem went away, so I guess that means that this is, in fact, an issue with v1.32.

Thanks for testing that. I’ve let developers know, and they’re looking into it for when 1.32 is integrated.

Well that certainly is a bizarre behavior.

We didn’t upgrade to 1.32 before 4.7.2 release but have since then. We will try to repro this locally.

In meantime, did you catch all locations in the .cpp and .cs files where version of Steam is stored/referenced? Searching for “Steamv130” in those files should reveal all of that.

Did you make sure to replace all DLLs (both 32/64) in third party directory in binaries (Engine\Binaries\ThirdParty\Steamworks\Steamv132\Win64 and Win32)? redist directories of SDK don’t always include every one, so you have to go to your latest copy of Steam client and copy out missing files.

I’ve seen weird but “stable” behaviors sometimes when Steam isn’t updated properly. Typically you get a weird function linkage error, but maybe something weird caused it to manifest this way.

We never call “open external UI” in our engine code paths, it would have to be explicitly called by game code otherwise. All FOnlineExternalUISteam::ShowXXX(), but I imagine simply putting a breakpoint in these has already been tried. edit I didn’t see your response when I composed this, so I see you’ve done this.

No problem. I really appreciate reply. I know you guys are always super busy and that this likely isn’t an issue with your code, so thanks for taking time.

Yeah, I modified WinPlatform.Automation.cs, UEBuildConfiguration.cs, and OnlineSubsystemSteamPrivatePCH.h with new version. I copied DLLs from SDK into v132 directory, both Win32 and Win64, and grabbed other DLLs from my local Steam installation. Consistently seeing an overlay popup on host when a remote client connects. Very strange.

Is there a way you could also engage Valve in this? Maybe they have some logging you can turn on to see IPCs with Steam client. Or some debugging trick to reveal callstack. If you can switch back to 1.30 and not exhibit this problem, I’m not sure what engine is doing wrong.

Well, our project isn’t yet green lit so I don’t think we have access to any support from Valve. problem definitely goes away with 1.30.