Skip to main content
Skip table of contents

Detecting User's Device in pixel streaming

Eagle 3D Streaming allows your Unreal Engine app to detect the end user’s device (OS, platform type, input capabilities, etc.) by leveraging the browser's native information. This enables you to dynamically adjust controls and UI — for example, enabling touch-based interaction for mobile users and mouse-based navigation for desktops.

You can do this in one of two ways:

Option 1. Send Message Directly

  1. Add a Pixel Streaming Input component in your Blueprint.

  2. Use the Send Pixel Streaming Response node to send the following JSON:

    CODE
    {"cmd":"sendDeviceInfo"}

image-20250805-084427.png

Figure 1. Send Message Directly

This instructs the browser to return the user’s device info.

Use Case: For developers building custom communication pipelines.

Option 2. Use E3DS Features Plugin (Recommended)

  1. Add an instance of E3DS_PS_actor (from the plugin) to your level.

  2. Call the built-in function:
    👉 Request User Device Info

💡 Bonus: The plugin also includes a helper node
👉 Detect User Device
which automatically parses the response and returns key values like:

  • OS Name

  • Is Touch Device (✅ / ❌)

image-20250805-084524.png

Figure 2. Using E3DS Feature Plugin

For calling any function E3DS features plugin you need to have one instance of E3DS_PS_actor in your level you can find this actor in the plugin’s content

Once the E3DS platform receives your request for user device information, it will respond with a JSON message similar to the example below:

CODE
{
  "type": "takeUserDeviceInfo",
  "userDeviceInfo": {
    "os": {
      "name": "Windows",
      "short_name": "WIN",
      "version": "10",
      "platform": "x64",
      "family": "Windows"
    },
    // ... additional device information
  }
}

You will receive other device-related data as well (such as browser info, engine, etc.), but in most cases, you’ll only need the os.name and os.short_name fields.

Here are the possible values you might receive in the os.name and os.short_name fields:

name

short_name

Windows

WIN

macOS

MAC

Linux

LIN

ChromeOS

CHR

Android

AND

iOS

IOS

You can parse the message and extract the field you need, using your own custom functions, installing plugins (e.g. Json Utilities, VaRest,…) or use E3DS Feature Template function Detect User Device simply connect the function to your On Input Event and this function will extract user’s device and also tell you whether it is a touch device or not

image-20250805-113521.png

Figure 3. Collect Device Info

as an example the blueprint graph above will print the following on an android device.

image-20250805-113628.png

Figure 4. Showing Device Info


 


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.