As title suggests, I cannot find my Listen server across LAN after steam integration.
I’m not sure if this is a bug, or something I am missing, but just seems to be out of my control right now, which to me, seems more like a bug. So apologies in advance if it is not a bug and it really is just user error
To go into a bit more detail, if I am inside of editor, and I set number of players to 2. I can get one player to host server, and other player to join server, absolutely no problems.
But if I compile game, and run 2 instances of it on same machine, one can create server, but other simply cannot find server at all.
I have a feeling it is to do with integration of Steam into my project, since I never had problems with this before.
I followed this guide posted by (I found official documentation to be skimpy on details):
And steam overlay shows up, no problem, that works fine, but cannot find any servers on LAN.
So I did some digging to find a solution and for last few days, I have been searching for one, to no avail.
I decided to check my ports by typing netstat -ab -p UDP into Command Prompt in Windows to see where fault might be, and to see what ports I may need to open.
So this is what I did.
-
Opened a version of my project before steam integration.
-
Ran 2 players in PIE, I can create a server, find and join that server no problems.
-
I checked port being used by server and it is 7777.
-
I packaged project and ran 2 instances on same machine, once again, no problem creating, finding and joining server, even from other machines across LAN. Port being used is still 7777.
-
Opened a version of my project that had steam integration based on 's guide.
-
Ran 2 player in PIE, I can create a server, find and join that server no problems.
-
I checked port being used by server and it is 7777 still.
-
I packaged project and ran 2 instances on same machine, server creation works, but I cannot find server from 2nd game instance.
Port being used? I have no idea, but 7777 is not being used. I assume it is 27015 since this is GameServerQueryPort inside of DefaultEngine.ini after steam integration.
This has me incredibly confused, and I’m honestly not sure which direction to go, other than to completely remove Steam integration from project until I really NEED to add it. This sort of interferes with me wanting to learn how it all works though, and I would really love to have steam integration as early as possible and learn how it works.
Below are some things I noticed were strange with ports being used (I’m hoping more information I give, better chances of being helped).
These are relevant ports before creating a server with steam integration:
svchost.exe UDP 0.0.0.0:27036
Steam.exe UDP 0.0.0.0:51846
After creating server:
svchost.exe UDP 0.0.0.0:14001 (NEW)
SandBox.exe UDP 0.0.0.0: 27015 (NEW: I presume this is port used instead of 7777?)
SandBox.exe UDP 0.0.0.0:27036 (Note: this is same as svchost.exe before starting server)
Steam.exe UDP 0.0.0.0:41765 (NEW)
SandBox.exe UDP 0.0.0.0:51846 (Note: this is same as Steam.exe before starting server)
So I opened up new ports on my router to see if that would work, but it didn’t work unfortunately.
I then went into my DefaultEngine.ini settings and changed DefaultPlatformService to Null (since it is set to “Steam” right now).
But after doing this, I can’t create a server at all.
Here is what my DefaultEngine.ini looks like (At least only parts I have changed for steam integration):
[URL]
GameName=SandBox
[/Script/HardwareTargeting.HardwareTargetingSettings]
TargetedHardwareClass=Desktop
AppliedTargetedHardwareClass=Desktop
DefaultGraphicsPerformance=Maximum
AppliedDefaultGraphicsPerformance=Maximum
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="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="OnlineSubsystemSteam.SteamNetConnection"
I see GameServerQueryPort is equal to 27015 so figured that opening 27015 should work, but it does not.
Here is a description of my blueprint set up, and some pictures.
I have a main menu blueprint, player can click on Host Server button which takes them to a server creation screen where they can click on a “Create Server” button which will create a new session:
On client side, player clicks “Join Game” button in Main Menu, and it looks for sessions, iterates through them, and attempts to join. Pretty basic, simple stuff really.
I have to wonder if because of steam integration, I should have UseLAN unticked…
I honestly really don’t know.
I think I will probably just try and remove steam integration by end of day if I can’t get this working. Since I am having people over for a LAN and it’d be a great opportunity to give my game a whirl and see how it goes.
Any help on matter will be greatly, greatly appreciated.
I am happy to help with providing more information. However I will only share my project with Epic Games staff if necessary.
Thank you in advance!
UPDATE:
After a bit of reading I decided to try something else. Because when I tested on 2 seperate machines previously, I don’t think steam was open on other machine at all.
- I started a server on Computer A.
- On Computer B I made sure steam was running and tried to find server, with success (HOORAY!).
- It also tells me that Computer B successfully joined server (HOORAY)…but player does not appear in game, level does not load on Computer B, instead, Computer B just remains on Main Menu.
One last thing to note while testing. I actually have a server browser, which lists servers, name, player count and ping. I noticed ping was 9999 when server was found…if this helps.