I found some good examples on changing levels using Blueprints, but there isn’t much out there on doing it in code. All I’ve found is this thread that mentions GEngine->SetClientTravel or UGameplayStatics::OpenLevel:
But it’s not clear what those functions do, exactly. Do they destroy all the actors on the old level or do I need to do that? Do they reset all the state in the engine, etc? I’m just trying to figure out the general procedure for changing levels. Obviously, there is some data that I want to keep and some data that needs to be destroyed with the level.