I’m trying to do a team-based chat so I’m muting all the members of the other team. Is this the correct approach? Because unfortunately it is currently not working (everyone can hear everyone):
Well, I am not sure if it’s because of plugin or UE 4.21 Source Build. However. I am using plugin just to get SteamID, Avatar and Name (do not use steam servers, but our own).
Before upgrade I was using 4.19 and everything worked. After upgrade to 4.21 clients could not connect anymore because of incompatible_unique_net_id.
Just trying to figure out what cause this problem (but now I think it’s not related to this plugin).
I compared logs from previous version of server (4.19) and current.
On previous server I got on Login reguest the following:
?Name=PlayerName userId: STEAM_ID
But on new (4.21) server I got this:
?Name=PlayerName userId: Steam: STEAM_ID (with zero at beggining)
Basically, userId is empty on the new server, and SteamID is the same but with 0 at beggining.
On old server userId is SteamID
Well, I am not sure if it’s because of plugin or UE 4.21 Source Build. However. I am using plugin just to get SteamID, Avatar and Name (do not use steam servers, but our own).
Before upgrade I was using 4.19 and everything worked. After upgrade to 4.21 clients could not connect anymore because of incompatible_unique_net_id.
Just trying to figure out what cause this problem (but now I think it’s not related to this plugin).
What do you mean use your own? As in you aren’t really using the steam subsystem? That would fully explain your issue here if so. It would be throwing incompatible unique net id because it is using one from another subsystem, you would have to manually query the steam SDK for the information you want if you are using a different subsystem.
Maybe something changed, since it was working in 4.19. For instance, on clients I can read their SteamID, Name etc (in MainMenu, before connecting to the server).
OnlineSubsystemSteam is set bEnabled=true and SteamDevAppId that we got from Steam…and DefaultPlatformService=Steam (that was in DefaultEngine.ini)
So clients userId was SteamID when plugin is enabled. And when they try to connect to the server they use it for Login request.
But somehow, userId is not SteamID anymore.
Maybe I need to add something else in DefaultEngine.ini ?
I just noticed…maybe userId is not empty anymore but in different “format”
Earlier: userId:
Now: userId: Steam:
Incompatible_Unique_Net_Id warning is thrown if the net id’s GetType() doesn’t match the currently active subsystems GetSubsystemName() value.
IE: If you have a mismatch in subsystems.
It doesn’t really have anything to do with the actual contents of the unique net id.
As for “maybe something changed”, yes a lot of the backend subsystem identification code has changed as they have been re-factoring it since 4.20.
And no, all of this is outside of the plugin itself, unless you are loading in a thirdparty subsystem like the UWorks one.
I can run a few tests tonight but it sounds exclusive to your setup, I had steam multiplayer running during my 4.21 porting tests for my multiplayer plugin.
I will take a look into UWorks it looks promising, but I am not sure if I need it.
About problem with incompatible_unique_net_id it seems a bit weird since I dont have any special setup.
Just dedicated server and clients who pick free server from the database and connect via command line open IP:Port
I am using Shipping package. Will try with development or Debug to see if I can get more information about this.
I will take a look into UWorks it looks promising, but I am not sure if I need it.
About problem with incompatible_unique_net_id it seems a bit weird since I dont have any special setup.
Just dedicated server and clients who pick free server from the database and connect via command line open IP:Port
I am using Shipping package. Will try with development or Debug to see if I can get more information about this.
I wasn’t suggesting that you get it to fix the problem, but just that it was screwed over by recent engine updates and might not be working correctly.
As for connecting, your last post actually explains things, you are connecting with Open:IP but running the steam subsystem, in 4.20 they added steam authentication for steam dedicated servers via an authentication component and changed some of the registration code and related sections. This is likely what is causing your issues here.
You really shouldn’t be using the steam subsystem at all with your setup, you should be using subsystem NULL and manually querying the steam SDK for the information.
Now, this is where the UWorks plugin WOULD help you out as it should be able to query the steam SDK without using the steam subsystem, but you could also rather easily manually do it if you have a c++ coder available, the steam sdk has to be initialized before use.
Good point.
I just tested with editor - started dedicated server with.bat file via editor and connected remote client also with .bat file via editor (as stand alone). It was working just fine.
About UWorks…I will take a look into documentation and get more information about it. I already saw this plugin but never look deeper into it.
Thanks again.
Hi. Thank you for this functionality.
Shouldn’t the setup instructions remind the user to install from ue4 source, and then edit OnlineSessionAsyncServerSteam.cpp , changing STEAMPRODUCTNAME, STEAMGAMEDIR, and STEAMGAMEDESC? It has lead me to confusion (or maybe i’m wrong about needing this).
Hi. Thank you for this functionality.
Shouldn’t the setup instructions remind the user to install from ue4 source, and then edit OnlineSessionAsyncServerSteam.cpp , changing STEAMPRODUCTNAME, STEAMGAMEDIR, and STEAMGAMEDESC? It has lead me to confusion (or maybe i’m wrong about needing this).
I have a C++ class in my game, but it has nothing to do with the plugin. Not sure if its important tho… But i cant see how having a C++ class in a project would affect the plugin to work correctly…
I installed the plugin on engine level (copy files to engines plugins folder)
then created a “Plugins” folder in the projects directory and copied the files there too
If I only copy the plugins files to the project folder I can’t activate it in the Plugins Browser (its not in the list).
This way I was able to package the game for WIN64 without any problems.
HI.When using this plugin, I have a problem and can not solve it. I have a dedicated server, and when I try to open a session by CreatedAdvincedSession or simply call OpenLevel with dedicated server IP, I get the following message on the server “No game present to join for session advinced session”, but when the dedicated server is on the local machine, then there is no error and everything works correctly, the problem occurs only when the dedicated server is running on the remote machine. I would be grateful for any help.
I have noticed something very weird. Im using Advanced Sessions to get SteamAvatar, SteamName and SteamID and set those variables inside PlayerState. Then I can save all that and use it for Scoreboard list and NamePlate with Avatar and SteamNames. The thing is that SteamAvatar and SteamID fails. I finally got SteamID using my own C++ Class I found on Youtube and it works really fine but SteamAvatar still fails. I tried to get it using SlateBrush, Texture2D and UniqueNetID.
I keep trying things and have seen that Server can set and print a real NetUniqueID so I get the Avatar.
But when a client join the server, NetUniqueID in server and in new client change to ERROR: BAD UNIQUE NET ID and Avatar is not loaded.