Switchboard and nDisplay with Shipping Build

I’ve got a project successfully running over nDisplay on a system with 4 computers, each their own node with a single display. On this development system, I have the full 4.27.2 editor installed on each computer. I can run the project as an editor project, or as a standalone packaged project just fine through Switchboard and nDisplay.

Now, I would like to test the packaged shipping build on a brand new system (no Unreal Engine installs yet) that is not connected to the internet. The packaged .exe runs perfectly fine by itself on any of the computers, but I’ve been having a lot of trouble getting Switchboard/nDisplay working.

By copying some of the Switchboard, Python, and MultiUserServer folders and files into the Engine folder of the packaged project, I’ve been able to launch the project on all nodes from Switchboard. However, they are not synced to the input on the master node like the development system. MultiUserServer reports that it cannot find a UDPMessaging module when launched, and exits.

I pulled the Engine source code, but this is my first time doing anything with the engine source. I can see the UnrealMultiUserServer project in the engine .sln, and am wondering if there is a way to build this for use on the new system without installing the editor.

Is this possible, or do I have a flawed understanding of the engine/Switchboard/nDisplay?
Any input is greatly appreciated, thanks!

Edit: I copied the entire Messaging plugin folder into the packaged project’s Engine folder, which resolved the UDPMessaging module issue. Now MultiUserServer reports an error, ConcertSyncModule is needed for proper execution, and exits. I moved all of the Concert plugins to the packaged Editor folder too, but get the same message.

1 Like

Did You find a solution for this?
I have a single system Single monitor nDisplay setup which I would like to run on a system that doesn’t have any version of unreal Engine installed on it. There is no tracker involved. I have a static view point inside my nDisplay Config. I am ok with opening switchboard on the same computer to launch project.
Or at least is there a way to set nDisplay out as the camera out when opening a packaged build.
Thanks in Advance

I ended up just installing the editor, eventually I will need to run a packaged build and revisit this issue. I did get this response from Epic support though, hope it helps:

To launch nodes, you simply need to have Switchboard listener running on the desired nodes and then use the Switchboard Launcher on a control machine. The easiest way to do this is to install the editor on the control machine so it all just works. If you really do not want to do this, this is what I would recommend.

  • Get SB Launcher 100% working on some machine. As in run the installer, make sure it gets all of the pre-requisites installed like python/pyside, etc…
  • Copy all of these files from the SB plugin as well as the files from Engine/Extras/ThirdPartyNotUE/SwitchboardThirdParty/Python and Engine/Extras/ThirdPartyNotUE/SwitchboardThirdParty/cwrsync
  • The easiest way to deal with the folders is to keep the folder structure the same so you don’t have to edit the paths. If you wish to edit the paths, you have to open Engine/Plugins/VirtualProduction/Switchboard/Source/Switchboard/switchboard.bat and edit the python path under the start_sb section.

Alternatively, all SB launcher does is send over some command line arguments to launch the .exe file. You can do this manually using shell scripts, or whatever you want. It does provide some monitoring as well, but if you don’t need that you can send over the command line some other way and it should work just fine.

1 Like

Thanks for Replying.

I thought Switchboard comes with UE installation. Is there a way to get SB Launcher installer from somewhere.

So far I could only select .uproject files in switchboard. How could we select .exe files.

This seems better. But can you help me with a way how we could send that command. Is it through Python?

Again thank you so much for replying.

It does come with the engine, it’s nested in the engine’s plugin folder. But it runs a setup script the first time its launched, and you can move that + the dependencies wherever you want to run it.

You can launch both .uproject and .exe through switchboard, .uproject files are editor project files and require the entire editor to be installed on the system. If you package your build to launch without the editor, you will have a .exe instead. As for executing from the command line, there should be plenty of info online for whatever platform you’re using. (Windows/Linux/MacOS)
If you look in the nDisplay settings through switchboard, there is a section that shows all of the command line arguments that switchboard is using.

I’m trying to do the same, run Switchboard for nDisplay and wanting to only run shipping builds. I do see in the nDisplay settings in Switchboard where you can set what .exe file to run. I set it to my shipping build and it runs, but it doesn’t display the nDisplay in that level and displays the in-game camera, which makes sense.

I guess it’s still unclear if this is even possible without having at least one computer with the editor and project. Anyone have any insights about this?

Running shipping builds with nDisplay is simple, there’s two ways:

  • Just write your own start script instead of using switchboard. All SB does is send a command line string to be executed on the nodes, just grab that one (from settings), ssh to all your nodes and execute it. Back before switchboard was a thing this was the common way to start nDisplay nodes :wink:
  • Switchboard can deal with executables lately, at least I think I’ve read a commit that said it could. Haven’t tested it, but even if it doesn’t work, you can simply modify the switchboard python source in iirc 1 or 2 lines when it builds the launch command. Works fine!

However, this obviously will not work with the Multi User Server, as that is an Editor feature. So if you need that, you have to run the editor on all nodes.