Yet Another Virtual TableTop

Yet Another Virtual TableTop (YAVTT) is an open-source virtual tabletop designed for online play. It is self-deployable through Docker, plays nice with pre-existing home server setups, and features a cross-platform client available on Windows, Linux and MacOS (future implementation).

Are you a player?

Are you the master/admin?

Features

YAVTT is a simple platform where you can play different role-playing games that require dice and a map. Here are some of its features:

YAVTT_LIGHT

How to use

Getting the client

Getting the client is easy! Download the correct client for your PC, and follow the guide for your operating system below.

Linux

On Linux, you can download the AppImage for your architecture. It supports auto-updating. Make the AppImage executable either via your OS GUI or with the following terminal command: chmod +x YAVTT_version.AppImage. Then you can simply double-click and open it.

Windows

On Windows, download the .zip file, extract it in a folder, and run the .exe. Skip the Microsoft Defender blue screen and you're all set! It support auto-updating.

MacOS (Untested!)

On MacOS, download the .dmg and run it; remember to skip the "unsigned" nag.

Build it yourself

You can also build the client yourself from source.

Prerequisites:

Clone and install dependencies:

git clone https://codeberg.org/Derto/YAVTT
cd YAVTT
uv sync --extra client

Linux (AppImage): from the root folder of the repository, run

./build_appimage.sh

This creates YAVTT-x86_64.AppImage in the root folder. Launch it with ./YAVTT-x86_64.AppImage.

Windows: from the root folder, run

uv run python build_windows.py

This creates dist\YAVTT-windows-x64.zip. Unzip it and run YAVTT.exe inside the extracted folder.

Installing the server

Without the server, your clients will not be able to connect and play. Have no fear! Getting your server set up is trivial. Full installation guide available here.

Installing with Docker

Installing with Docker is the preferred and supported way to run the server. yavtt-server runs either behind a reverse proxy or in clear: I suggest you to always use a reverse proxy such as Nginx, but it may be not needed if you only host YAVTT.

For full installation instructions, please refer to the following link:

Installing with the standalone build (IS ⇾ Integrated Server)

WARNING: I advise against using this method. If you use the Integrated Server build you miss on:

If you CANNOT use Docker or if you simply want to test YAVTT, you can use this build. Only the admin should download it, all the players must download the simple non-IS lightweight client.

Once you download the correct standalone build for your OS, just run it. You must open the port 8000 to allow connections from players outside your LAN. Once you're done and you've created your admin account, simply give your players your public IP, and they will be able to connect to your server. Make sure your port is opened!

Since I cannot test the MacOS build, right now, there is no MacOS_IS version.

For your convenience, there is also a simple way to upgrade your standalone build to a Docker build. Simply export the full package, move it to your shiny new server location, and run the migrate.sh script.

Roadmap

YAVTT is not yet complete and is currently in Alpha. This roadmap lists all the future features that will lead YAVTT to its 1.0 release.

Roadmap for 1.1 and beyond:

Why yet another virtual tabletop?

I decided to create YAVTT to have a place where to test my new system, YARS, online. Since I do not know JavaScript, I decided to try building everything in Python. I actually implemented some Rust after I hit a wall with Python performance for dynamic lightning.

To create YAVTT I drew inspiration from other VTTs, such as Foundry VTT. Foundry is a great piece of software and I have used it happily for years! However, I have always preferred the feel of "native" programs, and I think a non-browser client is better than a web app as long as cross-platform compatibility is assured.

Why AGPL 3.0?

The license for YAVTT is AGPL 3.0. I believe in open-source software and in sharing with the community!

Thanks

Thanks to: andymeneely, aussiesim, carl-olsen, caro-asercion, cathelineau, catsu, darkzaitzev, delapuoite, faithtoken, felbrigg, generalace135, guard13007, heavenly-dog, irongamer, john-colburn, john-redman, kier-heyl, lorc, lord-berandas, lucasms, pepijn-poolman, pierre-leducq, priorblue, quoting, rihlsul, sbed, seregacthtuf, skoll, sparker, spencerdub, starseeker, viscious-speed, wildabeast, zajkonour, zeromancer for their extraordinary art work with icons and their good heart. Thank you for sharing them: https://game-icons.net/

Thanks to Abbie Gonzalez for her OpenDyslexic font: https://opendyslexic.org/

Thanks to the awesome devs who create FoundryVTT and inspired YaVTT: https://foundryvtt.com/

Thanks to the contributors Xuciloda, Disu, Science3398.