LogoLogo
API Status
  • 👋Welcome
  • 🌐What is Morpheus Platform?
    • Interoperability
  • â„šī¸Help
    • 📗Glossary
    • 🆘Support
    • Firewall problems
    • EULA
  • CREATION
    • 🎮Unreal Development
      • ⚡Get Started
        • âš’ī¸Download the Editor
        • âĢUpload Content
        • 🌎Creating your own map
        • 📝Morpheus Base Project
        • ❓Differences from Unreal
          • 🧍Character Configuration
        • 📡Morpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • 📚Features & Guides
        • 📒Example Plugin
          • Nameplates
          • In-game roles
          • Resizing
        • 🏊Actor Pooling
        • 🔊Audio
        • 🎭Avatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT collection
          • Capsules and Mesh Transforms
        • 🤖Bots
        • đŸŽ™ī¸Chat
          • Unreal Text Chat
        • đŸŽ›ī¸Control Panels
          • Control Panel Configuration
          • DJ booth mission control
          • Observer Controls
        • 🔉Crowd Audio
        • đŸ¤ŧCrowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • 🍱Helpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics settings
          • Listening to inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • đŸ–Ĩī¸Loading Screen
        • ⚡Live Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • 🧊MML
        • đŸ•ēMotion Capture
        • 📡Networking
        • đŸ“ĸNotifications
        • Raycastable Crowd
        • 🌐Singletons
        • 📱Streaming & Multiplatform
          • GFN on mobile
        • đŸ–Ĩī¸UI
          • "UI Mode"
        • đŸ—ƒī¸User Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • đŸ“ēVideo Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • 🐞Visual Debugging
          • Inspector
        • đŸĒŸWeb UI
        • Online Services
          • KV Store Service
        • 💠Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • âœˆī¸World Travel
          • World Travel in the editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • 🔑Workflows
        • â†—ī¸Upgrade the Editor
          • đŸ–Ĩī¸Version History
        • âš™ī¸Editing Project Settings
        • 📈Profiling
        • đŸ§ēMarketplace Importing
        • đŸ› ī¸Extra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • 📚Useful Reading
        • ⭐Best Practices
    • 🌎Worlds
      • 📩Invite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • 📅Running events
      • ✅Large scale events - Checklist
      • 👾Anti-Cheat (EAC)
      • 🎮Player Entry
        • 📱React Native
        • Steam
        • đŸ’ģHardware Reqs
      • đŸŽĨBroadcast
        • 📹OBS Integration
      • Failover
      • 🏁Capacity And Queue Management
  • ADMINS
    • đŸ‘ĒAccess Control
      • Adding metaverse contributors
      • Creating a new project
    • 💲Pricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • âš™ī¸Settings
      • đŸ—ƒī¸Projects
  • APIs and Tooling
    • đŸ–Ĩī¸API Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • đŸ’ģTemplate Web App
      • đŸ’ĸModeration
    • Pixel Streaming
    • 🚀Launcher
  • Integrations
    • 📊Analytics
      • Sending events from web
      • 🎮Sending Events from Unreal
    • đŸ’ŦChat
      • 🎮Integrating Pubnub with your Unreal Project
      • Adding Moderation to Chat
Powered by GitBook
On this page
  • Overview
  • Integration
  • How to enable
  • How to enable Text chat in Editor
  • Adding Chat to your HUD
  • Adding Mobile Support
  • Full Live Config Setting List

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Features & Guides
  4. Chat

PubNub Text Chat

Text chat between the web and in event experience

Last updated 3 months ago

Was this helpful?

Due for Simplification, please speak to support for further info.

31/01/2025: MSquared is not maintaining the text chat that uses PubNub and Community Sift. We do provide a simple example of text chat that does not use these features (see Unreal Text Chat). If customers wish to continue using these services, they need to speak to the Solutions Engineering team for guidance on how to implement this within their project outside of what MSquared provides off the shelf.

When MSquared drops support for PubNub, we will no longer support Web-to-Unreal text chat. Chat will be limited to Unreal Worlds within MSquared.

This legacy text chat is used in the deprecated UI elements (WBP_Origin_HUD still uses the deprecated WBP_M2_TextChat, however the M2 Example plugin does not use this, instead using a different WBP_M2Example_TextChat, which points to the new Unreal chat component.

Until MSquared completely drops support of PubNub and Community sift, they will remain functional. When the new simplified chat lands, the old chat widget will remain within the platform for customer use.

MSquared will not be addressing non-critical and cosmetic issues relating to Text Chat during this process of simplification. Please reach out to your Support Engineers with concerns.

Beta Quality - Customers are encouraged to test and use Beta features in their experiences, but may still require some support

Overview

The ability to chat on web and in game, including:

  • Chat from Web to Unreal and back

  • Works on Desktop and Mobile*

  • Text appears in game above the head

  • Ability to hide and show the widget, and custom sizing

  • User name and profile image appending to the message

Integration

  1. Make sure you have a safe internal launch context id set up for your editor users.

  2. Configure the variable Social.Chat.Editor.LaunchContextId in deployment.json with this value (see below)

How to enable

  1. Enable TextChat.UseCloudChat in game.json.

  2. Make sure your in-game HUD is set up to use the new chat system

The following settings in game.json influence the Text Chat feature:

Setting

Description

Default Value

TextChat.UseCloudChat

Enables the cloud chat functionality

true

TextChat.ForceMobileView

Forces mobile view regardless of detected platform

false

How to enable Text chat in Editor

Create a deployment.override.json in your project live config directory (Config/LiveConfig/Overrides) and add the following, replacing the LaunchContextId with a launch context in your project. This should ideally be a persistent launch context so it will always be available

This uses a Launch Context id, not a World Id. This will likely be updated in the near future.

{ 
    "Social": { 
        "Chat": { 
            "Editor": { 
                "LaunchContextSource": "LiveConfigChatLaunchContext", 
                "LaunchContextId": [REPLACE WITH LAUNCH CONTEXT ID] 
            }
        }
    }
}

The following deployment.json influence the Text Chat feature:

Setting

Description

Default Value

Social.Chat.LaunchContextSource

Determines how the client should determine the launch context id to use for chat.

The values are as follows:

“LiveConfigWorldId” (use the legacy M2.Domains.WorldId value) - this is how the previous system worked

“LiveConfigChatLaunchContext” - a setting provided from live config (Social.Chat.LaunchContextId)

“CommandLineLaunchContext” - use the -LaunchContextId command line argument the game was booted from (default behaviour if not set)

CommandLineLaunchContext (the game uses the commandline argument -LaunchContextId)

Social.Chat.LaunchContextId

Use this launch context id for chat.

Only when Social.Chat.LaunchContextSource is set to LiveConfigChatLaunchContext)

Social.Chat.Editor.LaunchContextSource

Similar to Social.Chat.LaunchContextSource, but determine how the editor should find its chat launch context.

LiveConfigChatLaunchContext

Social.Chat.Editor.LaunchContextId

Set this to a “known good” (safe/internal) launch context that should be used for chat in your project.

This is required for editor users to use chat.

You can create one in the M2 Web Platform Admin UI

M2.Domains.WorldId

(LEGACY)

The launch context id in the web to scope the chat to.

This must match the web portals if you want cross-experience chat.

Adding Chat to your HUD

Add WBP_M2_TextChat to your HUD and ensure it is stretched across the whole screen.

Adding Mobile Support

WBP_M2_TextChat does not yet support mobile platforms. If your HUD is or derives from WBP_TH_HUD then your good to go. Otherwise follow the below steps:

Use a widget switcher to switch between WBP_M2_TextChat and WBP_TextChatWindow_Mobile with the following code to allow it to automatically revert to the old UI for mobile devices.

  1. On Bootflow finished, add a handle to get live config updates.

  1. Create a function called Update Live Config and add the following:

Full Live Config Setting List

Settings marked (LEGACY) may be removed in a future update

Setting
Description
Default Value

TextChat.GlobalChatEnabled

Enables the Global Chat channel

true

TextChat.UseCloudChat

Enables use of the cloud based chat system, linking the in game chat with web chat

true

TextChat.ForceMobileView

Forces the old Chat UI (WBP_TextChatWindow_Mobile) to a full screen mobile view, regardless of platform or device used

false

TextChat.ForceMobileUI

Force the old Chat UI (WBP_TextChatWindow_Mobile) to be used over the new WBP_M2_TextChat regardless of platform or device used

false

TextChat.StartMinimized

Sets the chat interfaces to start in a minimized state

true

TextChat.EmojiMenuEnabled

Enables the in game emoji menu to be used. Only supported in WBP_M2_TextChat

true

TextChat.ReactionsEnabled

Enables message reactions. Still WIP, not yet supported in Origin

false

TextChat.MaxHistoryMessages

Max messages to be displayed in the chat interface

100

TextChat.LocalChatEnabled

(LEGACY)

Enables Local chat functionality for Experience only chat

true

TextChat.LocalRateLimitPerSecond

(LEGACY)

Maximum number of messages a player can send per second

10

TextChat.LocalRateLimitQueueSize

(LEGACY)

Defines the message queue size for the local chat server

100

TextChat.AllowQuestions

(LEGACY)

Allows questions to be sent in chat

false

The in-and-out-experience chat is backed by . For battle-tested, in-experience only chat, see .

* Mobile is currently only supported via the old chat UI (). See to continue use of this version of the text chat for desktop

🎮
📚
đŸŽ™ī¸
PubNub
Experience Only Chat
Cloud Chat
Adding Mobile support
Text Chat in game with Emoji Menu
Add a Handle to Config Updated to get Live config event updates
Create a function which determines which chat UI version to use