I have an C++ interface setup with BlueprintNativeEvent & BlueprintCallable.
Give this a try.
.h:
#pragma once
#include "ItemActionsInterface.generated.h"
UINTERFACE(Blueprintable)
class UItemActionsInterface : public UInterface
{
GENERATED_UINTERFACE_BODY()
};
class IItemActionsInterface
{
GENERATED_IINTERFACE_BODY()
public:
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Pickup", meta = (DisplayName = "Pickup Item"))
bool PickupItem(class AItemActor* InItemActor);
UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category = "Match", meta = (DisplayName = "Match Item"))
bool MatchItem(int32 MatchType);
};
.cpp:
// Copyright bla bla bla
#include "<YourGame>.h"
#include "ItemActionsInterface.h"
UItemActionsInterface::UItemActionsInterface(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
bool IItemActionsInterface::PickupItem_Implementation(class AItemActor* InItemActor)
{
}
bool IItemActionsInterface::MatchItem_Implementation(int32 MatchType)
{
}