How to run nDisplay by script or command line

I’m looking for documentation and information on how to run nDisplay from a script, or perhaps even with remote TCP calls. I’ve scoured their docs and the only way I can find in there to run an nDisplay cluster is via the nDisplayLauncher. This is inadequate for our scenario since we’ll be running a project by script that will start every morning at the same time, and will be managed remotely.

Has anyone seen some information around how to do this? I would hope that I could at least do what nDisplayLauncher is doing from a command line, but also would be interested to know if it can be done using remote commands, such as the cluster event protocol.


I’ve failed to do the same thing but 4.27’s Switchboard allows us to copy and paste the command and use the batch file?

Did you ever find a solution to this? I am currently in the same situation, working on an installation that needs to be automated by script to launch every morning. I have not found a way to do it but it seems that the Switchboard is using UDP or something similar to communicate with the Listeners… I just haven’t found anything about what these messages actually are. Any help would be appreciated

Almost exactly a year later and I’m here wondering if anyone ever figured this out. Also working on an installation that needs to auto-launch every morning. I found out that switchboard has a native scripting interface that is completely undocumented but can’t seem to get it working. Using 5.2

I’m trying to do the same thing. Did any of you guys figured out a way to do it?

If you launch the switchboard launcher and listener and execute the project from there, you can see the command being executed on the listener. You can use that in a .bat to launch the project in “ndisplay mode” or you can add the launch arguments to a shortcut.

Here is an example on how to launch a built project:

“{YOUR_PROJECT_PATH}\Built_project.exe” -game None -messaging -dc_cluster -nosplash -fixedseed -NoVerifyGC -noxrstereo -xrtrackingonly -RemoteControlIsHeadless -StageFriendlyName=“Node_0” -MaxGPUCount=2 -dc_cfg=“{YOUR_PROJECT_PATH}\ndisplay_config.ndisplay” -dx12 -dc_dev_mono -dc_node=Node_0 Log=Node_0.log -ini:Engine:[/Script/Engine.Engine]:GameEngine=/Script/DisplayCluster.DisplayClusterGameEngine,[/Script/Engine.Engine]:GameViewportClientClassName=/Script/DisplayCluster.DisplayClusterViewportClient,[/Script/Engine.UserInterfaceSettings]:bAllowHighDPIInGameMode=True -ini:Game:[/Script/EngineSettings.GeneralProjectSettings]:bUseBorderlessWindow=True -ini:Input:[/Script/Engine.InputSettings]:DefaultPlayerInputClass=/Script/DisplayCluster.DisplayClusterPlayerInput -unattended -NoScreenMessages -handleensurepercent=0 -UDPMESSAGING_TRANSPORT_MULTICAST=“” -UDPMESSAGING_TRANSPORT_UNICAST=“” -UDPMESSAGING_TRANSPORT_STATIC=“” -ExecCmds=“DisableAllScreenMessages” -windowed -forceres WinX=2560 WinY=0 ResX=2560 ResY=1440 -CONCERTRETRYAUTOCONNECTONERROR -CONCERTAUTOCONNECT -CONCERTSERVER=“Ventana_Espacial_test_benja_MU_Server” -CONCERTSESSION=“MU_Session” -CONCERTDISPLAYNAME=“Node_0” -CONCERTISHEADLESS -DPCVars=“Slate.bAllowNotifications=0,p.Chaos.Solver.Deterministic=1”

Probably some commands are not needed if you’re using just one machine.

You can also launch a project which is not prebuilt like this:

“C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64\UnrealEditor.exe” “{YOUR_PROJECT_PATH}\{PROJECT_NAME}.uproject” -game None -messaging -dc_cluster -nosplash -fixedseed -NoVerifyGC -noxrstereo -xrtrackingonly -RemoteControlIsHeadless -StageFriendlyName=“Node_0” -MaxGPUCount=2 -dc_cfg=“{YOUR_PROJECT_PATH}\ndisplay_config.ndisplay” -dx12 -dc_dev_mono -dc_node=Node_0 Log=Node_0.log -ini:Engine:[/Script/Engine.Engine]:GameEngine=/Script/DisplayCluster.DisplayClusterGameEngine,[/Script/Engine.Engine]:GameViewportClientClassName=/Script/DisplayCluster.DisplayClusterViewportClient,[/Script/Engine.UserInterfaceSettings]:bAllowHighDPIInGameMode=True -ini:Game:[/Script/EngineSettings.GeneralProjectSettings]:bUseBorderlessWindow=True -ini:Input:[/Script/Engine.InputSettings]:DefaultPlayerInputClass=/Script/DisplayCluster.DisplayClusterPlayerInput -unattended -NoScreenMessages -handleensurepercent=0 -UDPMESSAGING_TRANSPORT_MULTICAST=“” -UDPMESSAGING_TRANSPORT_UNICAST=“” -UDPMESSAGING_TRANSPORT_STATIC=“” -ExecCmds=“DisableAllScreenMessages” -windowed -forceres WinX=2560 WinY=0 ResX=2560 ResY=1440 -CONCERTRETRYAUTOCONNECTONERROR -CONCERTAUTOCONNECT -CONCERTSERVER=“Ventana_Espacial_test_benja_MU_Server” -CONCERTSESSION=“MU_Session” -CONCERTDISPLAYNAME=“Node_0” -CONCERTISHEADLESS -DPCVars=“Slate.bAllowNotifications=0,p.Chaos.Solver.Deterministic=1”

You can export an .ndisplay from the corresponding ndisplay configuration asset, inside Unreal.