I was able to fix this problem by copying this method from BTNode
UWorld* UMyCustomType::GetWorld() const
{
if (GetOuter() == nullptr)
{
return nullptr;
}
// Special case for behavior tree nodes in the editor
if (Cast<UPackage>(GetOuter()) != nullptr)
{
// GetOuter should return a UPackage and its Outer is a UWorld
return Cast<UWorld>(GetOuter()->GetOuter());
}
// In all other cases...
return GetOuter()->GetWorld();
}
Basically override GetWorld like this and graph editor will magically show kismet functions for you!