A full-featured Discord application that runs Naruto 5e play inside the server where it happens: character data, dice and combat, initiative, missions, resources, and rules reference in one bot.
Context
A campaign run over Discord keeps its state in several places at once: character spreadsheets, chat history, and whoever is tracking the fight. Rolls, turn order, and rules questions all depend on finding the right number somewhere else.
Inputs
DatteBotYo · Python, discord.py
- Sheet import
- Dice engine
- Attacks, saves, checks
- Initiative tracking
- Missions
- Resource tracking
- Jutsu & feat lookup
Results posted back to the channel
Persistence
Engineering decisions
- Import instead of re-entry
- Characters are imported from Google Sheets (stats, saves, skills, attack bonuses, chakra, and HP) and stored in MySQL, so players can switch characters and carry data across sessions.
- Guard shared state
- Resource commands for Ryo and downtime validate every change, so a balance can never drop below zero.
- A dice engine, not a random number
- Supports exploding dice, conditional rerolls, minimum values, arithmetic expressions such as
(2d6+1d4)*2, advantage and disadvantage, and repeated rolls with summaries. - Tolerate imperfect input
- Slightly mistyped stat or skill names resolve to the closest match. Jutsu and feat searches accept partial names and ask the user to choose when a result is ambiguous.
- Keep the session in one place
- Attack rolls use bonuses from the imported sheet, and initiative tracking and mission tools keep the flow of play inside Discord.