Updated from 4.19 to 4.20: Multiplayerconnections no longer possible

We updated from 4.19 to 4.20. The first thing we noticed(as we have written our own OSS based on OSSNull) is that they decided to add more complexity on top of FUniqueNetIDString. It seems this type is not to be used anymore as it seems and so we declared our own type using TEMP_UNIQUENETIDSTRING_SUBCLASS, and replaced all occurencies of FUniqueNetIDString in our OSS with the new type. For some reason, multiplayer connections aren’t possible anymore. The serverlog yells only “Invalid ID” and “String to long” upon connection and the player is kicked.

We have no clue why this happens. Anyone else had similar troubles?

Well the custom TEMP-UNIQUENEIDSTRING_SUBCLASS is custom so you will likely have to adapt to how it is done now.
You can download and look at the ShooterGame example to see how they do it now. They too had to switch from FUniqueNetIDString to the new struct which I can’t recall atm what that is.

No, it’s even better. It was impossible to have your own OSS running in 4.20, because the new class hierarchy they added only worked hardcoded for the existing OSSes(Null, Steam, Amazon). Because in OnlineSubSystemUtilsModule.cpp they have a hashlist entry for each of the existing ones. This hash is required to serialize/deserialize the new custom UniqueNetIDs. But user made OSSes like ours, were out of the loop. Their ID can not be sent/received properly in 4.20, therefore no Player IDs can be sent/received, therefore nothing works -.-

https://github.com/EpicGames/UnrealE…5e6cb5e9b0fc32

We’ll move to 4.21 and cross fingers everything else is working :frowning:

EDIT: The Custom UniqueNetIDs are OSS internal only and not used/generated outside of it. The SHootergame example works, because it uses the NULLOSS which has its type hardcoded into the engine and therefore works.