![]() |
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
.