Here is some code that works for me:
UPackage* package=FindPackage(NULL,*(asset.PackageName.ToString()));
if(package) {
bp=FindObject<UBlueprint>(package,*(asset.AssetName.ToString()),true);
if(bp) {
FWorldContext* world=GEngine->GetWorldContextFromGameViewport(GEngine->GameViewport);
UWorld* World=world->World();
FActorSpawnParameters SpawnParams;
SpawnParams.Owner=nullptr;
SpawnParams.SpawnCollisionHandlingOverride=ESpawnActorCollisionHandlingMethod::AlwaysSpawn;
SpawnParams.ObjectFlags=RF_Transient;
SpawnParams.bTemporaryEditorActor=true;
SpawnParams.bHideFromSceneOutliner=true;
AActor* newActor=World->SpawnActor<AActor>(bp->GeneratedClass,FVector(0,0,0),FRotator(0,0,0),SpawnParams);
You’ll need the Spawn Params by the looks (and change to not being a temporary actor) - also the Package code to load the package and then do the FindObject in there…