Using Other Types in UE4 BP

I show you how to quickly expose different types to BP in UE4.

1 min read
6 views
Beginner

While building out SteamBridge I needed a way to access SteamID in BP which happens to be a uint64 so I'm not able to directly. Here's the solution I came up with and I must say it's not the most ideal solution as I mainly needed typedefs, but this works.

 

USTRUCT(BlueprintType)
struct FUint64
{
    GENERATED_BODY()

    uint64 Value;

    operator uint64() const { return Value; }

    FUint64() : Value(0) {}
    FUint64(uint64 value) : Value(value) {}
};

USTRUCT(BlueprintType)
struct FMyCoolUint64Type : public FUint64 { GENERATED_BODY() using FUint64::FUint64; };

To avoid writing the same FUint64 struct for all of the types that just need to be a uint64 you can just derive your struct from it and add a using FUint64::FUint64; so we use it's constructors.

You should also add a method in your class to be able to construct this struct in BP since you can't set the value in BP as it's a type that isn't supported. You can add a method to take a string that's converted to a uint64 to output the FMyCoolUint64Type.

// psudo-code

UFUNCTION(BlueprintCallable)
void makecoolstruct(const FString& convert, FMyCoolUint64Type& type)
{
    type = { FCString::Strtoui64(*convert, NULL, 10) };
// or some conversion from string to type etc
}

 

until next time