4.13 Steam Setup Not Working

Hi,

I’m having trouble getting unreal engine 4.13 to host a session. The project was previously working fine in 4.12.5.

As a test I started a new blank template from 4.12.5, Adding just the steam config in the engine file and played in Standalone. The steam overlay was visible on shift+tab. However on 4.13 doing the same processes it is not, am I missing a setting or something? Or is this just a bug?

Thanks In Advance

You need to do two things in 4.13.

First, add this to your defaultengine.ini file:

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver")
 
[OnlineSubsystem]
DefaultPlatformService=Steam
PollingIntervalInMs=20
 
[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480
GameServerQueryPort=27015
bRelaunchInSteam=false
GameVersion=1.0.0.0
bVACEnabled=1
bAllowP2PPacketRelay=true
P2PConnectionTimeout=90
 
[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="/Script/OnlineSubsystemSteam.SteamNetConnection"

Secondly:

  • In UE4, go to Edit->Plugins
  • Select, Online Platform
  • Enable, Online Subsystem Steam
  • Restart Editor
  • Package Game / Run standalone

Steam should work.

1 Like

This is new change with 4.13.

You can see the patch notes here:

https://docs.unrealengine.com/latest/INT/Support/Builds/ReleaseNotes/2016/4_13/index.html

Specifically, Online notes:

https://docs.unrealengine.com/latest/INT/Support/Builds/ReleaseNotes/2016/4_13/index.html#online

New: Online Subsystem modules have been moved to Plugins, out of Engine/Source. Engine's dependency on OnlineSubsystem modules have been removed, in some places replaced with a new interface UOnlineEngineInterface for a small subset of features Engine requires. UOnlineEngineInterface is implemented in UOnlineEngineInterfaceImpl. FUniqueNetId and FUniqueNetIdWrapper have been promoted to a basic type in core, but they are still opaque types and must be created by online subsystems.

Are you on a Mac or PC?

Mac has a known issue where Steam itself has a bug that prevents the overlay from showing.

If you are on a PC, there is a setting you may have turned off.

In Steam:

Steam->Settings->In-Game->Enable the Steam overlay while in-game.

Make sure that is checked.

Hi there.

Any ideas what to do if the steps above does not work? It gives no errors but Steam overlay just won’t show up when launching the game in standalone mode. Steam was running the whole time (and I was logged in).

I’m using Basic Code project as base for the project and this is the first thing I’m trying to configure to work.

I’m on PC and that sure is checked. Overlay is working on games I got on library and I can chat with friends while playing.

Is the steps mentioned above everything that is required or am I missing some pre-step that is necessary before I add the DefaultEngine and plugin enable? There should be the “Press Shift+Tab…” (or something along those lines) popup when I launch the standalone right?

Hello again.

After good night sleep I tried this again and now it works. I really don’t know what changed but maybe there was something that required computer restart for this to work.

Thank you for your patience.

Hey ,

Can you do me a favor and check in your DefaultEngine.ini file and see if there is any spaces before or in:

[/Script/Engine.GameEngine]
[OnlineSubsystem]
[OnlineSubsystemSteam]
[/Script/OnlineSubsystemSteam.SteamNetDriver]

As a visual reference:

So with 4.13 introducing the plugin, does that mean that technically the build.cs changes for the OnlineSubsytem dependencies aren’t needed any more? (just going by the release note you pasted above). I’m also struggling to get a multiplayer connection working over Steam in 4.13 but I think it’s a different issue (Unable to connect to LAN match over steam after successful session join).

Are you testing on two different computers with two different Steam accounts? Steam doesn’t like hosting a game and joining the game with two clients, on one desktop, and will outright fail at doing so.

Thanks for the reply - yes two different accounts / separate machines - I’ve also discovered now that it works fine over Internet so it’s just LAN that’s the problem (even via direct IP) - full details there (any help appreciated, very close to Steam release, trying not to hijack this thread :slight_smile: )

Thank you for this, Was just about to start crying lol

We are not seeing this issue on our end.

If you want to, you can send me a copy of your project and I can take a second look. If you want to keep it private, you can send me a private message with the link on the forums.

Hello everybody,

Here is an example project in 4.13.1 that works with Steam. I have tested internally and we are able to join and run around together while Steam is active in the game, under “Space Wars” because the default AppId.

AH484873

A few notes about things I have noticed regarding other users issues:

Do not use “GetPlayerController” element 0 for everything. Even if it often works, it is a bad idea in Multiplayer games as sometimes, it will choose a Player Controller that is not yours, because it always chooses 0. You can instead rely on your Player Controller or Character classes to get direct reference to the Player Controller class that your Character is using.

Don’t assume that deleting or only using portions of tutorials will work. If its included in an example or tutorial, follow the instruction completely.

If you are having an issue, expeirment with why it’s happening before assuming the engine is broken. Something like Steam has been integrated for a long time and the chances of something core in that subsystem breaking are pretty slim. Here are the major Steam issues at the moment, none of which would block creating a game:

https://issues.unrealengine.com/issue/UE-24791

https://issues.unrealengine.com/issue/UE-36879

There is also a community update to the Steam Authority Ticket response, which is currently not working. The pull request is here: (You must be signed up for GitHub with UnrealEngine as one of your organizations.[HERE][4] is how to do that.)

[https://github.com/EpicGames/UnrealEngine/pull/2135][5]

[4]:
[5]: https://github.com/EpicGames/UnrealEngine/pull/2135

Hey Langley, so I downloaded your version and copied it over to my project. I get the steam overlay and everything. But every time I create a session, it loads the new level for a second and then kicks me back to the menu level. After that it tell’s me that it fail’s to create a game and i can’t join a game either =/
Any idea would could cause that?

I tried this today and i am having same issues on version 4.13.2 when i checked logs i found that there is some issue with Steam SDK

LogOnline:Display: STEAM: Loading Steam SDK 1.32
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()

Can you add any details on the build.cs changes? I see shooter game now refers to OnlineSubsystemNull explicitly in it’s build.cs. Does that mean, for source builds, we can no longer switch between the Null subsystem and the Steam subsystem with config only, and we now also need to change that file and do a rebuild?

Sounds like you are trying to host and join the game an the same computer, with the same Steam account.

Is that right?

Also, can you post the server logs. That should give more information.

Hey, does UE-36879 actually happen if the bandwidth limits in the config have been increased? The default limits are really low.

I don’t know. Because the issue is backlogged there isn’t any relevant information on a potential fix.

You could definitely try to increase your default limits and see if that fixes your issue, assuming you’re using VOIP.