Programmatic (not procedural) Level Creation

So easy mode is not so easy!

I’m not sure what I am doing wrong. I cannot at all succesfully replicate what was in this post that was linked above:
https://answers.unrealengine.com/questions/246723/addactor-in-the-editor-via-c-module.html

I’ve tried many variations of GEditor Getworld and GetEditorWorldContext and SpawnActor and Actors.Add and AddActor. I have tried loading the level and adding objects to it. I stopped receiving errors at a certain point and now am just trying random things but nothing appears! I have tried adding it as AActor and as UClass. Loading it with and without the _C and many combinations.

If I do this I get nothing in the logs but nothing happens.

UClass* LevelPieceObj = LoadObject<UClass>(nullptr, TEXT(“Blueprint’/Game/Levels/SurfaceChunk.SurfaceChunk_C’”));
GEditor->GetEditorWorldContext().World()->GetCurrentLevel()->Actors.Add(Cast<AActor>(LevelPieceObj));

With this it triggers a breakpoint:
UClass* LevelPieceObj = LoadObject<UClass>(nullptr, TEXT(“Blueprint’/Game/Levels/SurfaceChunk.SurfaceChunk_C’”));
GEditor->GetEditorWorldContext().World()->SpawnActor<UClass>(LevelPieceObj, FTransform(FVector(0)));

In Casts.cpp and tells me

“Cast of
FromType 0x0000000011e6f000 L"SurfaceChunk_C /Game/Levels/Level1.Level1:PersistentLevel.SurfaceChunk_C_0”
to
ToType 0x0000000021a1bac0 L"Class"
failed"

I’ve tried many variations but I either get cast failures, it cannot find the object, or nothing happens at all (no logs, nothing).

I haven’t found any other examples of this that work for me and would love some help if anyone sees what is going wrong!