Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Core SDK

Vivox Core SDK

Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
    • Channels
      • Channel name criteria
      • Channel types
      • Echo channels
      • Positional channels
      • Volume differences
      • Channel identifiers for large scale games
      • Participant events
      • Channel webhooks
      • Join a channel
      • Leave a channel
      • Kick a user from a channel
      • Manage session groups
      • Audio injection
      • Methods for setting audio levels
      • Derumbler
      • Automatic connection recovery
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation

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:
  • vx_evt_participant_added
  • vx_evt_participant_removed
  • vx_evt_participant_updated
The following code displays an example of how to handle these messages:
void HandleParticipantAddedEvent(vx_evt_participant_added *evt){ printf("User %s joined %s\n", evt->encoded_uri_with_tag, evt->session_handle);}void HandleParticipantRemovedEvent(vx_evt_participant_removed *evt){ printf("User %s left %s\n", evt->encoded_uri_with_tag, evt->session_handle);}void HandleParticipantUpdatedEvent(vx_evt_participant_updated *evt){ printf("User %s %s speaking to %s\n", evt->encoded_uri_with_tag,evt->is_speaking ? "is" : "is not", evt->session_handle);}
When keeping track of participant state, it is important to use the
encoded_uri_with_tag
field as the unique identifier of the participant. This allows the game to distinguish between users who have left a channel and users who have rejoined a channel.
Note
Use the
is_current_user
field to distinguish between events that pertain to you from events 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