An online platform to gather and play Dungeons & Dragons, Call of Cthulu, Pathfinder and more.
Dungeon Club strives to be the most user-friendly virtual tabletop of all, providing tons of features and a comfortable design. Visit the homepage for a demonstration of features or try the demo right now!
In order to run and debug the VTT locally, you'll need the Dart SDK. If you're on Windows and don't want the trouble of installing Chocolatey, I recommend following this guide instead.
After downloading the SDK and making sure it's part of your PATH, run the following lines as a one-time setup:
# Clone repository and navigate into the directory
git clone https://github.com/doodlezucc/dungeonclub.git
cd dungeonclub
dart pub get # Download all required packages
dart pub global activate webdev # Download Dart->JavaScript transpiler
The web app's stylesheet is written in Sass and has to be transpiled into CSS. You can either install Sass as a standalone executable or by using the Node.js package manager npm.
npm install -g sass # Download SCSS->CSS transpiler
If you're a using the IDE Visual Studio Code, you can make use of the repository's launch configurations. You can start backend as well as frontend services simultaneously by choosing the Launch All (Terminal)
debug configuration.
Note that this all-in-one launch configuration starts inside VS Code's terminal. This allows you to restart the backend server with a simple R keypress. In case you prefer the IDE's debug console, you can instead start the development processes separately:
- Web/Frontend - Run
Tasks: Run Build Task
(or press Control+Shift+B). - Server/Backend - Run
Debug: Start Debugging
(or press F5) and pick theLaunch Backend
configuration.
Alternatively, you can start the development server by running a Dart script.
# Launch the webdev server / stylesheet compiler / backend server
dart bin/dev.dart
After initializing backend and web serving, you can go to localhost:8080
and view your freshly delivered, live-compiled version of Dungeon Club.
Changes to the source code are reflected at different times depending on what part you're working on. Changes can be seen...
- Server Code - after restarting the server. When launching from a terminal, you can press R inside your terminal to restart the backend process.
- Website Code - after refreshing the website (at
http://localhost:8080
). - Website Stylesheet - after refreshing the website or by pressing Shift+R on the website (not available on Firefox).
You can find the official public version of Dungeon Club at https://dungeonclub.net. In case you want to host a local server on your machine, there are two ways to achieve this.
Whenever an update rolls out to the public website, a new release is added to the repository Releases tab. Releases consist of a short changelog followed by a list of pre-compiled builds for multiple platforms and architectures.
After downloading and unzipping your selected build, you will find two relevant files inside:
- server.exe - The executable server. (Depending on your platform, the file extension may differ.)
- login.yaml - A file which may define custom account logins.
When executing server.exe
, a terminal opens up, informing you that Dungeon Club is now serving at http://localhost:7070
.
You can navigate to this address and see your very own copy of the VTT loaded and ready to use.
Try logging into the pre-registered mock account by filling in email "admin", password "admin" on the homepage. There's no difference in using a mock account vs. a regular email-verified account, aside from the way it's created. Upon a successful login, you're presented with the ability to create and manage your own campaigns.
If you open the server port (7070
by default) in your network, outside players should be able to interact with your locally hosted website by accessing your IP address.
Apart from the official list of executable releases, you can also build Dungeon Club yourself. Follow the one-time setup described in Development to install required tools. Then, execute the repository-included dedicated build script by running the following command:
dart bin/build.dart [options]
For a list of possible arguments, run dart bin/build.dart --help
or refer to the next section.
The following options may be entered as arguments to the server and/or builder.
Option | Definition | Default (serve) | Default (build) |
---|---|---|---|
-h, --help |
Prints a list of available flags and options. | ||
--[no-]mock-account |
Whether to accept contents of "login.yaml" as a list of registered accounts. | false |
true |
--[no-]music |
Whether to enable the integrated music player. Server hosts may need to install yt-dlp and ffmpeg to download 500 MB of background music. | true |
false |
Server Only | |||
-p, --port |
Specifies the server port. | 7070 |
|
--bootstrap |
|
all |
|
Build Only | |||
--[no-]copy-music |
Whether to include locally downloaded music (ambience/tracks/*.mp3) in the build. | false |
|
--[no-]download-icons |
Whether to download and include the latest release of Font Awesome (icons used on the website) | true |
|
--part |
Which parts to compile and include in the build. Can be server or all . |
all |