• Stars
    star
    477
  • Rank 92,112 (Top 2 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sales & Dungeons β€” Thermal Printer as D&D / TTRPG Utility

S&D Header


Sales & Dungeons

Sales & Dungeons

Discord GitHub Discussions GitHub release (latest by date)

Sales & Dungeons β€” Thermal Printer as D&D Utility.

With Sales & Dungeons you can create highly customizable handouts, quick reference and much more for your Dungeons and Dragons (or other PnP) Sessions. Most Thermal Printer are small in size and can be taken with you and kept right at the gaming table. Use-cases range from printing out magic items, spells or a letter that the group found to little character sheets of your players to use as DM note. The possibilities are nearly endless!

Printer Setup β€’ Tested Printer β€’ Wiki

Important: If you have trouble getting this to work it's best to drop by our Discord.

Screenshot

Screenshot Generator

Features

  • Works on
    • Windows
    • Mac (Intel, M1)
    • Linux (x64, ARM64)
    • Raspberry Pi (ARMv6, ARMv7)
    • Anything else go can be compiled on
  • Extensive templating system through Nunjucks
  • Extensive random generator system
  • Various connection methods
    • Windows Direct Printing
    • Raw USB Printing
    • CUPS (Linux, Mac)
    • Serial
  • Import & Export templates and data sources
  • Fast access to external data sources like Open5e (instant access to SRD monsters, spells and more)
  • Import data from other sources:
  • Access Community Templates, Generators & Data Sources from within the App
  • Edit templates in your favorite editor (e.g. Visual Studio Code) and get live preview

Download πŸ“

You can find the latest version on the release page:

Mac & Linux

  • If you are on a unix system you can use the install script to download and install the latest version of Sales & Dungeons automatically
  • The script will create a snd folder in your home directory
  • To update to the newest version just run the command again. Your user data won't be deleted.

Open your terminal and copy and paste the following command:

curl -s https://raw.githubusercontent.com/BigJk/snd/master/install.sh | bash

🐳 Docker

The headless version of Sales & Dungeons (using LibUSB) is also available via a docker container:

  1. docker pull ghcr.io/bigjk/snd:master (container)
  2. docker run --expose 7123:7123 --device=/dev/bus/usb -v /some/place/to/persist:/app/userdata ghcr.io/bigjk/snd:master (change /some/place/to/persist to a folder where the user data should be persisted to)
  3. Open http://127.0.0.1:7123 in your favorite browser
Docker Compose Example
version: "3"
services:
  snd:
    image: ghcr.io/bigjk/snd:master
    ports:
      - "7123:7123"
    devices:
      - "/dev/bus/usb"
    volumes:
      - "/some/place/to/persist:/app/userdata"

Printer Requirements

At the moment Sales & Dungeons only supports the ESC/POS (Epson Standard Code) control codes, which is still one of the most used control code set. Check if a thermal printer you are interested in mentions ESC/POS or Epson in the description or manual.

In general the rule of thumb is:

  • Most cheap chinese thermal printer found on Amazon or AliExpress support it
  • Most epson thermal printer obviously support it
  • A lot of older Serial printer (like Metapace T-1) also support it

More specific information about tested printers can be found in the wiki: Printer-Settings

How It Works

Sales & Dungeons

Templates: Templates are created in HTML (and CSS) in combination with the Nunjucks templating language. You can imagine the templates as little websites. That makes it possible to use all the nice and convenient layout options that HTML and CSS has to offer and even include any common framework you might need (e.g. Fontawesome for Icons).

Rendered HTML: After creating a template you can create entries with the data you want and print them. Nunjucks will create the rendered HTML from the data you want to print.

Rendered Image: Then this HTML get's converted to a image. Currently this conversion is done by Chrome via the Chrome Debug Protocol. Although Chrome seems like a huge overkill for just HTML-To-Image conversion it's the standard solution at the moment because it supports most of the modern HTML and CSS features.

ESC / POS Commands: The last step before our awesome template hits the Printer is the conversion from the rendered image to the "draw image" command of the printer.

Printer: The generated command will then be sent to the printer and printed. Now your template is ready to be used!

πŸŽ‰ πŸŽ‰ πŸŽ‰

Printers, Templating & Building

If you want to see what printers were already tested, which settings they need, how the templates work or how you can build Sales & Dungeons yourself please visit the wiki.

Thanks to all contributors ❀

Thanks to JetBrains

This Project is supported with a JetBrains License through the Open Source Support Program.

JetBrains Logo (Main) logo.

Credits

Icons used in the Sales & Dungeons Logo were made by Smashicons, Good Ware from www.flaticon.com