Skip to main content

10 · Unreal Engine (UE) (BETA)

A UE row folds a live Unreal Engine Pixel Streaming session into Pulsar. Pulsar runs the signalling server for you, Unreal connects to it, and you can broadcast a chosen UE camera out over SRT/NDI/DeckLink, hand out browser-viewer URLs, and drive interactive per-viewer cameras from Unreal. Use it when you want a live UE render on the same control surface as your other sources.

Turn on UE Source Type in Main Settings → Beta Features first. You can have one UE row at a time.


Add a UE row

  1. On a source row, click the coloured input-type chip (left of the source area, showing e.g. NDI / GUI / SRT) to open the type dropdown.

  2. Pick the burnt-orange UE entry. The row switches to a UE row with the X–Y–Z status chain and the RC / CFG / + CAM buttons.

The type chip is locked while a row is streaming, so switch types before you go live.


Set up your Unreal project (CFG wizard)

The CFG button opens a 3-step setup wizard. This is the main way to get Unreal ready.

  1. Click CFG on the UE row.

  2. Select project. Click Browse… and pick your project's .uproject folder. Pulsar shows the project name and checks the plugin.

  3. Plugin. A badge shows whether the PulsarStreaming plugin is up to date. If not, click Install Plugin / Update to drop the bundled plugin into the project.

  4. Next steps in Unreal. Follow the on-screen checklist (below).

  5. Click Close — Pulsar re-checks the plugin.

The CFG button flashes amber when a newer bundled plugin is available. Open CFG and run the update to clear it.

Finishing setup inside Unreal

  1. Right-click your .uproject → generate project files.

  2. Build the project (Development Editor) in Visual Studio or Xcode.

  3. In UE, enable the PulsarStreaming, Pixel Streaming 2, and Remote Control plugins, then restart UE.

  4. Place one PulsarCameraManager actor in the level.

  5. Set the Wilbur Signalling URL to ws://127.0.0.1:8888 under Edit → Project Settings → Plugins → Pulsar Streaming.

  6. Right-click the actor → Copy Reference, and set it as PULSAR_UE_RC_ACTOR_PATH.

  7. Press Play → Standalone Game, then click RC in Pulsar to verify.


Bring UE online and verify

  1. In Unreal, press Play → Standalone Game so it connects to Pulsar.

  2. If the UE machine needs the address, copy the UE→ streamer URL pill (ws://<host>:8888) and hand it over.

  3. On the UE row, click RC.

  4. Wait for it to turn green RC✔ ("UE RC API reachable — actor found").

A red RC✘ means UE isn't running, the Remote Control plugin is off, or the actor path is wrong. Fix it and click RC again. Pulsar also re-checks every 10 seconds, so the dot can recover on its own once UE comes up.

The X–Y–Z status chain

The three dots tell you, left to right, where things stand:

Dot

Means

Green when

X

UE streamer

UE is connected (label UE×N)

Y

Pulsar signalling

the server is running

Z

Viewer

video is flowing to viewers (label View×N)

Hover any dot for a tooltip with streamer, signalling status, and viewer count. The chain reads "starting…" while the server boots; the UE→ and WEB→ URL pills appear once it's running. Click either pill to copy.


Add an interactive viewer camera and put it to air

Each + CAM creates a per-viewer interactive camera in Unreal.

  1. Make sure UE is connected (the X dot is green) — + CAM is greyed until then.

  2. Click + CAM. Pulsar creates the camera, copies its viewer URL to your clipboard, and adds a camera session card under the row. The first camera you add automatically becomes the LIVE broadcast camera.

  3. Watch the card move through Calling UE… → Ready → Live.

  4. Share it: click the card's to open in a browser, or copy its URL pill (it's also already on your clipboard).

  5. To broadcast it out, enable an output (SRT/NDI/DeckLink) and click the card's SWITCH to mark it LIVE.

  6. Add more cameras with + CAM (up to 4) and click another card's SWITCH to cut to it.

SWITCH goes on-air instantly only if the row is already streaming. Otherwise it just sets which camera goes live when you next start.

Camera card controls

Control

What it does

SWITCH / LIVE

Picks the live broadcast camera for the row's outputs (shown once an output is enabled).

Opens that camera's viewer URL in your browser.

Copy URL

Copies that camera's viewer URL.

Releases that camera in Unreal.

↻ Retry

Re-sends the request for a failed camera — use if UE wasn't in Play mode or RC was unreachable.

A card may also show an RC✔ / RC✘ badge, an badge if it was recovered after a Pulsar restart, and a status word (Calling UE… / Ready / Live / RC Failed / Timed Out).


Broadcast out via SRT / NDI / DeckLink

The live camera is encoded out through each enabled output using your full encoder settings (codec, bitrate, profile, pixel format, resolution).

Enable Output 1 and/or Output 2 and hit START as usual. With both enabled they run independently — if one drops or reconnects, the other keeps going.


Make the UE feed available to Orbit viewers

The ORBIT toggle on the UE row exposes the feed to Orbit viewers. It's view-only and separate from the camera-control buttons.

  1. Enable Orbit in Main Settings → Orbit Streaming.

  2. On the UE row header, click the round amber ORBIT toggle.


Tips & gotchas

  • + CAM needs a live UE connection. If it won't activate, put UE into Play mode first.

  • RC is your recovery tool. It works even while UE is disconnected, and the 10-second auto-ping lets the dot self-heal. RC✘ = UE not running, Remote Control plugin off, or wrong actor path.

  • Up to 4 cameras. Hitting the cap shows "Max viewer sessions reached."

  • Configure UE via CFG, not the row's source area. Project and plugin setup live in the CFG wizard; signalling runs on ports 8888 (streamer) and 18888 (web viewer).

  • ↩ on a card means the camera was recovered from a previous session where UE stayed in Play mode through a restart.

The UE row, CFG wizard, and all its controls work the same on macOS and Windows.


See also: Introduction & Core Concepts · Outputs (SRT/NDI) · Encoding, Bitrate & Colour · Orbit Streaming · Settings & Configuration · Troubleshooting

Did this answer your question?