A stylized robot face made of the letters F and T.

Madam Eva


Madam Eva is a Twitter bot that we built for Wizards of the Coast for the launch of a new Dungeons & Dragons adventure. We worked with WotC to create a bot that tweeted in the voice of a fortune teller in their game world.

The bot ran on the official D & D Twitter account and generated random, customized fortunes for anyone who retweeted something from that account tagged "#DnDFortune".


This bot uses Kate Compton's Tracery expansion grammar library (along with George Buckenham's Node.js port thereof) to generate fortunes. The fortunes themselves are based on a Google Spreadsheet: the spreadsheet contains all of the vocabulary words and templates we wrote for different cards—the bot draws a card and then references the corresponding templates to generate a matching fortune. This way, the fortunes always match the interpretation of the card as laid out in the Ravenloft source book.

Post Mortem

A picture of the profile of the Madam Eva Twitter bot. Text: "Come in, come in. Retweet #DnDFortune for a reading."

Although this project was a collaborative process with the WotC narrative team to adjust the bot’s tone, we still ended up throwing away the entire first pass! What we learned from this project was to allow more detailed feedback, and so for future projects we ended up developing a new workflow to give clients real-time access to our bot-in-development. This also makes things more cost effective, as it's less time going back and forth and more time making the bot as good as it can be.

This was also our first time working with the incredible evocative source material they have at Wizards of the Coast. Both the custom tarot cards and the excellent sourcebook provided a ton of inspiration. When working with game developers we now always request as much of their internal lore documentation as possible.


The content of this article is provided under a CC-BY Creative Commons Attribution 4.0 license.