Skip to main content
Skip table of contents

Open a URL in a New Browser Tab

This guide explains how to open an external URL in a new browser tab from an Unreal Engine application streamed to the browser using Pixel Streaming.

Video Preview

https://youtu.be/3h0v28EDiUo

You can open a new tab using either of the following two methods:

Method 1. Using the E3DS Features Plugin (Recommended)

This method is easier, faster, and less error-prone. Requires no custom coding.

Prerequisite:

Before proceeding with this method, ensure you have downloaded and installed the E3DS Features Plugin in your Unreal Engine project. For detailed instructions, refer to:
Download and Install the E3DS Features Plugin

Follow the steps below:

  1. Place the BP_E3DS_PS_Actor from the plugin content into your active level.

  2. From any actor, call the premade function E3DS Open URL.

  3. Enter your desired URL in the Url To Open field.

Note: Other plugins may also provide nodes named Open URL. To ensure you’re using the correct one, hover over the node. The tooltip should display:

Target is BPFL E3DS PS Functions

image-20251203-163701.png

In the example above, replace the URL with any destination you want.

Method 2. Using a Custom Blueprint (Not Recommended)

If you’re not experienced with Blueprint development, do not use Method 2. Please use Method 1 instead. Method 2 is more error-prone and increases the chance of implementation mistakes.

Follow the steps below:

  1. Create a new Blueprint in your project.

  2. Add the PixelStreamingInput component.

Only Blueprints that are based on the “Actor” class (or any of its child classes) can contain components.This includes Blueprints such as Actors, Pawns, Characters, and Player Controllers.

Blueprint types that cannot contain components include: Widgets, GameModes, and Level Blueprints.

  1. Create a custom event or function.

  2. Add a Send Pixel Streaming Response node.

  3. Send the following message as a string:

CODE
{"cmd":"launchUrl","value":"https://www.eagle3dstreaming.com"}

Make sure your event is getting called. To call events on Actors, their Actor object must either already be placed in the open map (by dragging the Blueprint from the Content Browser into the Level Editor window), or be spawned during playtime (using the “Spawn Actor from Class” node).

Unreal Engine also has a built-in Launch URL node, but you should not use it for Pixel Streaming. It is completely separate and does not work with streamed applications. We will provide a video soon demonstrating the differences between the two nodes.

image-20250901-192911.png

Figure 2. Manually opening a URL from Unreal via Pixel Streaming.

In the example above, replace the URL with any destination you want.

Verification

To confirm that the URL trigger is working:

  1. Connect to your remote editor session in your web browser by following the steps in our How to test in remote editor streaming documentation.

  2. Click inside the editor viewport to ensure it has focus.

  3. Press the 1 key on your keyboard.

Expected Result:

A new browser tab should open with the URL you specified, confirming that the Blueprint or Pixel Streaming message successfully triggered the browser to open the external URL.




Related Live Sessions

These YouTube Live sessions cover topics directly related to this guide:

 


 

Troubleshooting

 

 


Issue

Possible Cause

Solution

New URL does not open in a new browser tab

Browser popup or redirect blocking

  • Allow popups for the streaming domain.

  • Enable redirecting to new tabs in browser settings.

  • Check the browser address bar for blocked popup notifications and allow them.

Blueprint event is not triggered

Actor not placed or spawned in the level

Place the Blueprint actor in the level or spawn it at runtime using the Spawn Actor from Class node.

Wrong Open URL node used

Using Unreal’s built-in Launch URL or another plugin’s node

Ensure the node tooltip shows Target is BPFL E3DS PS Functions. Do not use Unreal’s built-in Launch URL node for Pixel Streaming.

Pixel Streaming message not received

Incorrect message format or missing component

Add the PixelStreamingInput component and ensure the message is valid JSON (e.g., {"cmd":"launchUrl","value":"https://www.eagle3dstreaming.com"}).

Keyboard input does not trigger URL

Browser or viewport does not have focus

Click inside the streamed viewport before pressing the trigger key. Verify input bindings.

Works locally but not in production

Browser policies differ between environments

  • Recheck popup and redirect permissions in production browsers.

  • Test with popup blockers disabled.

 


Need help?

🛠️ Contact our Support Team

💬 Join the Community on Discord

🆓 Get Started for free

 

Follow us on:

Facebook | GitHub | LinkedIn | YouTube

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.