Built-in Voice & Text Chat

This page explains the resolution settings available for customizing the video streaming experience in Streampixel.

πŸ“žBuilt-in Voice and Text Chat Guide

This page provides a comprehensive guide on using Streampixel’s built-in voice and text chat, enabling real-time communication within your Unreal Engine applications. You’ll learn how to enable chat options, understand the system behavior, and customize chat interactions for various use cases like collaborative apps, multiplayer simulations, or virtual showrooms.


🧩 Chat Features Overview

Streampixel provides integrated text and voice chat features out of the box, available to enable per project.

Text Chat

Enables a real-time chat window for users to exchange messages during the stream.

Voice Chat

Activates high-quality, low-latency voice communication using WebRTC.

Chat UI Theme

Select between Light or Dark theme for the chat interface.

Chat UI Position

Align the chat interface to the Left or Right side of the screen.

Mute on Entry

Automatically mute the microphone of each user when they join the session.

Communication Startup Behavior

Choose whether chat starts automatically with the session or only when triggered by your Unreal application.


Enabling Communication

To enable chat features for your project:

  1. Go to your Project Dashboard.

  2. Navigate to the Communication tab.

  3. Toggle Text Chat and/or Voice Chat to β€œEnabled”.

  4. Choose your Chat UI Position (Left or Right).

  5. Set your Chat UI Theme (Light or Dark).

  6. (Optional) Enable Mute User on Entry if you want microphones to be muted when users join.


Communication Startup Behavior

This setting determines when the chat interface appears during a session.

Option
Behavior

Start on Session Begin

The chat interface becomes visible automatically as soon as the stream starts.

Start When Triggered by App

The chat interface is only shown when explicitly triggered from the Unreal Engine app, Iframe or WebSDK.


Programmatic Connection & Disconnection

You can start or stop the built-in communication system β€” including both text and voice chat β€” programmatically by sending messages from either:

  • Unreal Engine (via Pixel Streaming Blueprint)

  • A custom frontend (via iframe message)

  • WebSDK (window.postMessage() or WebSocket command)

This gives you full control over when and how communication features are enabled in your application.


πŸ’‘ Trigger Methods

This message can be sent via:

  • Unreal Engine: Using send pixel streaming response node via the blueprints

  • iframe Embed: Using iframe.contentWindow.postMessage(...)


πŸ”Œ Connect to Chat

To start a communication session, send the following JSON message either from Unreal or Iframe:

{
  "message": {
    "type": "comms",
    "value": {
      "name": "Alice",
      "pfpUrl": "https://example.com/avatar.jpg",
      "roomId": "room-123"
    }
  }
}

Parameters:

  • name (string) – Display name of the user in the chat window.

  • pfpUrl (string) – URL to the user's profile picture. This will be shown next to their messages and in the voice chat panel.

  • roomId (string) – A unique ID representing a communication room. Users with the same roomId will be able to see and talk to each other.

If roomId is not specified, all users will be placed into a default room based on the project β€” i.e., one room per project. This means every user connected to the same project instance will be able to communicate.

πŸ”Œ Disconnect from Chat

To disconnect the user from the chat system, simply send:

{
  "message": {
    "type": "comms",
    "value": "disconnect"
  }
}

This will:

  • Immediately stop both voice and text communication

  • Remove the user from the current room

  • Clean up the UI for a seamless experience


Unreal Engine Setup (Blueprint Method)

To trigger chat from Unreal:

βœ… Start Connection (Blueprint)

Use the Send Pixel Streaming Response node. Append the following string parts to create the message:

A: {"message":{"type":"comms","value":{"name":"
B: Input Display Name
C: ","pfpUrl":"
D: Input URL
E: ","roomId":"
F: Input Room ID
G: "}}}

πŸ”„ Disconnect (Blueprint)

To disconnect from chat, send:

{"message":{"type":"comms","value":"disconnect"}}

Use the same Send Pixel Streaming Response method.


πŸ” Iframe Setup

If you’re embedding the experience via an iframe, you can initiate or terminate communication by sending the same JSON messages (πŸ”Œ Connect to Chat and πŸ”„ Disconnect (Blueprint) Jsons.) described above using postMessage. No additional configuration is required β€” just ensure the iframe is actively streaming your project. For more info check Stream Control Commands

Last updated