Develop

Group Presence package

Updated: Sep 4, 2026
The Platform SDK Group Presence Package enables users to see which friends are in joinable areas of applications and facilitates social discovery and joining. The package sets and clears user presence in joinable destinations within applications, indicating when users are in areas that support multiplayer interaction.
Friends can see presence status and join directly into these shared experiences. This functionality is currently supported only for immersive mode applications, not for 2D panel apps, and is essential for social VR experiences and multiplayer games.

Before you begin

How to install

  1. Add the following to your project’s ./gradle/libs.versions.toml file:
     [libraries]
     # Existing lines
     group-presence-kotlin = { module = "com.meta.horizon.platform.sdk:group-presence-kotlin", version.ref = "horizonPlatformSdk" }
    
     dependencies {
         // Existing lines
         implementation(libs.group.presence.kotlin)
     }
    
  2. In Android Studio, click File > Sync Project with Gradle Files to install the package.
  3. Click Build > Generate App Bundles or APKs > Generate APKs.
  4. In the “External Libraries” section of your project, confirm that these packages are listed.
     com.meta.horizon.platform.sdk:core-kotlin
     com.meta.horizon.platform.sdk:group-presence-kotlin
    
    Now you can initialize the Platform SDK and use Group Presence package functions in your app.

API reference

See the exact requests and responses in the Platform SDK Group Presence Package.

Test this on Meta Spatial Simulator

Group Presence behaves differently depending on which API you call. The panel and dialog APIs, such as launchInvitePanel and launchRejoinDialog, open a simulated dialog — launchRejoinDialog also persists the presence state you confirm:
In Meta Spatial Simulator, these APIs use a simulated dialog.
The presence-state APIs, such as set, clear, and the individual setters:
These read and write local sample data, work offline, and persist across calls. Reset it with the common.reset_data command.
The invite and destination APIs, such as sendInvites, getInvitableUsers, and getDestinations:
These call the Meta backend. Signed in they return real responses; signed out they return an authentication error rather than sample data.
The notification flows, invitationsSent and joinIntentReceived:
These deliver nothing until you send the corresponding simulator event with the Platform SDK command-line interface, which uses adb broadcasts.