I think you pointed out.
To answer your question the error I get was :
Cannot initialize parameter 'Filter' of type int32 with EThingFilter
And When I try Your code I’ve got :
Cannot initialize parameter 'Filter' of type uint8 with EThingFilter
So You’ve pointed out the thing.
it doesn’t want to make the implicit int conversion
And now if I do :
uint8 Filter = StaticCast<uint8>(EThingFilter::OddId | EThingFilter::OnlyAlphaName)
UHT complains that :
C++ Default parameter not parsed: Filter 'StaticCast<uint8>(EThingFilter::OddId | EThingFilter::OnlyAlphaName)' [UnrealHeaderTool Error
So I tried to StaticCast to uint8 with :
UFUNCTION(BlueprintCallable, Category="Test")
TArray<UDTFluxThing*> FilterThings(UPARAM(meta = (Bitmask, BitmaskEnum = "EThingFilter")) int32 Filter = StaticCast<uint8>(EThingFilter::OddId | EThingFilter::OnlyAlphaName));
Resulting in the same error.
And then I removed the exposition to blueprint like so :
UFUNCTION()
TArray<UDTFluxThing*> FilterThings(UPARAM(meta = (Bitmask, BitmaskEnum = "EThingFilter")) int32 Filter = StaticCast<uint8>(EThingFilter::OddId | EThingFilter::OnlyAlphaName));
And then it compiles. But can’t test it has it’s not exposed in BP… But Maybe it can help understand.