MultiWorld - Run different worlds in parallel with the option to transfer players and actors

Hey, I’m still hesitating to buy this plugin because of the non-replicated secondary worlds.
I’d totally have a use-case if secondary worlds would be fully replicated with physics and so on.

Is there any progress in this regard?

Hi!
At the moment we don’t have useful updates on the subject. We’re experimenting on it, but at the moment we are more focused on bug-fixing and removing other simpler restrictions (that in turn are enabling new features that will be available soon).

Ok, thanks for the quick reply. Appreciate it. :slight_smile:

I’ve been having a lot of issue / crashes from calling “Load Level” from the main world when secondary world still exist. My issues happened mainly because the secondary world is truly being ended by the plugin OnWorldPreActorTick. What’s the correct way to Load a new level with the plugin? Is there a reason why the plugin doesn’t end the secondary world immediately when “End World” gets called?

I am using Unreal 4.26

Hi!

Of course there are technical reasons for deferring the deletion of a World, otherwise we would have deleted it directly :slight_smile: Basically when you call the EndWorld() method, you could be inside a Tick() callback of the same world, and the UE4 engine doesn’t support deleting the world in this scenario.

It’s not clear if this is your case, but if you’re trying to have multiple instances loaded at the same time of the same Secondary World, then you must follow the instructions documented here.

If instead your use-case is something like: LoadWorld(X), DeleteWorld(X), LoadWorld(X), then it could be a bug or a use-case that must be further investigated. In this case please provide the following:

  • the complete UE4 log file of the crash (including the stack trace <- important);
  • the snippet of code causing the crash (if it happens in a particular method/blueprint of your game).

If you prefer, you can send the information at support@unamedia.com .

Test post to check EDIT permissions in the new forums (sorry for the bump!)

Hi,
I have purchased the plugin and have been trying a few things, sorry for long period
As I understand it -
When a secondary world is loaded the main world is unloaded ? at least not visible on the screen.
If I make the secondary level a sub level of the main persistent world the main world is not visible (so I presume it is unloaded)

I will try to explain my requirement

I have certain infrastructure that needs to go in the main world and is replicated. When I switch to "A N other world - can the main world still be visible ? (and interacted with)

Thanks Paul G

Hi Paul!

We tried to introduce the main concepts of the plugin, and how they interact, in the “Main Concepts” document. You should find most of the answers to your questions in this document. But I’ll try to summarise them below :slight_smile:

Worlds are never unloaded from memory, if not done explicitly by you using the API. When you load a Secondary World, you can also decide if it can Tick when in “Background” or not. It’s up to you and your needs.

Secondary Worlds are not “sub-levels” of the Main World (I mean “sub-level” in the sense of the UE4 nomenclature). Secondary Worlds are completely independent levels (that - if you need - you can compose using “sub-levels”). But they’re completely independent by other Secondary Worlds or Main Worlds.

You can get an idea of it looking at the Example Project on GitHub.

As written in the linked documentation above (section “Active World”):

At any time, exactly and only one UWorld is “interacting with the user”, meaning it’s receiving the player’s inputs and rendering to its viewport.

While only the Active World is visible and interactive for the local user, other Worlds - if configured appropriately - can Tick independently while in Background. Background worlds cannot be visibile on screen (BUT READ BELOW) and the user can’t DIRECTLY interact with them (but, if you configured them to tick, you can manually forward the wanted inputs to any other World - simply retrieve a pointer to the user Pawn in that World and call its methods, very simple).

NOTE: We’re working on an update of the plugin that will add support to rendering from other non-Active worlds. This allows you to implement nice visual transition effects when switching between worlds, to have “surveillance camera” effects (rendering from cameras in other non-Active worlds), etc.

I hope the above explanations answer to your question. If not, or if you need more details, please write us. If you want to describe your use-case more in detail, and want to keep it reserved, you can also reach us at support@unamedia.com .

MultiWorld plugin is participating to the Unreal Engine Massive Marketplace Sale and is 30% OFF right now. If interested, get it before the end of event.

^ This ^

If its technically possible and you change your mind and add it later on, please post here where there’s an example of why it’d be useful to have secondary worlds replicate. Cheers

Hi! Thanks for linking the other thread. We post updates about the plugin here, so follow this thread if interested. BTW, as already wrote before, it’s not a simple “change your mind” problem :slight_smile: .

1 Like

Hi everyone! We plan to submit for review the update of “MultiWorld” plugin for UE4.27 in ~2 weeks: compared to our other plugins, this is more complex and updates require more work :slight_smile: ; we’re finalizing the new features to capture scenes from other worlds and we would like to pack them together.

1 Like

Hi!

The new version 1.1.0 of MultiWorld is now available in the UE Marketplace (for UE4.26 and UE4.27). In addition to add support for UE4.27, it introduces the new important features:

Changelog

Version 1.1.0

New features:

Bug fixes:

If you play with the new visual transition system, post a video here! :slight_smile:

2 Likes

Added 2 new screenshots to explain the new features:

Hi! Following the release of our latest plugin, we launched an official Discord server dedicated to our plugins .

If you’re using the MultiWorld plugin, join the server to be informed of updates and special offers, in addition to have a quick and preferred channel to chat with us:

Discord server: https://discord.gg/PuAyhDctHp

If interested, our latest plugin is Google Analytics Measurement Protocol: a native cross-platform solution to send data to Google Analytics, supporting also PC and consoles.

As part of the UE Marketplace Black Friday, some of our plugins are :fire: 30% OFF :fire: now through December 3:

:arrow_right: MULTIWORLD

:arrow_right: MIXAMO ANIMATION RETARGETING

:arrow_right: GOOGLE ANALYTICS MEASUREMENT PROTOCOL


Remember to join our Discord server for other news: https://discord.gg/PuAyhDctHp

Hi! The new version 1.2.0 of MultiWorld is now available in the UE Marketplace (for UE4.26 and UE4.27). It introduces few improvements to the customisable visual transitions effects and some important bug fixes.

Changelog

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.

v.1.3.0 - Unreal Engine 5.0 is now supported

Hi Version 1.3.0 of MultiWorld is now available. It adds support for Unreal Engine 5.0! Please read carefully the migration notes below. With this new version (for UE4.26, UE4.27 and UE5.0), it’s now easier to debug your Blueprints at run-time.

Changelog

Version 1.3.0

Migration notes (from v1.2.0):

New features:

  • Added support for Unreal Engine 5 (UE5.0). Check Setup and Checklist - Unreal Engine 5 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.

Discord server

https://discord.gg/PuAyhDctHp

v.1.4.0

Hi! Version 1.4.0 of MultiWorld is now available.

Changelog

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.

Discord server

https://discord.gg/PuAyhDctHp

Hello! MultiWorld hotfix 1.4.1 is now available.

BUG FIXES

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

Discord server

https://discord.gg/PuAyhDctHp