A HUD-like dashboard and party info tracker for playing John Harper's Blades in the Dark remotely.
- Install Rust and clone the repo.
- Run the server:
$ cd server/ && cargo run
- Browse to http://localhost:3000/ (in multiple tabs if you want to test syncing)
For usage online (for an actual game/campaign), install Rust on a web server, clone the repo & upload it there, create a .sh file containing the command above, and set it up to run as a daemon process.
The main screen of the HUD displays a game's progress clocks, grouped by player. Left clicking a clock ticks a segment on it; right clicking removes a segment. All clocks are public and changes are immediately visible to all players.
The following functions can be run from your browser's Console to set up a game:
add_player("name")
, to add a player namedname
.- Adding a player named
world
will create a section for world clocks that are styled differently from player clocks and which always display at the top.
- Adding a player named
remove_player("uuid")
, to remove a player with the IDuuid
.- A player's ID can be copied to the clipboard by right-clicking their name (above their list of clocks).
rename_player("uuid", "newname")
, to change a player with IDuuid
to be namednewname
.- A player can also be renamed by double-clicking their name.
After adding players to a game, select your role using the user switcher in the top right and begin playing.
Left click a point on the map to add a landmark there. Click on an existing landmark to rename it or change its color.
The map image can be customized in client/js/map.js
, along with other settings.
Notes can be sorted into and filtered by the following categories: misc
, person
, place
, boogins
(enemies), item
, concept
, event
.
After creation, note titles and descriptions can be edited simply by clicking on the existing text.
Various functionalities are available through the sidebar: the user switcher, rollable dice, a private/personal memo pad, toggles for dark mode and hiding the sidebar, and other tools. All information is preserved between sessions and saved in the browser's localStorage.