All Projects → jakethedev → tavernbot

jakethedev / tavernbot

Licence: MIT license
D&D Discord Bot - based on Discord.js and Node 8.

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to tavernbot

d20
A fast, powerful, and extensible dice engine for D&D, d20 systems, and any other system that needs dice!
Stars: ✭ 78 (+271.43%)
Mutual labels:  dice, dungeons-and-dragons, dice-roller
quick-dice-roller
The flexible, complete and handy Android dice roller for boardgame & RPG geeks.
Stars: ✭ 16 (-23.81%)
Mutual labels:  dice, dice-roller, rpg-tool
dice-roller
a dice roller generator in PHP
Stars: ✭ 13 (-38.1%)
Mutual labels:  dice, dice-roller
dice-simulator
A Python simple Dice Simulator just for fun
Stars: ✭ 17 (-19.05%)
Mutual labels:  dice, dice-roller
rollem-telegram-bot
🎲 An RPG dice rolling bot for Telegram.
Stars: ✭ 26 (+23.81%)
Mutual labels:  dice, dungeons-and-dragons
DiceRoller
Extensible and well-documented dice roller with a robust set of features. Excellent for play-by-post forums, virtual tabletops, or for integrating into character sheets or encounter managers.
Stars: ✭ 22 (+4.76%)
Mutual labels:  dice, dice-roller
bot
🎲 A general purpose utility bot, with an economy, games, and lots of other features.
Stars: ✭ 95 (+352.38%)
Mutual labels:  dice
rpgwizard
2D RPG Game creator
Stars: ✭ 37 (+76.19%)
Mutual labels:  rpg-tool
rpg tools
rpg_tools is a toolbox for tabletop games and RPGs
Stars: ✭ 53 (+152.38%)
Mutual labels:  dice
dicefont
Scalable vector graphics for dice in icon font format
Stars: ✭ 20 (-4.76%)
Mutual labels:  dice
react-dice-complete
Complete dice rolling functionality and animations
Stars: ✭ 60 (+185.71%)
Mutual labels:  dice
Random-Number-Generator
A clean, simple random number generator for Android. Downloaded 180,000+ times and rated 2,000+ times on Google Play with 4.7+ average rating.
Stars: ✭ 30 (+42.86%)
Mutual labels:  dice
dnddata
Weekly updated dataset of D&D characters submitted to https://oganm.com/shiny/printSheetApp and https://oganm.com/shiny/interactiveSheet. A superset of characters used in oganm/dndstats
Stars: ✭ 91 (+333.33%)
Mutual labels:  dungeons-and-dragons
FFGNDS-Discord-Dice-Roller
Discord dice roller for EotE, AoR, FnD, Genesys, and L5R role playing games.
Stars: ✭ 63 (+200%)
Mutual labels:  dice
IronWriter
IronWriter is an open-source writing tool for solo playthroughs of the free tabletop RPG Ironsworn. Focus on writing your story and let IronWriter automatically manage your character sheet.
Stars: ✭ 50 (+138.1%)
Mutual labels:  rpg-tool
etheroll
Provably fair dice game running on the Ethereum blockchain
Stars: ✭ 24 (+14.29%)
Mutual labels:  dice
my spells
Your personal D&D 5e Spellbook.
Stars: ✭ 12 (-42.86%)
Mutual labels:  dungeons-and-dragons
Luminari-Source
Current Source Code for LuminariMUD - A Pathfinder/D20 Multi User Dungeon
Stars: ✭ 37 (+76.19%)
Mutual labels:  dungeons-and-dragons
foundry-5e-monster-maker
A D&D 5e monster maker module for the Foundry VTT. Build new monsters with level-appropriate, balanced stats in seconds.
Stars: ✭ 26 (+23.81%)
Mutual labels:  dungeons-and-dragons
SolrConfigExamples
Examples of Solr configuration entries for Solr plugins and Conceptual Search\Semantic Search from Simon Hughes Dice.com
Stars: ✭ 26 (+23.81%)
Mutual labels:  dice

TavernBot - The Ultimate RPG Discord Bot for D&D, Pathfinder, and beyond!

Ideas and Suggestions Welcome!

The idea: Wouldn't it be great to have a really good D&D bot for discord? I think so. And this is the start of that solution.

TavernBot is a generator bot for Game Masters of D&D. This project is a Discord bot wrapper for the Dungeonary, and several other useful discord functions such as roles and eventually music/ambience in a voice channel.

This is currently an 0.x release - I will document features and such here as they're finished up and as we close in on 1.0, but for now, I'm pouring molten free time into this project to try and forge something awesome. Check the code for now if you want to know more.

Development

Fork this project, then follow these steps to get up and running! Make sure you have node 8+, with an appropriate npm, and a Discord bot token. Go to this link to set up a bot account, add the token to config.json in the project root, then invite the bot to a server for testing. And don't forget npm install.

'npm run devbot' will set you up with a hot-reloading bot instance, and 'npm test' should run quietly with no issues if everything's set up correctly. 'npm run verbosetest' will show you the npm test output, which should look like Discord-formatted responses.

Expectations and how it loads

The bot is set up to load a list of local libs, grab every exported function, and drop the functions + a bit of metadata into a global commander object. That said, this means it calls all functions exactly the same way - and if you need more parameters for some reason, perhaps we should chat. For your new commands to drop in and immediately work, they must have the following signature: f(input:String, message:discord.js#message, client:discord.js#client) - input will be everything after your commands name in the message to the bot (like '!commandname input is all this stuff'), the message will be the full message object per the Discord.js api, and the client is from Discord.js too.

Writing new commands

If you just want to just add a relevant command to a library, you only need step 4. But if you have commands to add that don't seem to fit with the theme of functions in a particular file, follow all of these steps to add a new library folder to the bot:

  1. Make a new directory
  2. Add your new directory to the MODULES array in bot.js
  3. Copy index.js from discordlib or gravemind into your new lib as a handy piece of boilerplate
  4. Write exported functions in your library (Note: The bot ignores the default export!)
  5. Update the index.js in your library so it loads a file you create in your new lib
  6. Run it! You've now added functionality to the bot!

Development triage:

ImportError: no module compiler.ast:

If you see the above issue during 'npm install', just run 'sudo apt install python-dev'. I'm as upset as you are that we need python for npm, but, c'est la vie.

Vague "app crashed" error

An issue with the bot, while testing new commands, is that you have to be very aware of what might throw an error. I don't have error handling set up correctly yet, even though I'm following the recommended client.on('error', callback) approach, so I apologize if this bites you. If you know a way to make node/discord.js run in a hella verbose way, I'd gladly add that to the npm run devbot script


Below is a sort of notepad, and generally contains nothing useful. If you have ideas or features that you think this bot should support, let me know on Github and we'll get it prioritized :D

Source for dungeon world content: https://www.npmjs.com/package/dungeonworld-data

Voice API https://discord.js.org/#/docs/main/stable/topics/voice

Character stats implementation needs PHB spread w/stat priority per class

Keep last 128 roll macros? 256?

Find a good base of Character Sheet JSON

Possibly useful for inspiration https://github.com/opendnd

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].