LogoLogo
What's new?StatusMSquared
  • Morpheus Platform Documentation
  • What is Morpheus Platform?
    • Glossary
    • Interoperability
    • Support
    • EULA
  • Firewall Problems
  • 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
      • Editor Versions
      • Performance Guarantees
      • 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
        • 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
      • 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 Requirements
      • Broadcast
        • OBS Integration
      • Failover
      • Capacity and Queue Management
  • ADMINS
    • Access Control
      • Add Metaverse Contributors
      • Create 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
      • Send Events from Web
      • Send Events from Unreal
    • Chat
      • Integrate Pubnub with your Unreal Project
      • Add Moderation to Chat
Powered by GitBook
On this page
  • Actor Component
  • Adding interactions
  • Live Config
  • Interaction.UseNewInteractionSystem
  • Interaction.UseFocusCamMode
  • Interaction.DoesSingleOptionBypassMenu
  • Interaction.NameplateBehaviour.HideWhileInteracting
  • Interaction.NameplateBehaviour.FreezeWhileInteracting
  • Interaction.NameplateBehaviour.UseOverheadNameplateMode

Was this helpful?

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

Interactions

Creating interactions with world objects and between players

Last updated 3 months ago

Was this helpful?

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

31/10/2024: As interactions does not showcase things only MSquared can do, or functionality we can make more accessible than native Unreal would, we are dropping support for this and removing it from the platform.

This will affect things such as "Focus Cam" and several interactable props. It is unlikely that this system will be something we can provide an alternative for, given it is highly C++ driven.

We encourage users to begin implementing their own system and replacing usages of the M2 Interaction system early to avoid disruption.

Please reach out to your Support Team with any questions.

You can setup Interactions on Actor Blueprints and MMLs, which can then be triggered in-game.

There are two main ways to interact with objects in the world

  • Walk within the Interaction Range of the object, look at it to Target it, then F to interact

  • Hover over the object with your mouse, click to walk to the object and automatically interact

Actor Component

Attach this M2_Interactable Actor component to an Actor to make it interactable. The Display Name will be shown in a nameplate when interacting with the object. You can also specify the Range within which interaction is possible, visualized by the corresponding sphere collider. The Highlightable flag determines if the object will have an outline shown around it when looking at/hovering over it.​

In the Options map, you can specify the different interactions for your object. When you provide more than one option, interacting with the object will open a list where the desired option can be picked.

Adding interactions

After attaching an Interactable Component, in its Options map we add a generic M2 Interaction Button Option. We can specify a Prompt to show for this option, and optionally an ID as the value's Key to differentiate between multiple interactions.

To trigger functionality on our new interaction, we implement the OnButtonOptionRequested event from the Interactable Component. This event will be triggered whenever the interaction option is clicked (or on interaction, if it is the only option). The Option Id specifies the Name of the option that was triggered, while the Interaction Instigator is the Actor that triggered the option. This could be any Actor, but in the case of a player, it will be their Morpheus Actor.

As an example, we want to launch upward the Character who triggered our interaction. GetRenderTargetFromActor ensures we've got a Render Target (our Character), which we can then use for the remaining logic.

Live Config

Interaction.UseNewInteractionSystem

Enabled by default. Disabling this will revert to the unsupported and soon to be deprecated legacy version of this system.

Interaction.UseFocusCamMode

When enabled, any object that has the M2_FocusCameraComponent is able to be made the main focus of a user's screen when interacted with.

Disabling this means that interaction will not be available.

Interaction.DoesSingleOptionBypassMenu

Interaction.NameplateBehaviour.HideWhileInteracting

When set to true, nameplates will be hidden while an interaction is ongoing.

CausesFreezeWhileInteracting to be ignored if true (as there are no nameplates to freeze).

Interaction.NameplateBehaviour.FreezeWhileInteracting

When set to true, Interactable nameplates will not respond to updates from targeting strategy while an interaction is ongoing, ie. if your targeting strategy selects 'looked at' objects and you:

  • Look at object A and interact

  • Look at object B.

IfFreezeWhileInteracting is false then Object B's nameplate will display, if true then Object A's nameplate will display.

Only takes effect if HideWhileInteracting is false.

Interaction.NameplateBehaviour.UseOverheadNameplateMode

When enabled the Nameplate of the object you are targeting is displayed over the object itself, instead of the default behaviour of displaying the name above the Quickbar.

The resulting example interactable

When set to true, an interactable with only a single interaction option will by default bypass the interaction menu upon interaction and will immediately trigger the sole interaction option. This can be for individual objects/options

overridden