Skip to content
Zach Love edited this page May 14, 2022 · 2 revisions

Welcome to the Daddy's Dungeon Tools wiki!

This wiki is meant to provide background information, define the goals and structure of the platform, and serve as a quickstart guide for new contributors.

Introduction

Daddy's Dungeon Tools is designed to be the de-facto supplement to your Dungeons and Dragons 5th Edition campaigns. It is inspired by the following D&D tools:

  • 5e Tools - An excellent reference compendium for 5th edition
  • Adventurer's Codex - A character sheet and campaign management tool
  • Foundry VTT - A self-hosted virtual tabletop platform
  • Roll20 - The most popular campaign management toolset
  • D20 Pro - An alternative virtual tabletop platform
  • Rolisteam - Virtual tabletop desktop application
  • D&D Beyond - Official campaign management, reference, and virtual tabletop platform
  • Beyond Tabletop - Campaign management webapp, also uses firebase!
  • Obsidian Portal - Campaign management webapp

Goals

The goal of ddtools is to take the "pen and paper" out of "pen and paper roleplay" by providing an all-in-one platform for managing your characters, running campaigns, balancing loot and xp, and playing through both roleplay and combat encounters.

  • ddtools is not an automated Game Master. It is meant to simplify the process of running/playing campaigns by performing tedious actions (such as calculating damage rolls with many modifiers) automatically.
  • The platform should be as extensible as possible, provide the maximum number of options to its users, and be equally useful in both standard 5th Edition campaigns and fully custom homebrews.
    • It should support custom items, equipment, weapons, spells, classes, and races.
    • As such, interactions between classes, feats, spells, equipment, items, skills, and cantrips should never be hardcoded, and the DM/GM should be able to override interactions and attributes as needed.
  • The platform should provide easily-accessible and accurate reference to all 5e information without enabling metagaming.

Stack

The platform is split into two parts:

  • ddtools-types is a public npm package that provides Typescript interfaces and definitions for common elements, such as spell components or saving throws.
    • It is essentially just a collection of typescript definitions with minimal functionality.
  • ddtools-web imports ddtools-types as a npm dependency and defines functionality that uses those interfaces.

ddtools-web is a React JS single-page application (SPA).

  • For our language, we use Typescript, which is JavaScript with static type syntax.
  • Google Firebase provides all backend infrastructure and database management.
  • We are using the following Firebase services:
    • Authentication - Enables user accounts and secure log-in
    • Firestore Database - The main database, used to store sensitive info
    • Storage and Hosting - The platform that ddtools-web is hosted on
    • Functions - Grants more control over the platform and database
  • For the frontend, we are using the Chakra UI CSS component library with Framer Motion for animations and transitions.

For more information, see the Getting Started page.

Clone this wiki locally