Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Unreal SDK

Vivox Unreal SDK

Vivox
​
​
Vivox Unreal SDK
  • Overview
  • Get started
  • Release notes
  • Developer guide
    • Set up your project
    • Unity Authentication Service in Unreal
    • Create voice and text channels
      • Channel management
      • Channel name criteria
      • Channel types
      • Positional channels
      • Channel identifiers for large scale games
      • Participant events
      • Join a channel
      • Leave a channel
      • Channel webhooks
      • Audio injection
      • Automatic connection recovery
    • Messaging
    • Audio management
    • Muting
    • In-game moderation
    • Android app development
    • iOS app development
    • Server-side recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Real-time recording
    • Transmission
    • Troubleshooting
  • Tutorials
  • Reference
  1. Vivox Unreal SDK documentation
  2. Channels

Participant events

Manage participant events when users join or leave channels.
Read time 1 minute
Last updated 8 months ago

The Vivox SDK posts information about individual participants in a channel that is visible to all other participants. This includes the following information:
  • When a user joins a channel
  • When a user leaves a channel
  • When there is an important change in user state, such as whether the user is speaking or typing
Handling participant events is optional. If there is no visualization of user state (for example, displaying who has voice enabled), then the game can ignore these events.
To provide a visualization of user state information, a game must handle the following messages:
  • IChannelSession::EventAfterParticipantAdded
  • IChannelSession::EventBeforeBeforeParticipantRemoved
  • IChannelSession::EventAfterParticipantUpdated
The following code displays an example of how to handle these messages:
void UMyGameClass::OnChannelParticipantAdded(const IParticipant &Participant){ ChannelId Channel = Participant.ParentChannelSession().Channel(); UE_LOG(MyLog, Log, TEXT("%s has been added to %s\n"), *Participant.Account().Name(), *Channel.Name());}void UMyGameClass::OnChannelParticipantRemoved(const IParticipant &Participant){ ChannelId Channel = Participant.ParentChannelSession().Channel(); UE_LOG(MyLog, Log, TEXT("%s has been removed from %s\n"), *Participant.Account().Name(), *Channel.Name());}void UMyGameClass::OnChannelParticipantUpdated(const IParticipant &Participant){ ChannelId Channel = Participant.ParentChannelSession().Channel(); UE_LOG(MyLog, Log, TEXT("%s has been updated in %s\n"), *Participant.Account().Name(), *Channel.Name());}
Note
Use the Participant.IsSelf() query to distinguish events that pertain to you from those that pertain to other users.

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page