beanc16 / roll-of-darkness-bot

A discord bot for rolling dice in the New World of Darkness, Pokemon Tabletop United, and Curseborne tabletop systems
1 stars 0 forks source link

Roll of Darkness Bot

A discord bot that provides a variety of utility features for looking up game mechanics, boosting morale at the end of sessions, simplifying bookkeeping, and rolling dice in the New World of Darkness / Chronicles of Darkness, Pokemon Tabletop United, and Curseborne tabletop role-playing game (TTRPG) systems.

This bot is hosted on Heroku for private use. Please do not copy this repository's code or open pull requests for it. This bot is only public for portfolio purposes.

Table of Contents

Setup

Step 1: Download dependencies (requires a github access token tied to account with access to privately hosted NPM packages in the @beanc16 namespace)

npm install

Step 2: Enable shared git hooks

git config core.hooksPath .githooks

The Development Story

Why was this bot made?

Since 2014, my friends and I have been playing tabletop role-playing games (TTRPGs) remotely on Discord voice chat. Over the years, we've used various dice-rolling Discord bots, and I always wanted to make my own just for fun.

In April 2023, a friend and I decided to build a prototype of a simple dice-rolling Discord bot, and it quickly became something much more.

The Original Prototype

Our initial prototype had just one command: /roll (now /nwod roll), to roll 10-sided dice (d10s) for the New World of Darkness (nWOD) system, paired with randomized "flavor text" fetched from a custom Rust API. Though the flavor text feature is no longer active, this laid the foundation for a bot that’s fun, fast, and versatile.

Evolving Dice Commands

Over time, we added several new dice-rolling commands, including:

The First Non-Dice Command: Compliments and “Beats”

At the end of each TTRPG session, my friends and I like to end on a high note with round-robin compliments for each other. Alongside these compliments, we also pick someone to give a "beat" to (1/5 of an exp point in nWOD).

The /beat command lets us tag and compliment each other, creating a fun, memorable log of each game’s highlights.

Pokémon Tabletop United (PTU)

In August 2023, I joined a PTU campaign. PTU is fun but requires heavy bookkeeping, so I developed commands to help:

Curseborne

For Curseborne, a new TTRPG from the nWOD creators, I created a dedicated /cb roll command and /cb lookup tool, adapting features as the brand-new system evolves.

What's next?

Check out the issues for ongoing plans, including new features, bug fixes, and optimizations.

Credits