When I started running my own campaign in Port Haven, we already had a habit from Ken’s Curse of Strahd game. At the start of each session, Kristin read a written log of what had happened last time. Sometimes more than a week had passed between games, and we needed the reminder.

That practice carried into my campaign. Having a reliable record meant reconciling everything immediately after a game never felt especially urgent. We were capturing what happened, and I could come back to it when I started preparing the next session.

The logs began in a handwritten notebook, moved to a laptop and email, and eventually joined my campaign notes in Obsidian. Now they live in Brass, a tool I built myself. Over nearly four years, the mountain of preparation around them has grown larger than the full Lord of the Rings. AI has become my partner in keeping it workable.

On a Tuesday night, I might ask it to help build a five-room dungeon for a three-hour session on Friday. I might have two paragraphs describing exactly where I want to go, or I might admit I have no ideas at all. It proposes structures. I ask for options, cut what doesn’t fit, and expand what does.

By Friday, I have something I feel ready to run. Then the players get involved, and I find out which parts of that preparation actually mattered.

Starting with what happened

Kristin’s session logs feed into almost everything I do for the campaign. Having someone willing to keep those notes is enormously valuable. While I’m running the game and everyone else is deciding what to do, she’s also keeping a record we’ll all depend on later.

For a while, she emailed the logs after each session, and I copied them into Obsidian. They sat alongside scenarios, locations, NPC backgrounds, and hooks I might eventually use. I could bring that material into an AI conversation to help prepare whatever came next.

Eventually, I got tired of working in Obsidian and built Brass as a place to store and work with context. It holds other things I write, too, but the campaign gives it plenty to do. I still keep separate files for scenarios and individual NPCs, with references connecting them to the larger campaign.

More recently, I added access for the players. Kristin can now write the session log directly into Brass, which removes a few steps from getting it where I need it.

Those records give me somewhere to begin. Before deciding what happens next, I need to know where we actually left things.

Getting ready for Friday

My first request to the AI usually includes the previous session log, the relevant background in Brass, and whatever direction I have in mind.

Sometimes I know what evidence I want the party to encounter or which unresolved thread I want to bring forward. Sometimes I have a general situation and need help finding something interesting inside it. Other weeks, I need suggestions just to get started.

I often ask for a five-room-dungeon-style structure. The evening might involve no dungeon at all, but it gives us a useful framework for something we can play in about three hours.

The first answer usually needs work. I might like one part and ask for alternatives to the rest. An encounter might be too weak for the party. A fight might have suitable opponents but nothing particularly interesting for the players to do. Sometimes an idea needs more development before I can tell whether I want to use it.

That back-and-forth is a substantial part of preparing the game. I’m making decisions throughout: what fits, what connects to something established, what my players might enjoy, and what I can reasonably run in an evening.

I also use the AI for things I know I want prepared in advance. Second-person read-aloud descriptions are a good example. I feel more confident describing what the characters see when they enter a room if I’ve already worked out the wording. Monster statistics are another. When a fight starts, I want the information in front of me so I can keep running it.

Giving the tavern a busy night

One example of that process was a scenario called “Whispers in the Dark.”

The party was going to the Dusk House, a darkened tavern with a secretive clientele, looking for information from underworld contacts. The initial proposal had the location and the people they could question, but the place itself needed something happening.

I wanted a crowd with a reason to be there. It’s a tavern. People should be having an evening of their own when the party arrives.

I asked the AI what kind of performance could draw that crowd. We developed a traveling menagerie of mysteries, with a series of performers taking the stage.

Elsewhere in the campaign, I had already established a malevolent force capable of possessing people. Bringing that into the performance gave the encounter a much more interesting problem. Some of the people threatening the party were patrons who had come to see a show and found themselves under someone else’s control.

The players had to deal with the threat while finding ways to subdue the people caught up in it. Killing their way through the audience would have been a pretty terrible outcome.

It worked well at the table. I had scenery and 3D-printed models prepared, some mapping made with AI tooling, and townsfolk miniatures Ken had painted. The crowd was physically there in front of the players, and the possession made for a challenging encounter. They also got some of the information they had come to find.

That’s a good example of how I use the AI. I could see what the initial scenario needed. Asking for a performance gave us something to develop, and connecting it to an existing threat made it part of this campaign.

Running the game

At the table, I keep Brass open on my iPad. My scenario, campaign notes, and previous logs are available there, along with combat tools I originally built in Obsidian and later moved into Brass.

I built those tools with AI assistance, too. They track initiative, monster damage, player attacks, and conditions. Since I’m recording those actions in the system anyway, Brass can turn them into a combat log. Later, that gives me a more detailed account of a fight to supplement Kristin’s notes.

I sometimes use AI during play. Wex, one of the player characters, casts commune with a frequency that can be somewhat irritating to his Dungeon Master. His questions for his goddess, Noxa, can reach into fairly obscure corners of the campaign.

One was: “Can the current singing continue to keep the Coiled Sun asleep without Hemath and the upper clergy?”

Answering that meant checking several connected pieces of background. I could have the AI search the material in Brass and assemble an answer for me to review. The practical answer was yes: the singing maintained the effect, while the clergy administered it.

Then there was the question of how Noxa would say it. She’s cryptic enough that a plain explanation wouldn’t sound much like her. The answer delivered at the table was:

The choir keeps the god down, the clergy only keep the choir in chains. Break the chains, not the choir, and the god sleeps on.

There’s a cost to doing this live. Waiting for the AI can drag at the table. The players are usually pleased with the answer, but getting there interrupts the pace.

For smaller improvisations, I have lists of NPC names and brief backgrounds ready. I can mark a character as used and have Brass flesh out more background if the players keep talking to them.

Anything it produces still passes through me. If a detail doesn’t fit the scene, I change it. If it supplies information I don’t want the players to have, I leave that out. I’m deciding what they hear.

Working out what became true

After the session, I compare the log with what I prepared.

Recently, I built individual vignettes for the characters’ return to Port Haven after a long time away. Each had personal business to attend to, and I gave other players NPC briefs so they could take roles in someone else’s scene.

One player noticed that perhaps sixty percent of the information in their brief never came up. The player whose character they were talking to simply hadn’t investigated those avenues.

That leaves me with an important distinction to preserve afterward. The information exists in my preparation, but the characters haven’t learned it. If I build the next session assuming they know everything I wrote, I’m going to confuse everyone.

The log needs judgment as well. Kristin records events from her perspective, including what matters to her character. Something significant may go unrecorded. An interpretation that makes perfect sense from her character’s position may differ from what was happening behind the scenes.

I have to account for that when reviewing the record. Sometimes I supply something missing. Sometimes I clarify a misunderstanding. AI can grab a small detail from a log and give it far more significance than it deserves, so I also have to catch that before it grows into the next scenario.

I put those decisions into a reconciliation file: what the party explored, what they learned, and what needs carrying forward. Then I can write another paragraph or two about where we might go next.

Keeping the story

Those records have also become the basis for another project. Using the session logs, encounter definitions, combat logs, and character backgrounds, I’ve worked with AI to construct four books, with a fifth to come. I’m producing them as a podcast.

That’s a lot to have grown out of wanting to remember where we left off last week.

It also makes me appreciate the records themselves. Kristin’s notes, the combat logs, and my preparation each preserve a different part of the game. Going back through them lets me recover details I’d otherwise lose and follow consequences across years of play.

On Tuesday, I’m usually thinking about Friday. But every time I sit down to prepare, I’m drawing on something we’ve been building together for nearly four years.

Comments

To comment on this post, search for this URL in your ActivityPub client (such as Mastodon): https://asymptomatic.net/posts/2026-10-29-using-ai-for-dd

No comments yet. Be the first to reply via ActivityPub!