Play By Chat

Play-by-post D&D is not new, people have been doing it for years, but that doesn't mean you know how to do it!

Quick DM Tips

You can do this however you choose, but I'd recommend the following best practices:

  • Use Aliases: Even if a player only uses Discord to play with you, make them an NPC and have them use the alias. If they aren't, and they die and change their character, all chat history will update with their new name/avatar, and it'll be super confusing. It's also nice to have a distinct in-character and out-of-character persona to be clear who's asking a question or making a comment.
  • Pre-roll: Most DMs make players wait until a roll has been requested before the roll can be valid, but some suspension here might save time, especially when you might spend hours between availability, just to have the player roll a d20. So if a player is going to do something that might require a skill check, have them roll their best guess at what the check should be. If it's the wrong check, just say so, and use the d20 portion of their roll and add the correct modifier, rather than making them roll again.
  • Auto-Share Info: A lot of D&D groups do this anyway, but it's even more important here: if a particular character discovers something through inspection or remembering history etc, that the DM explains, assume that character shares this info with the group unless the player wants to keep it secret.
  • Communicate Absenses: People go on vacation, get busy with work, etc. and nothing can stop that. Be clear with your players that they should notify the group if they know about something like that coming up so that at the very least, everyone understands, and at best, the group can move on without ruffling any feathers. Using aliasing, the DM or another player could take over their character for a few days, or the character can just hang out in a nearby tavern, or they can just follow the group silently until something worth input comes up. Or maybe the group takes a break, but the key is to communicate if you're going to be gone or unreachable.
  • Separate Channels: Keep a clear #story channel and a #general or #chat channel, and try to keep the story channel clear of any out-of-character banter. It makes going back and revisiting the story significantly easier, and lets players that only have a short amount of time to "play" skip reading extraneous stuff and just catch up on the story.
  • Start With A Fight: There's a good chance at least one of your players is new to play-by-chat, new to you, or D&D altogether. Starting with an early fight lets them ease into role-playing (it's less embarassing to flourish your sword than to recite a poem for the king), lets them learn the roll mechanisms of the bot early, and most importantly, it involves everyone right from the start. This A) forces shy players to participate in the beginning, and lets them contribute to the group, when they might not if you start with a role play section and B) helps you figure out how available each player is (or if one of your players has disappeared between recruitment and game start). If any of your players drop, they can die in combat in story, and you can start looking for replacements ASAP, instead of finding out the person you thought was shy during a role play section wasn't there at all.
  • @Mention Players: Get in the habit of @mentioning players when it's their turn for combat or if they're being waited on for an initiative roll or skill check. The player might not have time to catch up on everything that happened since they were last on, but they could stop in and roll real quick if they knew they were being waited on. I created /ping and /turn for this occasion. It's also good to remind your players to do /done when they're finished so you know when you can move on.
  • Lean Into Advantages: Playing by post has some disadvantages, so make sure you take your wins when you can.
    • Split the Group: Feel free to split the group, just create an #alt-story channel or whatever. This can actually be a good way to deal with players that are constantly available or side missions, and since it's all asynchronous, it's much easier to manage than in person. If a couple players are going to be away for a week, maybe do a one-shot in another channel!
    • Don't Plan Too Much: You've got all the time in the world (relatively), so if your players take a hard left when you were expecting a right, no big deal. You don't have to ad-lib something on the spot, take your time and come up with a new direction.
    • Take Your Time: This kind of keys off the last one, but even with little stuff, you have an opportunity to really think out your responses. My play-by-post characters have a lot more going on than my real-time NPCs, because I don't have to act them out. I can just write them, and if necessary, think about it and rewrite!

Making NPCs

I find the easiest way to make a new NPC is to first search for an avatar that represents them from online artwork, and then carve out more details after I've found a picture that fits.

I've found this Pinterest Board to be a great place to find fantasy avatars to use.

Most of the time your players will only ever see the tiny avatar you pick, so make sure the face fits the character, and if their whole character is important, drop that in chat the first time they show up for reference.

Managing Combat Maps

Since everything is asynchronous, it could be rough to have a lot of back and forth where players are asking the DM about positioning etc. or getting confused, so I think a battle map is critical, even if it's minimal.

This is not the way to do this, but this is how I did this. I created a separate channel called #combat-info and inside is the intiative order, the current health/status of the enemies and I eventually added the players as well. Finally, there's an ASCII map of the action, inside a css code block:


It's pretty bare-bones, but it's infinitely better than nothing, and you can make maps very quickly. With some clever use of ASCII codes, you can get a pretty expressive version of what you want. Here's a few more examples.

map1 map2 map3

I recommend making these in a code editor, rather than inside Discord. While the end-result is monospaced, editing a code block inside the Discord editor is not monospaced, so it can get pretty wonky looking pretty quickly.

Another option is to use Google Sheets. It has good apps for both iOS and Android, so you can manage your map on the go, with the bonus of being able to use emoji and colorize your maps. Then just take a screenshot whenever there are updates and post it in your #combat channel.



It's also nice as DM to have extra notes etc in the spreadsheet in columns that your players can't see for quick reference like monster AC, HP, and attack rolls.

I think both of these are easier to manage than Roll20, and it keeps everything inside Discord, which makes it easier for new users and people on the go, but you do you!