![]() |
MultiWorld 1.10.0
Manage multiple isolated UWorld instances simultaneously in Unreal Engine, transferring player and actors between worlds.
|
Changelog of the MultiWorld plugin.
Migration notes (from v1.9):
BeginPlay method, removing the implementation of the IMultiWorldActorInterface interface if no more needed. If instead you prefer or need to preserve the old behavior: call UMultiWorldStatics::SetAutoHandleInputModeForMainWorld() once passing false during your game initialization; then set FMultiWorldLoadParameters::bAutoHandleInputMode to false on each call of the LoadWorld*() methods.EndAllWorldsAsync BP node instead.New features:
BeginPlay of a Level to work out-of-the-box also with MultiWorld, not requiring any change to existing code and allowing the Level to be tested directly with Play-In-Editor or with a simple OpenLevel. For advanced scenarios, the feature can be controlled by FMultiWorldLoadParameters::bAutoHandleInputMode and UMultiWorldStatics::SetAutoHandleInputModeForMainWorld(). Read more at Input Modes.EndWorldAsync BP node,EndAllWorldsAsync BP node.UWorld * given a FMultiWorldHandle."?Game=<GameModeClass>".Bug fixes:
Bug fixes:
WorldContext resetting when unloading a Secondary World.Bug fixes:
New features:
SOverlay layer as top Slate layer for each UWorld instance, this ensures that all UMG Widgets are added-to/removed-from it transparently. When changing the active UWorld instance, the custom SOverlay layers are switched accordingly. This solution is much more robust when handling corner cases (e.g. UMG Widgets added during a Secondary World initialization, handling of UMG Widgets from Background Worlds, etc.), and more efficient when switching the Active World.ULocalPlayer (and APlayerController) on a UWorld.bUseUnity = false; in the module should now compile the plugin without major errors.Bug fixes:
GameViewportClientEx::SetAudioDevice().Bug fixes:
Bug fixes:
New features:
Bug fixes:
Bug fixes:
Bug fixes:
BlueprintSpawnableComponent specifier for UMultiWorldSceneCaptureComponent2D, that now it's listed in the component types available in the Blueprint editor.Bug fixes:
FTickableGameObject object is destroyed by the GC, but the tickable object remains alive and marked PendingKill; the engine continues ticking it, causing an UB (and possibly a crash). See also UDN #1, UDN #2.New features:
Notes:
Bug fixes:
SConstraintCanvas widget. In this case the fallback is to keep the widget on screen when switching world.ESceneCaptureSource::SCS_FinalToneCurveHDR is used on UE4 mobile renderers. UE4 mobile renderers don't support capturing SCS_FinalToneCurveHDR, so SCS_FinalColorHDR is used instead.Migration notes (from v1.5.0):
UMultiWorldManager::OnAsyncLoadCompleted is now UMultiWorldManager::OnLoadWorldCompleted.New features:
Bug fixes:
New features:
UGameplayStatics::GetPlayerController(). Check the dedicated notes for important information.Bug fixes:
ULocalPlayer referencing the wrong UPlayerController during UWorld ticking of Background Worlds.Migration notes (from v1.3.0):
UMultiWorldOverrides have been renamed for consistency:AddViewportWidgetContent() is now GameViewportClient_AddViewportWidgetContent();AddViewportWidgetForPlayer() is now GameViewportClient_AddViewportWidgetForPlayer().UMultiWorldOverrides is now described how the call to the Super implementation must be handled, review your implementation accordingly.Bug fixes:
Migration notes (from v1.2.0):
If you are using a custom Game Viewport Client class instead of the provided UMultiWorldGameViewportClient, you must implement few new overrides:
AddViewportWidgetContent()AddViewportWidgetForPlayer()Check the documentation in UMultiWorldOverrides for details.
New features:
Bug fixes:
New features:
Bug fixes:
UWidgetComponent appearing also as 2D widgets on screen when switching the Active World (thanks to lovewater for the report).EndPlay() on actors and flushing of streamed levels).New features:
Bug fixes:
bDuplicateOnLoad from FMultiWorldLoadParameters: duplicating packages with cooked data could cause errors at runtime, so now the package is renamed with an unique name instead of duplicating it. Note that this implies that calling UMultiWorldStatics::LoadWorld() a second time on an already loaded map will force a new load of the corresponding package.false.