DOE sounds extenshion

Hi daniel,

I use Voicemeter Banana (and now Voicemeter Potato) with Teamspeak and the Desktop App for precisly that reason - Discord is a PITA!

I don’t crash at all, I’ve got a separate channel for my voice and for Syrinscape (& other) sounds, the quality is great, and Teamspeak handles it all - no fuss, no bother. And for the record I’ve got playes across the USA, Tialand, Irland, Japan, and Australia.

Seriously, there’s no reason what-so-ever to avoid the Syrinscape Desktop App because that’s not your problem - at least, as far as my own experience is concerned its Discord which is the problem in your set-up.


The Mixer is crashing regarding my harware. I try to fix this with the VB_Audio Softtware Support without any luck so far. (And also with the latest Potato Version)

OK, so, if that’s the case, why don’t you get one of your players to run Syrinscape and you (as the GM) use the DOE: Sound to control it remotely - that way there’s no “load” on your Voicemeter/hardware and you and your group still get all the benefits of using Syrinscape, the DOE: Sound (and Teamspeak, which is still better than Discord) :smile:

Edit: And if Syrinscape Licensing is a worry, @benjamin has said previously that you can legally install the Syrinscape Desktop App on up to three (3) computers.

1 Like

Any chance of sharing the protocol handler? I prefer the online player over the desktop app as well, and have been unable to get it working with DOE. The few solutions I have tried are hit or miss with REST.

No problem, it’s just a couple lines (80-90, a good deal of it is boilerplate) of C#.

Works fine for us, we consider the issue “solved”/good enough for now.

I just shared the source with @Dulux_Oz - I wanted confirm with someone that knows something about FG (I know little) and Syrinscape (I know next to nothing) that this isn’t a stupid idea. But if you’re interested and have a way to compile C# code (you shouldn’t run a binary from someone on the internet after all) I can just dump the code into a GH repository or something. Whatever’s easiest for you.


Yeah. We are DEFINITELY gonna get Fantasy Grounds + Online Player going. I’m happy to help out however i/we can! :beers: :pancakes:

1 Like

FWIW: I just dropped the quick hack at - this is a working solution for us right now. Maybe you can incorporate something similar (potentially … adding some logging/better error handling ¯\_(ツ)_/¯) in the default online player installation?

Using this hack and turning sounds off for all players (they don’t have this thing registered, would otherwise get a “How do you want to open Syrinscape:elements/20/play/” questions) all DOE features seem to work as expected for us - we merely had to change the sound links to replace ‘’ with ‘Syrinscape:’ (and configure the personal auth_token in the .exe.config).


I grabbed the sln and compiled. The code looks pretty straight forward and simple. It would be awesome if this could be included with the online player install perhaps? Just tossing the idea out for Benjamin to marinate over.

That being said, Ill give it test run sometime today. Thanks again for sharing.

Sure. It’s a (minimal) hack, there’s nothing weird/special in there I hope.

For a “distributable hack” on this board I could maybe offer a .reg file (easier to verify, doesn’t require to run the binary as admin) and the thing itself.

But obviously it would be best if Syrinscape would provide this. Maybe syrinscape-player: for one (exists) and syrinscape-online: for the other?


Wanna post some good info here that I can show to the dev team?

Also: yay!

1 Like

I think all the info is there already. The dev team seemingly (see Dulux_Oz posts above) already knows how to use/implement a protocol handler, because it is used in the old (“non cloud”) player.

We need the same. This thread has the discussion of everything involved, the Github link above has the full source for the C# solution we’re using. Even if your dev team uses a different stack (?), the code is very short and basically just

  • register protocol handler (Windows registry stuff)
  • when called with a protocol “url”, call Syrinscape Online player api via web request and discard the response

That’s all it seems to take


Love it! :cake::pancakes::beers:

1 Like

Just for the record:

I’m NOT part of the Syrinscape Dev Team.

I’m also NOT part of the Fantasy Grounds Dev Team.

I am, however, one of the Fantasy Grounds Community Devs (& a professional ICT Consultant, for what ts worth) :smile:

1 Like

Blame it on English not being my first language - but what I wanted to say above is: The Syrinscape Devs should already know how to implement a protocol handler like the one I did, because you mentioned that their other player - (never installed it, dk anything about it, I’m clueless) the older one, not the Syrinscape Online one - uses exactly this mechanism to allow integration. Into DOE amongst other things.

Basically I just quoted you for the information you gave above:

hence Syrinscape Devs do know how to do that. Sorry for the confusion.

1 Like

So is this just a little applet to catch the URL call to the syrinscape server and:

  1. instead of opening the default browser
  2. do the page request to our server
  3. throw away the returned info


Can we filter out requests that we DO want to go through to the browser, like clicking on the username at the top of the Online Player, or clicking the PIN connect thingy?

1 Like

Kinda. Not quite. This is an application¹ that registers a new protocol (in my code that’s syrinscape: but that’s my own choice).

It doesn’t change anything about the behavior of normal links at all. If you want to go to a user’s profile or anything, you’re talking to and that happens in the browser.

But the DOE links are changed by the GM to point at, say syrinscape:elements/20/play/ for a fireball effect. DOE tells the OS to ‘open’ that, the OS calls the application, the application builds a request to the Syrinscape API and throws the result away, terminating afterwards (no windows pop up). If you keep https links in FG/DOE nothing changes and you get browser popups.

So if you bundle a small tool like this / register a protocol handler during installation, you’d support DOE (and potentially other stuff that works similarly) without changing your current behavior/player at all, for all I can tell.

①: Nitpicking, but applets remind me of a dead Java thing that’s unrelated :slight_smile:


Just want to follow up and say I hope this is something which can be integrated into the player installer. It would be HUGE for Fantasy Grounds folks like myself!

1 Like

Yeah. We are looking at this. :slight_smile:

Something you could turn on or off to catch the calls as required.

Do you know if anything changes in regards to getting the online player integrated with Fantasy Grounds Unity? I guess the real question there is did Smiteworks provide you with Alpha access to be able to look at this ahead of the upcoming public release?

No, SW did not give me alpha access (even though I asked), so I’m waiting for beta access.

But I have serious doubts that Syrinscape Online will work with FGU - the issue isn’t with how FG and/or (suppossedly) FGU work, its how Syrinscape Online works, which is different from how Syrinscape Desktop Works.

Still, we’ll see once I can get access to FGU.