Friday, April 10, 2020

Online Gaming with Discord and Savage Bot

With everyone doing their best to stay safe and inside, it can be tough to get everyone together and keep those games running. There are a myriad of websites and programs that can act as virtual tabletops, and many people these days are turning to programs like Discord for staying in touch with their friends. Unfortunately, this is really the first time a lot of people have had to turn to the internet for gaming, and if you’re not good with computers this can feel like an almost insurmountable barrier.

Thankfully, I’ve put together this handy little guide that can help with making the transition a bit easier. I’ve been running online games for more than 6 years and at this point, my primary group has settled on one particular setup using a program for Discord called Savage Bot.

 Setting Things Up
First, you need to set up a Discord server. This process is pretty simple and is the same in both the desktop version and the downloaded client. If you're not confident in setting this stuff up on your own, though, feel free to join the Unofficial Savage Worlds Discord! We've got plenty of people willing to help, and we have Savage Bot installed already so you can give it a spin, or even run a game in one of our Game Rooms.
  1. At the bottom of your server list (at the left side of the window), click “Add a Server.” Click “Create Server” and give it whatever name you like.
  2. Invite your friends! Click on the “Create Invite” button next to whatever chat channel you like, then either invite your friends directly or send them a copy of the URL that is generated.
That's all! I won't give you a complete walkthrough of Discord as a program, but take a look at this video if you want more details on how to get the most out of the program.

Once you have a server, then you need to invite Savage Bot to come and join in! Click this link and it will take you to the Discord website and will ask you to choose which server you would like to add it to. Select the server you just made, hit Authorize, and Savage Bot will pop up in your server!

Don't worry, Savage Bot won't do anything until you issue him a command; we'll get into those next!

Using Savage Bot
Now that you have everything you need, you’re pretty much ready to go! Here’s a quick overview of how to make use of Savage Bot in your games.

Rolling Dice
First thing’s first: how do you get the dice rolling? Savage Bot was constructed from the ground up for use in Savage Worlds games, so most of the time you’ll only make use of a couple of simple commands, but the full list of commands is available at Savage Bot’s GitHub page. All commands for Savage Bot begin with an exclamation mark (!) and are typed into a chat channel just like you're messaging your buddies.

To make a Trait (attribute or skill) roll for a Wild Card—that’s pretty much any player character—simply type !sX, where X is the die type. This will roll the skill die, a d6 Wild Die, calculate any Aces, and give you the highest total. If you have a Healing d6 and wish to make a Healing roll, for example, you would just type !s6.

For rolls with multiple skill dice, such as firing a weapon with a high Rate of Fire, add the number of dice before the “s”—firing a RoF 3 machine gun with Shooting d8 would be !3s8, for example. If there are modifiers on your roll, just type it in after the die type (e.g. !3s8-2)

The number in parentheses after the first roll, 17 (4), is Savage Bot automatically counting the number of successes with the assumed target number of 4. If you’re dealing with modifiers and prefer not to type those in, you don’t worry about this number.
Rolling for Extras and making a damage roll both use the same command. Type in !dX!, where X is the die type. The second exclamation mark is very important, as it tells Savage Bot that these dice are open-ended and can Ace. If rolling for a d6 Extra, for example, you would type !d6!. This can be added together and augmented to handle damage as well—a 2d6+1 pistol would type in !2d6!+1, and a Strength d8 warrior Wild Attacking with his short sword would type !d8!+d6!+2.

Finally, here’s a little trick: Savage Bot will perform the same command multiple times if, right after the command !, you type in “Yx”, where Y is the number of times you want it to roll again. For example, a Charismatic character with d8 Persuasion will always roll Persuasion twice, so you can speed that roll up by typing in !2xs8. As another example, if a character with a machine gun (2d8 damage) lands three hits, you can type in !2x2d8! and the damage for both hits will be rolled at the same time.

I know that some people get a little turned around about when they should use “s” or “d” before their rolls, so here’s how I remember it:
  • For Wild Cards (and players), type "s" for "Savage."
  • For damage, use "d" and include another "!" for "Damage!" (This is the same command as for Extras—they tend to roll quite poorly, so you can also use "Dang it!")
Initiative Tracker
Now, rolling dice may not be as important to you—a lot of groups allow their players to roll their own physical dice and just trust each other to be honest about the results. Even if that’s the case, the other big benefit of using Savage Bot is the robust initiative tracker.

To begin a new fight, type !f. This shuffles the deck and resets the initiative tracker.

To deal initiative to new characters, type in !di [characterName]; you can add multiple characters at a time simply by typing their names. If a new character joins the fight, you can use the !di command at any time to add them to the Initiative Tracker, or the !drop command to remove an unwanted character.

Do not use spaces in your character names. The bot uses spaces to distinguish separate characters, so typing Jack Jones deals cards to two characters, while JackJones deals a card to one character.
Many characters in Savage Worlds have Edges like Level Headed that change how they draw cards. You can add this directly to a character—after the character’s name, type a space and add -l [Level Headed], -i [Improved Level Headed], -q [Quick], and/or -h [Hesitant]. If a character has both Quick and Level Headed, you can type in -ql to give her both.

If a character wants to spend a Benny for a new card, or has an Edge like Tactician that gives them extra cards, type !card [characterName] to provide that character another card!

At any point, you can type !init into the chat to refresh the initiative tracker, or display it again if it's getting buried under all the dice you're rolling!

Jack has Level Headed, Jones has Quick, Jill has Improved Level Headed, James has Hesitant, and Jackie has Quick and Level Headed!
This may seem like a lot, but don’t worry—you don’t have to do this every round! Once everyone’s taken their turns simply type !rd + to start the next round, shuffle the deck if a Joker was drawn, and deal everyone their initiative! If any characters or groups have been knocked out of the fight, you can type !rd + -[characterName] to remove the fallen foes automatically!

Savage Bot can be used to track Bennies using “tokens”. !give [characterName] # grants characters a number of tokens, while !take [characterName] # removes a token from the target character.

The initiative tracker can even be used to track a character’s “state,” making it easy to handle if a character is Shaken, Distracted, Entangled, and so forth. Use the command !st [characterName] [status]; the available status options are: Shaken (sha), Stunned (stn), Entangled (ent), Bound (bnd), Distracted (dis), and Vulnerable (vul).

To remove a state, type !st [characterName] -[status], or !st [characterName] clear
Other Tools
This is all you really need to run a Savage Worlds game using Discord. However, some GMs like to go a little above and beyond: here are some additional recommended tools.
  • FredBoat: FredBoat is a music bot you can add to a server to play music from YouTube, Spotify, and others. It’s a great way to add some atmosphere to your games. Keep in mind FredBoat always loads in the first time at maximum volume, so make sure you tell each of your players to lower FredBoat’s volume before you get him to play music. (Right-click on FredBoat in the user list on the right of the Discord client, then lower his User Volume—mine sits around 30–40%.)
  • This robust character creator can help newer Savage Worlds players create, track, and share their character as the campaign progresses. It has modules for most major Savage settings and can easily include custom content for your campaign.
  • Roll20: While I much prefer Savage Bot’s dice rolling and initiative capabilities, if your group is itching for tactical battle maps, Roll20 can handle this perfectly! (In my opinion, if you are using Roll20, it may be better to track Bennies there instead.)


  1. Thanks man. This is great stuff.

  2. As usual, you're a lifesaver Doc. This will be handy for our new Discord RIFTS campaign. (in which I'm the only non-coding professional in the group... :) Good to see you on here again, BTW :)

    1. Glad to help! Good luck; Rifts is a heck of a setting