Tempestro is a custom-built Discord bot designed to streamline combat during Dungeons & Dragons (D&D) sessions, particularly for lower-level adventures. Tempestro makes ordered combat, action tracking, attacking, casting spells, and special actions simple by making use of Discord's slash commands. To do this, it features automatic dice rolls, modifiers, damage calculations, condition tracking, saving throws and more.
Think of Tempestro as your co-pilot, not a referee. It's designed to support your game, not police it. It won't stop your fighter from channelling their inner magician to cast a fireball or prevent a monk from using a greataxe. The system trusts the user's choices, and it works to execute the commands it's given, allowing players the creative freedom to play without fear of constraints.
Even without extensive D&D knowledge, players benefit from the bot’s automation of common mechanics like advantage & disadvantage, hits/saves, crits and vulnerabilities & resistances. For Dungeon Masters, manual commands for applying damage, healing and special conditions give agency to include missing mechanics and players unwilling to use Tempestro.
The first major limitation of Tempestro is the amount of content. DND is fundamentaly a game of imagination and as such not every feature of every class can be included in Tempestros calcuations. Fortunately, when attacking or casting, manual modifiers to hit and damage rolls aswell as advantage overrides and applying conditions using /apply can offer a workaround.
Tempestro also lacks a built-in battle map, which means it doesn't track player positions or account for potential obstacles. The Dungeon Master (DM) and/or players are therefore responsible for managing their position in their world to decide what actions and attacks are possible. Conditions and other effects that modify movement will be communicated to the player on turn start.
Tempestro began its journey as a simple Discord dice roller, designed to make general tabletop rolls easier with the addition of modifiers. It then evolved to streamline D&D 5e combat by storing characters, spells, and attacks in simple CSV files, automatically executing weapon and spell attacks with the relevant dice and modifiers to give a Damage number as a result.
In its most recent and final evolution, Tempestro leverages a dedicated SQLite3 database to store its users' characters and encounters, allowing them to be saved independently. Within an encounter, the bot now manages a full turn order, initiative, comprehensive condition tracking, and necessary saving throws to correctly calculate the outcome of spells and abilities and factoring in every detail.
This entire development process, from a simple roller to a full-featured combat companion, has been built using Python 3.10 and the discord.py 2.4.0 library, with all coding and editing done within the Python IDLE Shell. Tempestro uses SQLite3 for its database and relies on only a few additional Python modules, with a total of five: discord, random, time, math, and sqlite3.
Tempestro Bot only collects the minimum data needed to function within Discord. This includes Discord User IDs (to link characters to their owners, preventing unauthorised actions), Guild IDs (to link encounters to the correct server), and any information you provide through slash commands or direct messages. Data is stored only for these purposes and never shared or sold. You may delete data linked to your UserID at any time by using /privacy_delete-me. Data is only accessible through Discord, stored locally in the bot’s database. Discord may also collect and store data according to its Privacy Policy. Any questions contact TempestroBot@outlook.com.
Tempestro is a Discord bot designed to assist with Dungeons & Dragons (5e) combat by tracking turn order, actions, and calculating damage. Users interact with Tempestro through Discord’s Slash Commands and Direct Messages. Data collection and storage is handled according to our Privacy Policy. By using Tempestro, you agree to use it responsibly (to not abuse, spam, or attempt to exploit the bot) and acknowledge that the bot is provided “as-is” without warranties of any kind. The creators are not liable for any errors, issues, or data loss arising from its use, and you remain responsible for complying with Discord’s Terms of Service and Community Guidelines.