#SanguinusVtM
A Discord bot for Vampire: The Masquerade V20 games.
Created with Node.js and MongoDB.
#v0.7
Alpha version.
Test build for chronicle https://www.sanguinus.org/.
#Functionality
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 parameters.
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 initiative rolls and get initiative rankings automatically (ties are decided by initiative modifiers and then a coin flip).
- Decide if initiative 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
#Commands
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]
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.
- ADMIN 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 will remove 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 initiative value of your selected character or an NPC.
combat-iniset (iniset) [PC/NPC] [ini] [(opt) ini modifier]
- Adjusts or manually sets a new initiative value of a character/NPC.
- ADMIN ONLY.
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 standard xd10dY 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]
- ADMIN ONLY
- Displays the sheet of your selected character, or any character
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.
#Installation
docker volume create SanguinusVtM && docker volume create SanguinusVtM-db
- Change into docker volume for SanguinusVtM location and clone in the code
git clone https://gitea.docks.echoless.space/david/SanguinusVtM.git
SANGUINUS_VTM_TOKEN=[Discord bot token]
PREFIX=[special character that precedes the bot commands, e.g. !]
MONGO_URL=MONGO_URL=mongodb://[hostname]:27017/SanguinusVtM
docker compose pull && docker compose up -d
#Update
Since things are still very much in flux, it's recommended to empty the Mongo database before updating the bot on your server.