Exposing delegate to blueprint and UHT

Alright, I think I got what 3dRaven means.

The delegate declared in OnlineSessionInterface.h is not declared as a dynamic delegate. Only dynamic delegates can be exposed to blueprint.

I have to declare my own dynamic delegate with the same signature as follows.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameSession.h"

#include "NetworkHelperGameSession.generated.h"

DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FDynamicOnStartSessionComplete, FName, name, bool, success);

/**
 * 
 */
UCLASS(BlueprintType, Blueprintable)
class NETWORKHELPER_API ANetworkHelperGameSession : public AGameSession
{
	GENERATED_BODY()

public:
	ANetworkHelperGameSession() : AGameSession(), _enable_register_server( true ) {}

	void RegisterServer() override;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="NetworkHelperGameSession")
	bool _enable_register_server;

	UPROPERTY(BlueprintAssignable, Category = "NetworkHelperGameSession")
	FDynamicOnStartSessionComplete _on_start_session_complete;
};```
1 Like