World Partition does not stream when opening new level

When loading in a new level that uses World

Partition, the Terrain and geometry placed in the level do not stream in, only the the test BSP geometry and the skybox. When I press f8 however, the geometry and terrain appear. I am playing this in the editor and am not getting any strange errors except zero streaming sources being accounted for even though the player is spawned. I spawn the character from a custom game mode class.: ACharacter* NewCharacter = NewWorld->SpawnActor(LoadedSaveData->SavedCharacterBlueprint, SpawnLocation, SpawnRotation, SpawnParams);
if (NewCharacter)
{
if (ASPPlayerController* PlayerC = Cast(PC))
{
PlayerC->Possess(NewCharacter);
PlayerC->ClientRestart(NewCharacter);
PlayerC->SetViewTargetWithBlend(NewCharacter, 0.0f);
NewCharacter->ForceNetUpdate();
NewCharacter->MarkComponentsRenderStateDirty(); I added a bunch of extra functions to try and trigger the world partition into recognizing the character but nothing seems to work.

Hello there @Gameartist3d!

Checking your code with my peers, and considering your setup, I think WP is not recognizing your custom spawned character as a valid streaming source.

Spawning and possessing the character is not triggering the streaming grid. Then, when you press F8, that ejects you back to the camera, and everything loads back again.

The solution here would be to add the WorldPartitionStreamingSource to your custom character’s BP, and set it to enabled.

For further reading, you can check Epic’s doc on the matter, here:

That was it, thank you so much. I assumed that the player character would automatically stream the level since the player controller is set to a streaming source. The world streamed in properly after adding to my character. Again, Thank you!

1 Like