secondlife / secondlife/viewer
Discord Rich Presence
A pull request for this has already been merged.
- #4457 by @erikkundiman — merged
- Dominant language
- C++
- Stars
- 299
- Forks
- 146
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 88
Description
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)
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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