Trigger Playback via UDP

Last updated 5 May 2026

Backstage can receive plain text commands over UDP and map them to sequence actions — play, stop, pause, step advance, and more. This is the standard integration point for show controllers, touch panels, and custom control systems.

Before you start

  • Your external controller can send UDP packets to the Backstage server's IP address
  • You know which port your controller will send to (e.g. 7000)
  • You have the Node Editor open with a sequence already set up in the Sequencer

Steps

1. Add a UDPReceiver node

Right-click the canvas → Network → UDPReceiver.

  • Set the Port to match what your controller sends to (e.g. 7000).

  • Set the NIC dropdown to localhost to listen on all interfaces, or select a specific NIC.

  • Check the connected checkbox to start listening — the checkbox turns green when the socket is bound.

2. Add a Route node

Right-click → String → Route.

Connect the Message output of the UDPReceiver to the Input of the Route node.

Enter the command strings your controller will send — one per line. For example: PLAY STOP PAUSE NEXT.

The Route node creates one output pin per entry. When an incoming message matches a route, that output fires.

3. Add a Sequence node

Right-click → Sequence → Sequence. Select the sequence you want to control.

Action strings are case-sensitive — Play works, play does not.

Valid action strings:

String

Effect

Play

Start or resume playback

Stop

Stop and return to start

Pause

Pause at current position

Restart

Jump back to start and play

FadeIn

Fade in

FadeInPlay

Fade in and play

FadeOut

Fade out

FadeOutStop

Fade out then stop

FadeOutPause

Fade out then pause

4. Connect the routes to the Sequence node

The Route node strips the matched prefix and outputs the remainder (empty when the full message matched). Add a Datatype:String node for each command and set its value to the matching action string. Connect the Route output as a trigger to fire that string into the Sequence's Action input.

UDPReceiver Message
       |
  String:Route  (routes: PLAY STOP NEXT)
   /    |    \
PLAY  STOP  NEXT
  |     |     |
"Play" "Stop" "Restart"
        |
  Sequence:Sequence -> Action input

5. Test the connection

With the graph running, send a test packet from your controller or a UDP test tool. The UDPReceiver node displays the last received message. If the sequence responds, the wiring is correct.

Common Mistakes

  • Command received but sequence does nothing — the action string is case-sensitive. Verify the string in the Datatype:String node matches the exact casing in the action table above.

  • UDPReceiver connected checkbox stays red — the port is already in use by another process or a duplicate UDPReceiver node. Use a different port.

  • Route node fires but the Sequence Action input receives an empty string — the Route node outputs the remainder after matching (empty when the full message matched). A Datatype:String node with the correct action value must supply the string — the Route output is a trigger only.

Tips

  • The Sender output on the UDPReceiver emits the sender's IP and port — useful for logging or for sending a reply via a UDPSender node.

  • You can have multiple UDPReceiver nodes listening on different ports — one for sequence control, another for lighting cues.

  • To control a Stepper node from UDP instead of a Sequence directly, replace the Sequence node with a Sequence:Stepper and use its Bang input or step index input.

Your First Graph — basic graph setup for beginners

Build a Multi-Step Show — multi-step show with the Stepper node

Show Control & Automation — all show control and automation workflows