VTT Desktop Client

VTT Desktop Client

Version: V11
Any System

    A simple and lightweight, chromium based, desktop client for your virtual tabletop games.


    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) For non-windows systems, Follow the multiplatform release link and download your system's version installer.


    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.



    If you used the Setup to install the client, you can find the config.json file in the C:\Users\%your_user_name%\AppData\Local\vtt_player_client\app-%version%\resources folder.

    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%)",
        "ignoreCertificateErrors": false


    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.


    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

    Ctrl + RReload
    Ctrl + ⇧ Shift + RHard Reload
    Ctrl + + or Ctrl + ⇧ Shift + +Zoom In
    Ctrl + -Zoom Out
    Ctrl + 0Reset Zoom
    Ctrl + ⇧ Shift + IDeveloper 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:

    From the Configuration Menu:

    1. Open the Configuration Menu
    2. Enable the Ignore Certificate Errors option
    3. Save the configuration and restart the client

    From the Configuration File:

    1. Locate the Configuration File
    2. Set the ignoreCertificateErrors property to true
    3. Save the file and restart the client

    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:

    With a macro

    Running this as a script macro will fix the issue:

    Object.defineProperty(navigator, "userAgent", {value: navigator.userAgent.replace("Electron", "")})

    You can also add this as a World Script (opens in a new tab) to automatically run it when the world is loaded.

    Modifing the module

    Open the popout.js (lines 460-463) file in the PopOut! module folder, and remove or comment the following lines:


    // 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


    // 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;
    // }


    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.