When I start a PIE multiplayer session with a listen server (in the viewport) and a client (in a separate window), and then press F8 to detach the camera, the viewport switches to the client’s world.
When I try to change the world via Outliner settings → Choose World, only the Outliner updates correctly to show the server world — but the viewport still displays the client world.
I believe this issue appeared in UE 5.6. Previously, after detaching the camera, the viewport would remain on the server world.
Is there a new option or setting to switch the viewport’s world context manually?
I’ve tested this behavior across multiple versions (4.27, 5.3, 5.5, and 5.6) and found it to be consistent: when detaching the camera (F8) during a multi-player PIE session (using a Listen Server), the viewport always displays the first PIE world instance (typically Client 1).
Looking into the engine code, this appears to be the intended behavior. In
UEditorEngine::ToggleBetweenPIEandSIE, the comment explicitly states:
“The first PIE world context is the one that can toggle between PIE and SIE.”
and also notes that
“Network PIE/SIE toggling is not really meant to be supported.”
Additionally, from UEditorEngine::CreateInnerProcessPIEGameInstance, only the first PIE instance receives a valid DestinationSlateViewport reference, meaning only that instance can be associated with the editor viewport when ejecting. Other PIE worlds are created in separate windows, so the editor viewport cannot toggle to them.
Based on these findings, it seems this is how the editor is currently designed to behave rather than a new regression. It’s also worth noting that while the Outliner’s Choose World option can correctly display the contents of another PIE world (such as the server), it only changes the listing and does not affect which world the viewport is rendering.
I’ll continue investigating whether a practical workaround exists to allow inspecting the listen-server world directly from the viewport.
Could you please confirm if you were able to eject in a listen-server setup with two players and successfully inspect the server player in the ejected editor viewport in a specific version of the editor?
Currently, I’m unable to view the server world even on older engine versions. However, I noticed that when RunUnderOneProcess in the Project Settings is unchecked, I can detach the camera and see the server world.
Thanks for the follow up. You’re absolutely right, leaving RunUnderOneProcess resolves thsi case. This is occurs because when the setting is enabled, all PIE worlds run inside the same process and the client gets selected for ejection. With the option disabled, the listen-server instance is the only one tied to the editor viewport, so it becomes the world used when ejecting throgh UEditorEngine::ToggleBetweenPIEandSIE. I’m glad this setting works for you.
As a small note, with Run Under One Process disabled the Outliner still defaults to the Editor world. Choosing the Server world is useful to view actors spawned during gameplay on the listen-server instance.
Please let me know if you need anything else regarding this case. Otherwise, I can proceed to close it.