Make something like Discord Rich Presence

(#927) Feature Open: Planned profiles
Currently, Fluxer feels a bit "lonely" for a basic user. When I’m using the app, I can’t see what other people are up to, and they can’t see what I’m doing. On platforms like Discord, the "Rich Presence" feature makes everything feel more alive because you can see statuses and current activities at a glance. I think Fluxer is missing that social spark that tells you: "Hey, the community is active right now!" I’d love to see something like RPC feature built directly into the platform. It would be cool if our profiles showed things like:
  • Current Activity: e.g., "Browsing assets", "Editing a project", or just "Idle".
  • Session Timer: Showing how long someone has been active.
  • Custom Status: A simple text line where we can write what’s on our mind.
Just a reminder: I know the team is currently swamped with much more important core features and bug fixes. I’m posting this as a "future request" – something to think about for the long term when the platform is ready for more social features. No rush at all!

Merged posts

These posts were merged into this one. Their comments are now part of the conversation below, marked with where they came from.

Report details

Current problem

Currently, there are 5 status options, Online, Idle, DnD, Invisible and Custom, which lets you change the name of the status. Sometimes i just put my custom status as "Playing Skate. on Steam" or similiar, which worked, however some people have shared computers, including me, so sometimes i can get interrupted and forget to change my status, so people think i have 58 hours on a game i still havent even set up, and yes, sometimes even with rpc i will need the custom manual thing, because there are some things the app cant really notice, for example playing a web game, if it looked at every website i opened, (nobody wants that) it would be invasive.

Proposed change

Add a RPC feature, with nvidia integration, roblox integration, and of course STEAM AND EPIC INTEGRATION and maybe even minecraft launcher/client integration, because nobody plays with the official launcher anymore, with an optional feature of the game logo shown, if not able to pull logo, use the launcher's icon instead. an example is discord's RPC, i tried to fork it but since i dont know a thing about code other than print("hello world") and maybe a tiny bit of luau, i used ai and it was STUPID. so i gave up. but im still a human being, i WILL and HAVE forgotten to change my status, and now im scared people think i have 100 hours ON A GAME I HAVENT PLAYED FOR 20 MINUTES pasted-image-1.png <-- unedited btw

Platform

macOS, Windows, Linux, Web, Android, iOS

Additional information

here i wouldve showed a discord rpc example but all of them are modded. if you add this, please keep the manual feature.

Merged from #1131 RPC/Activity via Servers/Serverless

RexSystemoriginally by @NellowTCS on GitHub

Report details

Problem

Currently RPC and Activity is in the roadmap and also discussed here. However, I haven’t seen clarification on whether server‑side or serverless‑originated activity updates are intended to be supported. My use case is: a web app (HTMLPlayer (beta)) sends some state to a backend (or serverless function), and that updates my Fluxer activity. Will this be supported? I’m mainly asking because Discord explicitly forbids RPC from external servers unless you have special permission, and I would love it if Fluxer supported it via server.

Proposed solution

Clarify whether server/serverless‑originated activity updates are permitted, and if so, what constraints or auth model they should follow. If this is intended to be supported, having a documented pattern or recommended approach (maybe a token‑scoped endpoint, app‑level credentials, etc.).

17 comments

Sign in with Fluxer to comment and vote.
Comment by Rex
RexSystem 3 votes
Status changed from Shipped to Planned
Reopened as planned because staff said rich presence was being worked on and nothing shows it shipped.
Comment by Jonas
Hi, I have some ideas to share on what might be worth adding to Rich Presence, which Discord lacks at the moment:
  • Please do not rely on an "Application" mechanism to show text after "Listening to" or "Playing". On Discord, you need to create a new application in the developer portal every time you want to show a different text and there is no way to dynamically set it. There should be a way to show arbitrary text.
  • Allow embedding clickable text (links). With Discord it's not possible to e.g. show a list of comma-separated artists and make each one link to a different web page, it's only possible to make the entire line clickable. The Spotify integration has individually clickable artists as an exclusive feature though. Markdown formatting in general would probably be cool as well (italic, bold, links, etc.)
  • Prevent time shifting due to clock skew. With Discord RPC I have noticed that the timeline when listening to a song is shown out of sync for everyone else, if your local system time is out of sync. With Discord you need to send a start and end timestamp which causes this skew. It would be great if there was some basic mechanism to ensure no such skew happens with Fluxer presences (e.g. by not using timestamps at all or by having an endpoint to get the current server time. I know doing it well is more complicated than that, but you get the idea). This is also important for the next suggestion
  • Add a way to make some text lines in the presence change over time, without having to continuously update the RPC and stress or be stopped by rate limits. One use case would be showing lyrics of a song. At t=0s it shows one text, at t=3.4s it shows another text, etc. That would be one chunk of data that could be sent to the API and then be rendered locally. You can really think of it as a GIF, but in text format. A way to loop it and not loop it would probably be great too. Being able to show metadata of the current song and lyrics would be awesome
  • Allow showing a small image (like a logo or icon) that doesn't cover the large image. Currently Spotify and apps like League of Legends, Roblox and YouTube get an exclusive small icon next to the "Playing ..." text. Normal people are limited to showing a custom icon that covers part of the large image, which isn't great
  • At least three lines of text please (just wanna mention this as something that is important to me, e.g. to show title, artist and album of a song I listen to)
  • Allow showing large cover images and animated videos. Discord only supports GIF for animated videos, WebP support would be great too though, since it's a much more efficient file format
There's probably more that doesn't come to mind yet and that I might add to this comment later. EDIT 13.10.26: Added note about arbitrary text after "Listening to", etc.
Comment by @Dontknow09
RexSystem 1 vote originally by @Dontknow09 on GitHub
I think we could just like shadow the normal discord rpc calls and react to them so most apps and games should work out of the box?
Comment by @Wdboyes13
RexSystem 1 vote originally by @Wdboyes13 on GitHub
This would be good, since it opens up the possibility of things like Spotify integration similar to discords.
Comment by @PhrolovaMoe
RexSystem 1 vote originally by @PhrolovaMoe on GitHub 4 replies
Discord just opens a unix domain socket (or multiple, 0-9) at $XDG_RUNTIME_DIR, which apps that have RPC support hook into. each message is a header (opcode as uint32LE + length as uint32LE) followed by a JSON payload. on top of this, Discord on Linux periodically scans /proc for processes and matches them against a database for automatic matching the opcodes are: 0 for handshake, 1 for frame (for setting activity, etc.), 2 for close, 3 for ping, and 4 for pong for maximum compatibility, we probably want to mimic what Discord does with its unix sockets, but this would prevent you from using Fluxer and Discord at the same time here's an example:
$ eza $XDG_RUNTIME_DIR | grep -i discord-ipc

discord-ipc-0
if this is a desired feature, I can try implementing it
Comment by @az-z31
RexSystem 1 vote originally by @az-z31 on GitHub
Why would mimicking Discord’s IPC necessarily prevent simultaneous usage? Couldn’t you namespace the socket instead of reusing discord-ipc-0?
Comment by @PhrolovaMoe
RexSystem 1 vote originally by @PhrolovaMoe on GitHub
you can have 10 sockets at once, but apps hook into the first free socket. if an app hooks into Discord's socket first, we can't do anything about it. if the user disabled RPC in Discord though, it could work Fluxer could have it's own sockets as well (fluxer-ipc-{0..9}), it's just that most apps won't implement RPC for Fluxer
Comment by @Dontknow09
RexSystem 1 vote originally by @Dontknow09 on GitHub
Why would mimicking Discord’s IPC necessarily prevent simultaneous usage? Couldn’t you namespace the socket instead of reusing discord-ipc-0?
Because using the same sockets as discord can ensure backwards compatibility with older games that will never add fluxer specific rpc.
for maximum compatibility, we probably want to mimic what Discord does with its unix sockets, but this would prevent you from using Fluxer and Discord at the same time
sorry if I know little about this but, can't we just intercept or read from the same socket as discord?
Comment by @Wdboyes13
RexSystem 1 vote originally by @Wdboyes13 on GitHub
yeah i was thinking that intercepting socket traffic targetted for discord and if discord is not open, creating that socket from fluxer, so that apps that support discord rpc automatically support fluxer.
Comment by @ZackMercury
RexSystem 1 vote originally by @ZackMercury on GitHub 5 replies
I don't want to see that in Fluxer. How do I downvote a feature? What I suggest instead is Activity Overlay
Comment by @Dontknow09
RexSystem 1 vote originally by @Dontknow09 on GitHub
Such negativity...
What I suggest instead is Activity Overlay
what does that mean?
Comment by @Dontknow09
RexSystem 1 vote originally by @Dontknow09 on GitHub
afaik that's exactly what we were talking about lol
Comment by @NellowTCS
RexSystem 1 vote originally by @NellowTCS on GitHub
I haven’t seen clarification on whether server‑side or serverless‑originated activity updates are intended to be supported. My use case is: a web app (HTMLPlayer (beta)) sends some state to a backend (or serverless function), and that updates my Fluxer activity. Will this be supported? I’m mainly asking because Discord explicitly forbids RPC from external servers unless you have special permission, and I would love it if Fluxer supported it via server.