Switchboard Overview

Control multiple remote machines from one application.

Choose your operating system:




Switchboard is a Python application for controlling multiple remote devices and relies on the companion application SwitchboardListener to communicate with them. SwitchboardListener is an Unreal Engine C++ application that runs a TCP socket server on each device to share JSON messages with Switchboard.

Switchboard's features include:

  • Start Unreal Engine remotely on a device in a Multi-User session.

  • Launch nDisplay on multiple devices.

  • Record with embedded Take Recorder controls.

  • Sync all devices to a specific changelist and build your Project and Unreal Engine from source.

  • Connect to and control the following devices: KiPro, Live Link Face, Shogun, and SoundDevices.

  • Add your own device plugins and extend Switchboard and SwitchboardListener for custom controls.

This page covers some of the features available in Switchboard. For getting started with Switchboard, follow the steps in the Switchboard Quick Start. See the Switchboard Settings Reference for specific details on all the settings available.

Virtual Production Roles

You can create device roles in the Virtual Production plugin and assign them to Unreal devices in Switchboard. Based on a device's role, you can run custom logic in Unreal Engine and use them for filtering events in Stage Monitor. The roles are stored in an .ini file in your project's Config\Tags folder.

The following steps show how to add roles:

  1. In the Editor's main menu, choose Edit > Project Settings to open the Project Settings window.

  2. In Project Settings, open the settings for the Virtual Production plugin in the Plugins section.

    The virtual production plugin

  3. Select Edit… next to the Roles parameter to open the Gameplay Tag dropdown window.

    Open the Gameplay Tag dropdown

  4. Expand Add New Gameplay Tag and enter the name of a role. Select Add New Tag to add the role to the .ini file.

    Add a new virtual production role

The roles are stored in the file DefaultGameplayTags.ini by default. You can create a new .ini file in Project Settings and use it as the Source file when creating new roles. Create a new file by expanding New Tag Source, entering the name of the file, and pressing the Add New Source button.

Create a new file

By default, Switchboard will look for roles in the file VPRoles.ini. In the Switchboard Settings, you can set the filename and assign one or more roles for each device. The roles are passed to Unreal Engine when it's launched. If a role is not supported, such as if the .ini file is out of date on a device, an error is logged in Switchboard.

To be able to see what roles exist in Switchboard, it must be connected to the SwitchboardListener connected to the device. If roles are available, you can see them in the device's settings in Switchboard.

The list of roles

Take Recording with Switchboard

You can record takes in a connected Unreal device using the TakeRecorder functionality embedded in Switchboard. Switchboard uses OSC to communicate with the Unreal Instance for recording. The Switchboard plugin includes a default OSC Listener to create this connection for you.

Make sure the following settings are set up properly:

  • Enable Start an OSC Server when the editor launches in the Virtual Production Editor plugin.

  • The OSC Server Port in the Virtual Production Editor plugin matches the OSC Client Port in the Switchboard Settings.

  • The OSC Server Address is reachable by Switchboard.

Virtual production editor settings Virtual production editor port settings

In Switchboard, the status icon turns green if the OSC connection is successful for the device.

Comparing the Switchboard status icons.

The status icon will turn orange after starting Unreal if the OSC connection is unsuccessful.

Unsuccessful connection

  • At the top of Switchboard, you can set the Sequence name, Slate name, and Take number.

  • The names should immediately be reflected in the TakeRecorder of the OSC-connected Unreal device.

  • Press the red button on the right to start and stop recording.

  • If a device is recording, its background is set to red in Switchboard.

  • After each recording, the Take number is incremented.

    Switchboard deivec recording

Check the Debug log to verify expected status changes for devices.

Switchboard debug log

Launching nDisplay with Switchboard

You can set up Switchboard to communicate with all your nDisplay devices. When you choose to add an nDisplay device in Switchboard, you add the location of your nDisplay config file. Switchboard parses the config file and converts the cluster nodes specified in the file to Switchboard devices. See Switchboard Settings for more details on how the nDisplay devices can be further configured in Switchboard.

nDisplay device list

In addition to adding nDisplay devices, information on the status of the nDisplay cluster appears on the right side of the Switchboard window in the nDisplay Monitor panel. The following table describes the information included in the monitor. Whenever the values are unexpected, the color of the cell turns yellow as a warning.

nDisplay monitor




The nDisplay scene node.


The device's IP address.


Displays yes or no.


The NVIDIA driver version.


The swap chain presentation mode.


Indicates if the detected GPUs are being synchronized by a Quadro Sync card.


Indicates if the detected displays are being synchronized.


The display refresh rate.


Indicates the presence of an external synchronization signal into the Quadro Sync card.


Indicates if the synchronization source is house sync or vsync.


Lists the display grid configuration.


Indicates whether the taskbar auto-hide setting is set or not.


Flags on the UnrealEngine executable. We recommend using the Disable Fullscreen Optimizations option.

Syncing and Building

You can connect your source control to Switchboard, then sync and build your project and engine according to a certain changelist across all connected devices. You can see what changelists are on each connected device to know which ones need to be updated.

Follow these steps to add your source control information to Switchboard:

  1. Open Switchboard Settings.

  2. In the Switchboard Settings dialog, check the box next to Source Control.

  3. In the section under Source Control:

    1. Set P4 Project Path to your project's Perforce Stream.

    2. If you want to build the engine from source, set P4 Engine Path to your engine's Perforce Stream. Setting this path is not required if you only plan to sync and build your project.

    3. Set Workspace Name to the name of your Perforce Workspace.

    Switchboard source control paths

  4. In the section under Project Settings:

    1. Set UProject to the location of your Unreal Engine project.

    2. Set Engine Dir to the directory where the binary release of the engine is located.

    3. If you want to build the engine from source, check the Build Engine checkbox. If you are only building your project, leave it unchecked.

    Switchboard project paths

When your source control information is added, the Engine and Project changelists appear in Switchboard above the list of devices. This means that there is only one place where the current changelist for all devices is specified.

Switchboard changelists

In this screenshot, the Project changelist and Engine changelist are shown.

Each device also shows what Engine and Project changelists it has. If a device's changelist is behind the one selected at the top of Switchboard, its text color turns red. Switchboard device changelist

Source Control Buttons






Updates the source control information in Switchboard.



Syncs all connected devices to the changelist. If this button is on the device's row, Switchboard only syncs that device. Controls on the devices are locked during a sync.



Builds on all connected devices. If this button is on the device's row, Switchboard only builds on that device. Controls on the devices are locked during a build.

Sync and Build

Sync and Build

Syncs and builds on all connected devices. If you enabled Build Engine in the settings, this option will sync and build the engine before the project.

If you don't want to sync the engine or the project, select the --None-- entry in the changelist dropdown to ignore the engine or project in the next sync and build operation.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey