Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vesktop does not recognize Steam games (arrpc enabled) #105

Open
diimon04 opened this issue Aug 3, 2024 · 20 comments
Open

Vesktop does not recognize Steam games (arrpc enabled) #105

diimon04 opened this issue Aug 3, 2024 · 20 comments

Comments

@diimon04
Copy link

diimon04 commented Aug 3, 2024

When I play games like Stardew Valley (with Steam), my game activity is not displayed on Vesktop. It works with games like Minecraft. Im on Arch Linux with KDE.
Edit: nvm minecraft is not working either

@ToRRent1812
Copy link

I have encountered similar issue

@DerCommander323
Copy link

Same for me, Arch linux but with Hyprland. I even tried #92, but it still doesn't work at all. Directly integrating software (for example VSCodium with a discord rpc plugin) works as intended.

@Covkie
Copy link
Contributor

Covkie commented Aug 11, 2024

Flatpak doesn't support process detection.

@diimon04
Copy link
Author

Flatpak doesn't support process detection.

sorry for not specifying, but im using the aur version (if it is somehow relevant to the issue)

@bombasticman
Copy link

I have the same problem on Linux Mint. Games run trough Lutris are fine but my steam games are not detected.

@BreakingTV
Copy link

bump.
Vesktop has completly removed adding your own game activy on your own because of beeing just a web implementation...

@Covkie
Copy link
Contributor

Covkie commented Aug 22, 2024

@diimon04 Does Stardew Valley have a native Linux port? If so see #108. (If you really need rpc process detection for stardew, force enable proton i guess)
@bombasticman I assume the games you've tried through lutris are all proton/wine. They should work because their process path is the same as native Windows.
@BreakingTV see #52

If any of the games implement IPC rpc (Custom RPC) and are running through proton/wine you need https://github.com/EnderIce2/rpc-bridge/

@mewostick
Copy link

It is worth noting that as a workaround one may host arrpc themselves and enable WebRPC plugin in the settings.

@DerCommander323
Copy link

It is worth noting that as a workaround one may host arrpc themselves and enable WebRPC plugin in the settings.

That's what I'm doing (how else is it even possible?) and it's not working.

@mewostick
Copy link

mewostick commented Sep 8, 2024

(how else is it even possible?)

@DerCommander323 What do you mean here 🤨

@DerCommander323
Copy link

@DerCommander323 What do you mean here 🤨

I mean how else are you supposed to set up arRPC?

@BreakingTV
Copy link

@DerCommander323 What do you mean here 🤨

I mean how else are you supposed to set up arRPC?

In theory it should create its own arRPC instance in the client itself

@mewostick
Copy link

In theory it should create its own arRPC instance in the client itself

Vesktop seems to have some sort of limitation that prevents it from scanning for processes it seems (it wasn't the case before though and I wonder why)... It only picks up anything that "emits" a Discord Rich Presence with all of the extra info.

I host arRPC on my own with Node 20 LTS from Homebrew on Linux and it picks up my games normally.

@BreakingTV
Copy link

Maybe because of the new rich presence Feature and an old Version of arRPC...
This problem started to occure for me after they started working on the new RPC

@Arcitec
Copy link

Arcitec commented Sep 11, 2024

Well, I have now tried with the latest external arRPC:

  • Vesktop: Settings: "Vesktop Settings": Disable "Rich Presence" (arRPC).
  • Fully shut down Vesktop to unregister its discord-ipc-0 pipe (which was created by its internal arRPC).
  • Start external arRPC manually with Node: node src in the arRPC directory. It should say listening at /run/user/1000/discord-ipc-0.
  • Start Vesktop.
  • Vesktop: Settings: "Plugins": Enable "WebRichPresence (arRPC)". It should pop up the message "Connected to arRPC" briefly on screen. The arRPC terminal window will say [arRPC > bridge] web connected
  • Now start a game. I played a Steam game with Proton. The arRPC terminal window said [arRPC > process] detected game! Grounded.

However, in Vesktop, I still don't become marked as playing that game. So maybe something is bugged in Vencord/Vesktop itself. Because arRPC is detecting the game. And presumably the built-in arRPC inside Vesktop is also detecting the game. It's just not setting the status!

PS: Vesktop already includes the newest arRPC so the theory people had above that it's "outdated" is not true.


Edit: Could it be because Discord has changed something in its expected RPC protocol and arRPC uses the old protocol, so it no longer works at all? Maybe.

@mewostick
Copy link

Edit: Could it be because Discord has changed something in its expected RPC protocol and arRPC uses the old protocol, so it no longer works at all? Maybe.

Could you check if it works for you on Discord in a web browser? Just make sure you don't have any tracker blockers on as they may prevent access to localhost:{PORT} which arRPC needs.

Perhaps I haven't been affected by some A/B changes..

@Arcitec
Copy link

Arcitec commented Sep 11, 2024

I have solved it:

  • Be sure that you use native Vesktop. Not Flatpak. Because containers (Flatpaks) cannot scan processes on the host, and has lots of other limitations related to Discord RPC.

  • Be sure that arRPC is enabled inside Vesktop: Settings: "Vesktop Settings": Enable "Rich Presence" (arRPC). You should NOT use external arRPC (there's no need for it whatsoever since it's built into Vesktop).

  • Then go to Vesktop: Settings: "Activity Privacy": Enable "Share your detected activities with others". This is a per-account Discord setting which is saved online, so it persists between machines and regardless of what Discord client you use. If this setting is disabled, Discord will ignore Game Activity. So be sure that it's set up like this:

image

  • Play a game!

image

(PS: Grounded is the best game of all time.)

Just be sure that you play a game that's actually known by Discord (popular mainstream games). If you play something obscure/indie, you probably won't see it, because its executable file is not known by Discord's detectable.json registry.

Because even the official Discord app on Windows uses process name scanning for known executables. So you can't expect it to show rare indie stuff. Their registry is here and contains around 8600 games:

https://discord.com/api/v9/applications/detectable

It also won't show Windows games that natively support Discord RPC. For that, you need https://github.com/EnderIce2/rpc-bridge/ to create a bridge between Wine/Proton games and the Linux arRPC/Discord RPC socket file. That's not worth bothering with for most people. It won't work for all games, and it's finicky to set up. But if you really care, then yeah, that tool exists.

@BreakingTV
Copy link

It doesnt need to be a discord authorized game.
You can use Jetbrains IDEs discord rich presence plugin and works just fine.
I think it is often a problem of Implementation too...

@Arcitec
Copy link

Arcitec commented Sep 12, 2024

@BreakingTV Yes, native Linux games and apps that talk to Discord RPC via discord-ipc pipe will automatically work and will set the activity.

Windows games that contain built-in support for Discord RPC always need rpc-bridge as my post mentioned, to bridge the divide between Windows and Linux socket locations.

@mewostick
Copy link

  • Be sure that you use native Vesktop. Not Flatpak. Because containers (Flatpaks) cannot scan processes on the host, and has lots of other limitations related to Discord RPC.

If I remember correctly, this didn't really work for me on Nobara 40 with a native Vesktop package.

But now on an Ubuntu 24.10 system it works perfectly. I really wonder if some Linux distributions have some kind of a change that causes Vesktop's ArRPC to half-work..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants