Skip to content

Be a better DM. Use an Elgato Stream Deck, ESP8266 (Arduino), custom battle mats, NodeJS server and Angular frontend.

Notifications You must be signed in to change notification settings

luxdvie/electro-dm

Repository files navigation

Electro DM

For Dungeons & Dragons, for Dungeon Masters, for players:

Use a NodeJS server and Angular frontend application combined with a soundboard, RGB LEDs, and a tablet to animate D&D actions, indicate player turns, present important player information, drive player engagement while making the process of DM'ing easier, more dynamic, and more fun.

To see details on installing and running, see Getting Starting.

What is it?

This is a platform that starts with a laptop running NodeJS and Angular apps. From there, we add the following components to build an immersive D&D experienced.

  • Laptop facing the DM
  • iPad, TV, or other web device facing the Players
  • Loud speaker connected to laptop
  • Spotify Playlists, Sound Effects
  • Phillips Hue Lights (optional)
  • Elgato Stream Deck (optional)
  • Custom Battle Stations with RGB LEDs (optional)

Platform Components

Custom Battle Station

This is a custom 36x24" "battle station" to hold standard battle mats

See Hardware Instructions for details.

Elgato Stream Deck

Use an Elgato Stream Deck to control the following:

  • Set Phillips Hue light colors
  • Start/stop Spotify Playlists
  • Initiate animations on the LED controller

See the /elgato-profile folder for the Stream Deck Profiles.

Electro DM Client + Server Software

This GitHub repository contains two applications - the "client" software and the "server" software.

The server is responsible for communicating between all instances of the applications and talking to the micro-controller.

The client software has a "DM View" for the DM to manage encounters, take notes, and perform other special functions. The client software also has a "Presentation View" intended to be put on an iPad or TV that all players can see. This visually shows the initiative order during battle and other player-facing animations, scenes, and information.

Sounds + Scripts

Scripts

In the scripts folder you'll find scripts that will be opened using the System->Open builtin Elgato function. You can do many things with the scripts but for now all I'm doing is starting/stopping Spotify playlists.

*Note I am using a MacBook so I've only populated scripts/apple/*.scpt script files. If you were using Windows, I'm guessing you'd want to use PowerShell scripts instead.

Sounds

In the sounds folder you'll find various audio clips that I've mapped to Elgato Stream Deck keys. This folder may go away long term since it's not a good idea to store large binary files in git.

Software Architecture

  • Frontend: Angular application
    • There is a "DM View" for the DM to take notes and manage encounters and battles
    • There is a "Presentation View" that is meant to be placed on a party-facing iPad or TV that has a visual, ordered display for initiative.
      • More features will be coming soon to the "Presentation View" to build player engagement. Examples: Showing fire when at fire scene, showing important NPC/Point-of-interest information, etc.
  • Backend: NodeJS/TypeScript application using Express and SocketIO

Getting Started

see Getting Starting.

Bill of Materials

Contributors

About

Be a better DM. Use an Elgato Stream Deck, ESP8266 (Arduino), custom battle mats, NodeJS server and Angular frontend.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published