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!
There are three essential parts to debugging and running this VTT locally, all of which require an installation of Dart. 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 sass # Download SCSS->CSS transpiler
dart pub global activate webdev # Download Dart->JavaScript transpiler
You're now ready to start a debuggable local Dungeon Club server!
If you're a using the IDE Visual Studio Code, you can make use of repository-included launch configurations available for both server and web.
- Server/Backend - Run
Debug: Start Debugging
(or press F5). - Web/Frontend - Run
Tasks: Run Build Task
(or press Control+Shift+B).
Alternatively, you can open three separate terminals and enter the following one-liners.
# Launch the backend server
dart bin/server.dart
# Convert from Dart to browser-readable JavaScript (file watching)
webdev serve
# Convert from SCSS to CSS (-w enables file watching)
sass web/sass/style.scss web/style/style.css -s compressed -w
If webdev
and sass
commands aren't available on your PATH, you can use dart pub global run [command from above]
.
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.
- Website Code - after refreshing the website (at
http://localhost:8080
). - Website Stylesheet - after refreshing the website or by pressing Shift+R (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 |