VTT Desktop Client
A simple and lightweight, chromium based, desktop client for your virtual tabletop games. The application is currently in beta, once the developement is complete, it will be available for free.
Usage
Simply download the zip file from the Patron post, extract it, and run the executable (vtt-desktop-client.exe). Forge Login is currently not supported (only public games)
Performance
The classic question: "Is it better than the browser?". The answer is: "It depends". The client is based on chromium, but since there is no stuf around it or running in the background it will generally use a bit less resources. If you are using a powerful computer, you will probably not notice any difference. If you are using a weaker computer, you will probably notice a difference. How big is the difference? It depends. Theoretically the VTT Desktop Client will not perform significantly better than a clean Edge install with only one tab open and no extensions and with all the hardware acceleration\gpus setup correctly.
So, what i can say for certain is. If you are using chrome with a lot of extensions (or other browsers for that matter) and you have weak hardware, you will probably notice some improvement.
Customization
You can pre-configure and customize the client by editing the config.json
file. From where the executable is located, you can find the config.json
file by navigating to the resources/app
folder. You can edit the file with any text editor.
Config Options
Be mindful of trailing commas, they are not allowed in JSON. If you want, you can use an editor such as VSCode or an online tool such as JSON Formatter to validate your JSON.
This is an example configuration file:
{
"games": [
{
"name": "This is the name of my game",
"url": "https://url-to-my-game.com"
}
],
"background": "https://url-to-my-img.com/img.jpg",
"backgroundColor": "#000000",
"textColor": "white",
"accentColor": "hsl(0, 100%, 50%)"
}
Games
The games array is where you can add your games. Each game object has a name and url property. The name is what will be displayed on the button, and the url is where the client will navigate to when the button is clicked. These preconfigured games cannot be deleted from the client.
Background
The background property is where you can set a background image for the client. This can be a url to an image, i suggest using imgur to host custom images.
Background Color, Text Color, Accent Color
These properties are where you can set the background color, text color, and accent color of the client. These can be any valid css color value.
Keyboard Shortcuts
Control | Action |
---|---|
Ctrl + R | Reload |
Ctrl + ⇧ Shift + R | Hard Reload |
Ctrl + + or Ctrl + ⇧ Shift + + | Zoom In |
Ctrl + - | Zoom Out |
Ctrl + 0 | Reset Zoom |
F11 | Fullscreen |
Ctrl + ⇧ Shift + I | Developer Console |
Connections with invalid certificates (SSL)
While this flag could be directly added to the application, therefore avoiding this procedure, i don't plan on doing so. This is because it could be a security risk, and i don't want to be responsible for that.
While it's suggested to setup a valid SSL certificate for your VTT, if you are using a self-signed certificate or your certificate is invalid, you can follow this procedure:
- Locate the
vtt-desktop-client.exe
file. - Create a shortcut to the executable.
- Right click on the shortcut and select
Properties
. - In the
Target
field, add the following at the end of the path:--ignore-certificate-errors
. - Click
Apply
andOK
.
If you wish to embed the flag directly in the application, you can follow this procedure:
- Locate the
vtt-desktop-client.exe
file. - Navigate to the
resources/app
folder. - Open the
main.js
file with a text editor. - Locate the
app.commandLine.appendSwitch("force_high_performance_gpu");
line at the beginning of the file. - Add this new line below it
app.commandLine.appendSwitch("ignore-certificate-errors");
. - Save the file.
If you distribute this modified version of the application to your players they won't have to follow the shortcut procedure.
Pop Outs
If you are using the PopOut! module, you will have to do a small modification for it to work, the developer has been contacted for a fix. In the meantime:
Open the popout.js
(lines 460-463) file in the PopOut! module folder, and remove or comment the following lines:
Before
// Check if popout in Electron window
if (navigator.userAgent.toLowerCase().indexOf(" electron/") !== -1) {
ui.notifications.warn(game.i18n.localize("POPOUT.electronWarning")); // eslint-disable-line no-undef
return;
}
After
// Check if popout in Electron window
// if (navigator.userAgent.toLowerCase().indexOf(" electron/") !== -1) {
// ui.notifications.warn(game.i18n.localize("POPOUT.electronWarning")); // eslint-disable-line no-undef
// return;
// }
Packaging
If you created a custom configuration file and want to share it with your players, you can simply zip the whole vtt-desktop-client-win32-x64
folder and send it to them. They can then extract the zip file and run the executable.