Can't use FOnlineSubsystemBPCallHelper in my projcte

I want to use FOnlineSubsystemBPCallHelper in my project.
And I added the required modules.(“OnlineSubsystem” and “OnlineSubsystemUtils”)
But if I want to include “OnlineSubsystemBPCallHelper.h”, it always says can’t open source file
Even if I inherit from UFindSessionBPCallbackProxy, it won’t do the right thing.

Can anyone help me?

Have a look at the BlueprintDataDefinitions.h of the Advanced Sessions Plugin. They have just copied the struct and documented as follows:

Couldn’t use the default one as it is not exposed to other modules, had to re-create it here

I would recommend the same way.

I know is a outdated post.
I am in UE 4.27.2 and i use this way for use “FOnlineSubsystemBPCallHelper” struct.

#include "OnlineSubsystemUtils/Private/OnlineSubsystemBPCallHelper.h"

After include this Header i realize that the declaration and implementation are spit in two file.

Declaration → “OnlineSubsystemUtils/Private/OnlineSubsystemBPCallHelper.h”
Implementation → “OnlineSubsystemUtils/Private/OnlineSubsystemUtils.cpp”

So…next i copied what was there in the Implementation and paste in the Declaration.
After that, in the Implementation side i Comment the duplicate code, instead in the Declaration i include the Header “OnlineSubsystemUtils.h”

You can encounter problem with the module linker because this struct is inside a Private folder, so i advise you to add “OnlineSubsystemUtils” in the Private Module of your “Project.Build.cs”

P.S. I also try include “OnlineSubsystemUtils/Private/OnlineSubsystemUtils.cpp” but without success. (Console Error: [C1083] ‘VoiceModule.h’ not such file or directory.)

You can simply avoid using the FOnlineSubsystemBPCallHelper and use fewer lines of code:

auto Sessions = Online::GetSessionInterface(WorldContextObject->GetWorld());

If you want the players unique net id then just use:


Makes it much more simple than trying to solve errors with the FOnlineSubsystemBPCallHelper.