secondlife / secondlife/viewer

Discord Rich Presence

Open
#4,418 16 comments 0 reactions 0 assignees View on GitHub

A pull request for this has already been merged.

  • #4457 by @erikkundiman — merged
enhancement help wanted stale team:viewer triage UX design
Dominant language
C++
Stars
299
Forks
146
Avg merge
1d 9h
Merged PRs (30d)
88

Description

Image

Rich Presence Examples from Discord's Overview

Problem

Many Second Life users engage in shared activities and communities that overlap with Discord, such as live events, social hangouts, and collaborative building. Discord Rich Presence provides a way to surface Second Life session activity directly in users' Discord profiles, improving discoverability, engagement, and community presence outside of the viewer.

Rich Presence is already implemented in several third-party viewers (e.g., Firestorm), and users have come to expect this feature. Without it, the official viewer appears outdated and disconnected from broader social gaming trends.

Solution

Add Discord Rich Presence in the official Second Life Viewer, allowing users to optionally share activity information through Discord while using the viewer.

The feature will be accessible via a new "Discord" tab in the Privacy section of the Preferences floater.

UI Mock

The preferences UI will include:

  • Enable Discord Integration (default: on)
  • Show Location (default: off)
Image
Technical Approach
  • Integrate the Discord Rich Presence API into the viewer.
  • Follow Discord Rich Presence Best Practices.
  • Support presence data such as:
    • Current region (if location sharing is enabled)
    • Time spent in session
  • (Optional) Investigate use of Discord's Social SDK as opposed to deprecated SDKs --for future extensibility.
Requirements
  • Bottle SDK as an autobuild package
  • Add Discord tab to Privacy section of Preferences floater.
    • Include checkbox to enable/disable Discord presence (default: enabled).
    • Include checkbox to enable/disable sharing location with presence (default: disabled).
  • Implement Rich Presence support following Discord's API and best practices.
  • Log presence updates at viewer startup, region change.
  • Use Social SDK if possible to future-proof the integration.
Goals and KPIs
  • Adoption rate: % of users with Discord Presence active
  • Engagement: Track correlation between Discord visibility and return sessions (if measurable)
Discord Developer Settings

Contact @bennettgoble, @kylelinden or @Geenz for Discord application settings (Application ID, etc.)

Application ID: 1394782217405862001



This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting /reward 100 (replace 100 with the amount).
🕵️‍♂️ If someone starts working on this issue to earn the rewards, they can comment /try to let everyone know!
🙌 And when they open the PR, they can comment /claim #4418 either in the PR description or in a PR's comment.

🪙 Also, everyone can tip any user commenting /tip 20 @bennettgoble (replace 20 with the amount, and @bennettgoble with the user to tip).

📖 If you want to learn more, check out our documentation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the issue requirements and linked pull request #4457, then consult the referenced Discord Rich Presence documentation and the viewer's existing preferences and build structure. Done means the Discord SDK is packaged, Privacy settings control presence and location sharing, and presence updates occur at startup and region changes.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.