A Discord bot for Vampire: The Masquerade V20 games. Created with Node.js and MongoDB.
Alpha version.
Test build for chronicle https://www.sanguinus.org/.
- Characters
-- Create characters and character profiles
-- Manage character sheets (still missing: Backgrounds, Disciplines, Merits/Flaws) - Rolls
-- Define dice pools with numbers ('!r 7') or stats ("!rs str bra")
-- Consider stat specialties ('!r 7 spec')
-- Save rolls to perform them more quickly
-- Modify stat-based rolls and saved rolls ('!rs str bra -3')
-- Learn how much the dice gods love you by looking at the luck score, which compares your result to 10,000 other rolls with the same paramters. - Blood, Willpower, Health
-- Spend and get BP, get notified if you risk hunger frenzy
-- Spend WP and restore WP once a week (with admin command)
-- Take and heal damage, see wound penalties - Combat
-- Join with saved characters and NPCs (at the same time, if you want)
-- Get automatic prompts for declaring and resolving actions
-- Define automatic timeouts to make sure that scenes run smoothly
-- Pause timers and continue timers at any point
-- Skip players if they don't respond in time (or because you feel like it)
-- Perform ini rolls and get ini rankings automatically (ties are decided by ini modifiers and then a coin flip).
-- Decide if inis should be rolled each round or only once.
-- Automatically manage additional actions from Celerity
-- Display combat summaries with combatants and next actions
-- Manage several battles in different channels at the same time - Blood bonds
-- Perform Vaulderies to create vinculums between any number of players
-- Automatically perform city-wide Vaulderies
-- Flag Cainites who drank but did not contribute blood
- bp-feed (feed) [(opt) amount]
Gain BP with your selected character. (Full BP if no amount is provided.) - bp-spend (bp) [(opt) amount] [(opt) comment]
Spends BP with your selected character. Spends 1 BP if no amount is provided. - char-all (allchars): Shows a list of all active (and paused) characters.
- char-my (mychars): Shows a list of your characters.
- char-new (newchar) [name]: Creates a new character.
- char-profile (profile, p, show) [name]: Shows the profile of a character.
- char-select (select) [name]: Selects one of your characters.
- char-setprofile (setprofile): Creates a profile for your active character. Via DM only.
- combat [(opt) notimer/slow/medium/fast/blitz] [(opt) fixini]: Starts combat or changes an existing combat.
- combat-celerity (celerity) [(opt) NPC]: Grants an extra action to your selected character or an NPC.
- combat-continue (continue, skip): Starts Round 1, skips players, and unpauses timers.
- combat-declare (declare) [action]: Sets the action of a character in combat.
- combat-end (end): Ends an ongoing combat in a channel.
- combat-ini (ini, init) [ini modifier] [(opt) NPC]: Sets the ini of your selected character or an NPC.
- combat-iniset (iniset) [PC/NPC] [ini] [(opt) ini modifier]: ADMIN ONLY. Sets the ini of a character/NPC.
- combat-join (join) [(opt) NPC]: Join combat with your selected character or with an NPC.
- combat-leave (leave) [(opt) NPC]: Leave combat with your selected character or with an NPC.
- combat-pause (pause): Pauses combat timers. Use combat-continue to continue.
- combat-resolve (resolved, resolve): Mark a previously declared combat action as resolved.
- combat-summary (summary): Shows the ini ranking and marks the player who has to act next.
- damage-heal (heal) [amount] [b/l/a]: Heal damage with your selected character.
- damage-take (take) [amount] [b/l/a]: Take damage with your selected character.
- help [(opt) command name]: List all of my commands or info about a specific command.
- roll-delete [name]: Deletes a saved roll for your selected character.
- roll-ini [ini modifier]: Rolls your initiative (outside of bot-facilitated combat).
- roll-load (rl) [roll name] [(opt) +/- modifier]: Performs a previously stored roll for your selected character.
- roll-my (myrolls): Shows a list of stored rolls for your selected character.
- roll-save [name] [dice pool] [(opt) difficulty] [(opt) comment] [(opt) "spec"]
Saves a roll for your selected character under a name. - roll-stats (rs) [(opt) difficulty] [stat names 1-3] [(opt) +/- modifier] [(opt) "spec"]
Performs a roll based on your character's stats. - roll (r) [dice pool] [(opt) difficulty] [(opt) comment] [(opt) "spec"]
Performs a dice roll. - sheet-set (ss) [stat name] [value]: Sets a value on the sheet of your selected character. Via DM only.
- sheet [(opt) character name]: Displays the sheet of your selected character, or any character (admin).
- status (health): Displays BP, WP, and Health of your selected character.
- vaulderie [(opt) city] [character names 1-n]: ADMIN ONLY. Updates the vinculum ratings between characters. Use '-name' instead of 'name' for characters who drank but didn't contribute blood.
- vinculums (myvincs): Shows the vinculums of the selected character.
- wp-replenish [(opt) character name]
ADMIN ONLY. Replenishes 1 WP for all active characters, or one character if a name is provided. - wp [(opt) comment]: Spends 1 WP with your selected character.
- Obtain Discord bot token
- Create .env file in the project's main folder with the following content:
SANGUINUS_VTM_TOKEN=[Discord bot token]
PREFIX=[special character that precedes the bot commands, e.g. !]
MONGO_URL=[Mongo database connection]
- Install the app on a Node.js host
- Add the bot to your Discord server
Since things are still very much in flux, it's recommended to empty the Mongo database before updating the bot on your server.