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.

Why are these changes needed? and where would we find the info if not here?

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 Kyle.

I made the changes suggested, but I am still having problems.

I can’t find sessions, neither LAN nor Steam. “Sometimes” Find Sessions via Blueprint even just flat out fails. Haven’t nailed down why it goes from 0 results to fail sometimes

Hey Rasped,

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).

There is.

I can’t test right now if it works without spaces, I will do so as soon as I get a chance.

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

I removed the spaces, it still doesn’t work as intended. 2 different computers, 2 different steam accounts, can’t find neither LAN nor Steam games.

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.

Hi man.

Sorry for delay, I don’t think I got a notification that you had replied. I wrote you on the forums with a download link.
Problem is still there in 4.13.1, not there in 4.12.5

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 is how to do that.)

https://github.com/EpicGames/UnrealEngine/pull/2135

Hey Kyle 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?