I’m new to Unreal Engine and multiplayer development, and I need some help troubleshooting an issue I’m facing in my project. I’m using the Steam Advanced Sessions Online Subsystem for multiplayer functionality, and while everything works perfectly in the editor, I am running into problems once I package the game.
Here’s a breakdown of what’s happening:
Problem Overview:
In Editor: Everything functions normally—sessions can be created, the server browser displays correctly, and I can join servers without issues.
In Packaged Game: The session creation works fine, but the server browser shows the session information (server name, max players, current players, etc.) correctly. However, the ping shows as 9999, and when I try to join a server, it fails. The failure is detected, and I get a print string indicating a failure to join, even though the session is listed correctly in the browser.
###Images:
I’ve uploaded the screenshots in the link below. Screenshots
In the Server Browser Menu, I can see the session details (server name, max players, ping, etc.). The only issue is that the ping is incorrect (9999), and joining the server results in a failure.
The game works fine in the editor, both in terms of server creation and joining.
What I’ve Tried:
Checking the Steam configuration and making sure the session creation and joining logic is correct.
Verified the server session settings in both the blueprint and Steam API.
Ensured that my packaged game is configured with the correct Steam Online Subsystem settings.
Questions:
Why does the ping show as 9999 in the packaged game but works fine in the editor (with ping values like 31 or 42)?
What could cause the failure to join the session in the packaged version of the game when everything works fine in the editor?
Is there a specific setting or issue I might be overlooking that could affect session joining in a packaged game but not in the editor?
Any help, guidance, or troubleshooting tips would be greatly appreciated! I’ve attached images of my blueprint setup and the results of the session creation and browsing, in case they help with diagnosing the issue.
Thank you in advance for your time and assistance!
I’m surprised you could even get the server to get listed in a packaged game. I’m hoping this gets some attention soon, the only way I can test with friends or myself (using sandboxie approach) on a packaged game is through invites only.
Is that supposed to work with appid = 480?
My project has that folder as SteamADSPacked\Windows\Engine\Binaries. I placed the steam_appid.txt there. Is that correct?
I am using Adv Sessions and Adv Steam sessions with UE5.5.
Steam overlay works in editor but not in shipping packaged.
I believe it goes into the same directory as your game executable (once you’ve packaged the game).
Also, There is an issue with the 5.5.4 version of Advanced Sessions for listen servers not being able to be found or connected to. It’s something in the code that the devs are working to fix.
Also - I forgot to mention - you can only use the 480 app id in the UE Editor mode to test. If you want to package and test, you have to use your appid from Steamworks.
Do you have a steamworks account? Do you have a free appid available or do you need to purchase one from steamworks?
Thanks for the clarification.
Unfortunately, another issue when creating a c++ project. It seems something has changed on Epic’s end:
Plugin ‘OnlineSubsystemSteam’ (referenced via default plugins → AdvancedSteamSessions.uplugin) does not contain the ‘OnlineSubsystemSteam’ module, but lists it in ‘E:\Epic Games\UE_5.5\Engine\Plugins\Online\OnlineSubsystemSteam\OnlineSubsystemSteam.uplugin’.
I have discovered that if you are using your own Steam App ID, you must make sure you request Dev Comp keys for your Steam App in the Steamworks AND you must add the friend who is helping you test to the Steamworks organisation (set them to visibility only).
My use case: I am using UE 5.5, c++ project, Steam App ID 480, the plugin version from that VR page, two computers over LAN with different Steam Accounts, default Engine ini checked, game build.cs dependencies checked, and I just wanted to test my project as a packaged build, however it seems I can’t make it work if I am using 480. Client cannot find the session created by the host (tested with LAN checked / unchecked in both create and find session).
I haven’t set up Steamworks yet, because I wanted to make sure that core functionality and replication work flawlessly in packaged builds before deciding to commit to Steamworks.
Ok the problem with using the 480 ID, is all other people are also using this.
Architecturally, when you create your session as a server listed item, it can be difficult to find the server session that you’ve set up. This is because 1000s of other devs will also be creating servers under that AppID and it overwhelms the Steam Processes behind the scenes. Does that make sense?
I have seen in the past a way to get past this…let me find the info and share.
Personally, I would invest the $100 USD and get the steamworks in. It’s what I’ve done and I’m in the exact same position as you. We’re building out the core multiplayer aspects for Steam.
It’s 10x easier to have your own AppID.
Give me a minute and I’ll be back with the workaround for 480 AppID.
When using app ID 480, it’s a good idea to change the “Max Results” to a large value (e.g., 2000 or 10000) because you are sharing the ID with other developers. It will take a while to give you the results in the server viewer you’ve made.
‘If you want to test your application, you can use a SteamDevAppId of 480 , which is a test App ID that is shared by all developers. Although you can test most Steam Interfaces with the aforementioned test App ID, your application will need a Steam App ID before being shipped.’
Just double check also, that you aren’t using a VPN or the Firewall isn’t blocking the connection?
If it’s still not working, would you mind sharing the screenshot of the Advanced Sessions widget configuration from your project?
Thank you for your reply.
I’ll double check the settings following the instructions in the reddit post. At a first look, the defaultengine ini is slightly different from the official documentation. Also, my Max Results was too low.
I’ll have a look at it and post here if I succeed.