overlayeddev / overlayed

A modern, open-source, and free voice chat overlay for Discord that supports Mac, Linux, and Windows
https://overlayed.dev
GNU Affero General Public License v3.0
351 stars 27 forks source link

Implementation in Overwolf. #208

Closed Iliano101 closed 2 months ago

Iliano101 commented 2 months ago

Is your feature request related to a problem? Please describe. Basically, two issue with the current app (and the official Discord overlay):

  1. Both the official Discord overlay and this app do not work with Rainbow Six Siege in Vulkan mode.
  2. Currently, for any game, it needs to be in windowed full-screen, which reduces performance.

Describe the solution you'd like Both of these issues could be fixed by using Overwolf's platform that allows overlays in any game.

Describe alternatives you've considered I stumbled on this app as a last resort because the official Discord does not work in Rainbow Six Siege in Vulkan.

Additional context Info on how to create an overwolf app can be found here.

Hacksore commented 2 months ago

Appreciate you opening this issue @Iliano101!

I am pretty familiar with Overwolf but it's been some time since I've used it 😂. https://github.com/Hacksore/overwolf-react

It does bring more compatibility to Overlayed if we were to support it but it's a non-trival amount of effort.

Perhaps the best options here is someone to make a new "simple" Discord voice overlay for Overwolf as I don't plan to dedicate any time to this.

Also for the lolz see my completely pointless tweet of running every overlay but Overwolf 🫠. https://x.com/Hacksore/status/1830277341886529705

Iliano101 commented 2 months ago

Lol amazing. Honestly, I wouldn't mind figuring out how to do it myself and just build my own app to do it, but I just don't know how to get the voice info from the Discord app.

Iliano101 commented 2 months ago

@Hacksore Is it complicated to hook to the Discord app and get who is currently talking ? How did you do it ?

Hacksore commented 2 months ago

@Iliano101 it's a websocket server that discord starts and you can learn more about the API here. https://discord.com/developers/docs/topics/rpc

Iliano101 commented 2 months ago

Ah ok thanks. image And does that message mean I can't use it at all or that like it can only be used in a "Development" setting.

Hacksore commented 2 months ago

@Iliano101 it's a bit taboo but it's something you have to ask discord for permission to have "approved access".

You can always use it personally with a app testers (up to 50 users you invite).

Apps with the approved scope. https://gist.github.com/Hacksore/24bf9f8a950b740cd914d62975accff0

Iliano101 commented 2 months ago

Yeah ok, for now I guess would just need to make it work, so I don't need to distribute it yet. Perfect, thanks for your help.

Iliano101 commented 2 months ago

@Hacksore Hmm, I seem to be getting an Invalid Origin error why I try to authenticate. I thought I could test it even if it's in private beta. Did you ever get that error before ?

WebSocket connection closed. Code: 4001, Reason: Invalid Origin
Hacksore commented 2 months ago

@Iliano101 oh right i forgot the issue is that you need discord to allow you to configure allowed_origins, without them flipping the switch you cannot use the websocket.

However, you can use the IPC (unix socket) but obviously you cannot do that from a web application.

You could create a process on your machine that connects to the IPC socket and hosts a websocket server but this all seems like too much 😅.

Iliano101 commented 2 months ago

Jesus Christ, I have no clue how to use IPC. Now I understand why no one had created a third party overlay before. It's a shame that the RPC is in Private Beta. Thanks for the help anyways.

Iliano101 commented 2 months ago

@Hacksore By the way, how did you get access to that Beta ? Was it in Open Beta when you tried to get in ?

Hacksore commented 2 months ago

I've been asking for 3 years straight haha

Iliano101 commented 2 months ago

Oh damn. I'll try my luck and ask them, but I guess I shouldn't expect much.