MultiWorld 1.9.0
Manage multiple isolated UWorld instances simultaneously in Unreal Engine, transferring player and actors between worlds.
Loading...
Searching...
No Matches
Changelog

Changelog

Changelog of the MultiWorld plugin.

Version 1.9.0

New features:

  • (UE5.3+) New implementation of automatic handling of UMG Widgets. The new implementation uses a custom 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.
  • (UE5.3+) Added the C++ utility class FScopeLocalPlayerOnWorld to temporarily force a given ULocalPlayer (and APlayerController) on a UWorld.
  • Added tentative support for non-Unity builds. Setting bUseUnity = false; in the module should now compile the plugin without major errors.

Bug fixes:

  • Fixed Out of Memory error when using a UMultiWorldSceneCaptureComponent2D component to render a Background World using Distance Fields.
  • Fixed Level Sequences not working in Secondary Worlds. Please read the notes on existing limitations.
  • Fixed Sublevels in Secondary Worlds not loaded in-editor until activating the Secondary World.
  • Fixed a possible crash during plugin shutdown when calling GameViewportClientEx::SetAudioDevice().

Version 1.8.2

Bug fixes:

  • Fixed asserts in UE5.3 when loading a map using the World Partition.

Version 1.8.1

Bug fixes:

  • Fixed "freezing" of the game viewport when switching between PIE and SIE.

Version 1.8.0

New features:

Bug fixes:

  • Fixed minor issues with the replication of the Main World when PIE.
  • Fixed crash at exit when two or more XAudio devices are disposed.

Version 1.7.3

Bug fixes:

  • Fixed VR head tracking not working in Secondary Worlds.

Version 1.7.2

Bug fixes:

Version 1.7.1

Bug fixes:

  • Fixed a possible crash in UE5 after an UWorld instance is ended. This is caused by an UE5 engine bug when the outer of a 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.

Version 1.7.0

New features:

Notes:

Bug fixes:

  • Fixed input action gets stuck if active during a seam transition.
  • Fixed UMultiWorldSceneCaptureComponent2D missing a persistent rendering state, resulting in wrong captures.
  • Fixed UMultiWorldSceneCaptureComponent2D stops updating when used with seam transitions between a group of different worlds.
  • Fixed crash/assert when the main viewport content is not containing a SConstraintCanvas widget. In this case the fallback is to keep the widget on screen when switching world.
  • Fixed crash/assert when PIE with a mobile previewer.
  • Fixed crash/assert when the virtual joystick/touch interface is enabled.
  • Fixed crash/assert when ESceneCaptureSource::SCS_FinalToneCurveHDR is used on UE4 mobile renderers. UE4 mobile renderers don't support capturing SCS_FinalToneCurveHDR, so SCS_FinalColorHDR is used instead.

Version 1.6.0

Migration notes (from v1.5.0):

New features:

  • Added support for Unreal Engine 5.1.
  • Added support for the World Partition feature in UE5.1 (this feature is not supported on UE5.0).

Bug fixes:

Version 1.5.0

New features:

Bug fixes:

  • Fixed ULocalPlayer referencing the wrong UPlayerController during UWorld ticking of Background Worlds.
  • Fixed Level Streaming refreshing content on World Switching.

Version 1.4.1

  • Fixed: UMG Widgets can be garbage collected when initialized in a Background World.
  • Fixed: the audio device handle used by the viewport is not synced with the one of the Active World.

Version 1.4.0

Migration notes (from v1.3.0):

  • The following methods of UMultiWorldOverrides have been renamed for consistency:
    • AddViewportWidgetContent() is now GameViewportClient_AddViewportWidgetContent();
    • AddViewportWidgetForPlayer() is now GameViewportClient_AddViewportWidgetForPlayer().
  • In the documentation of each method of UMultiWorldOverrides is now described how the call to the Super implementation must be handled, review your implementation accordingly.
  • UE5.0.2 fixed the issues introduced with UE5.0.0 and documented in the notes about UGameplayStatics::GetPlayerController(). The described workarounds are no more needed in UE5.0.2.

Bug fixes:

  • Fixed a crash in UE5.0 when closing a PIE session started with Net Mode set to Play As Client.
  • Fixed renaming packages in UE5.0 when using the Zen Loader (mainly in non-editor builds). One of the possible issues was UMultiWorldManager::LoadWorldAsync() freezing.

Version 1.3.0

Migration notes (from v1.2.0):

New features:

  • Added support for Unreal Engine 5 (UE5.0). Check notes about UGameplayStatics::GetPlayerController() for important notes.
  • You can now use the common Pause/Step/Resume debug buttons when multiple Worlds are ticking in a Play-In-Editor session.
  • Breakpoints on Blueprints are now pausing all the ticking worlds.

Bug fixes:

  • UMG Widgets added to the viewport during the tick are now handled correctly: if they don't live in the Active World (e.g. because crated in a Background World), they will be added later when the corresponding owning world will become the Active one.

Version 1.2.0

New features:

Bug fixes:

  • If no Audio Device Manager is detected, all Secondary Worlds will share the same audio device of the Main World (thanks to Luben for the report).
  • Fixed UWidgetComponent appearing also as 2D widgets on screen when switching the Active World (thanks to lovewater for the report).
  • Fixed missing calls when closing a Secondary World (in particular: EndPlay() on actors and flushing of streamed levels).
  • Render Target textures used by UMultiWorldSeamTransition are now properly resized if the viewport size changes between distinct transitions.

Version 1.1.0

New features:

Bug fixes:

  • (breaking change) Removed the property 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.
  • Fixed an issue when UMultiWorldStatics::EndWorld() is called on a ticking world while PIE.
  • Fixed a possible assert on UE4.26 when FMultiWorldLoadParameters::bCreateDedicatedAudioDevice is false.

Version 1.0.1

  • Fixed an issue with level streaming and World Composition when Playing-In-Editor.

Version 1.0.0

  • First release.