The Framework I Use to Write Memorable D&D Campaigns
I like to run epic level RPG campaigns that focus on deeply tying player-characters to the arc of the campaign.
My campaigns are fixed length. I play with a bunch of adults with busy lives, and a fixed length campaign makes it easier to schedule.
In this post I’ll go over how I design campaigns and will use a recent campaign, Shadows Over Siqram, as an illustrative example.
The spark
To start a new campaign, I start with some kernel of an idea. This idea usually conveys the tone and bits of the setting. It doesn’t have to be deep, or have a lot of detail or answers, but it’s enough to motivate me to want to spend the time building something.
For Shadows Over Siqram, the spark was something like this:
The rider mounts and flies off.
And that’s it! That popped into my brain one night in the shower.
Importantly, that spark seeded a million questions. What type of society has tamed dragons? What were the humans on the horizon doing? Why would anyone be patrolling a vast, harsh sea of sand dunes? Why would a city be settled there? And on and on it goes.
After I had a spark, the next step was to gather interest from potential players.
Finding my players
Before I spend time really ironing out the details of my campaign, I want to gather interest from some potential players. I figure out how many PCs I want in this campaign (usually between 4 and 6), and I put together some loose expectations. This step is incredibly important.
In my initial expectations I’ll cover: tone of the campaign, style of play (ie, roleplay heavy, loot’n’shoot, dungeon delving, etc), character building expectations (alignment, background), scheduling expectations and expected length of the campaign. I’ll usually give a short overview of the setting as I’ve imagined it so far.
I cannot overstate how critical this step is. The entire success of the campaign hinges on it. If you are trying to plan a deep, roleplay heavy campaign with a nuanced setting and rich PCs, but your players just wanna dungeon delve while drinking beers, no one is going to be happy. Here’s what I sent to folks when I asked if they were interested in playing Shadows Over Siqram with me:
- I expect this to take 6-8 sessions of 4 hours each. This does not include the Session 0.
- I’d love to schedule these sessions in advance on a weekly cadence
- If a player can’t make a session we’ll skip that session and add one to the end - I prefer this to playing without a character. Each session will be designed for all players present.
Character Development
- We’ll do milestone XP
- Your characters will advance two levels from 13 to 15. Use that info when planning your builds. Min/max characters are encouraged.
- I’d like characters to be deeply involved in the setting, with friends, family and a history as it relates to Siqram
Table Manners
- We all appreciate and enjoy the game more when everyone is fully present. Let's aim to keep distractions to a minimum. Whether you're using digital tools or traditional pen and paper, maintaining focus helps everyone stay immersed and ensures smooth gameplay.
- For RP I hope that players will be able to immerse themselves and get their characters involved and invested in the environment
- For combat I hope that players will be attentive and ready to act on their turn to keep combat flowing
Every player that said they were interested explicitly said they understood the expectations and were excited to play in the game. I ended up with four players.
Once I had players, I knew I had enough buy-in to focus on actually building out the setting.
The setting
Once I have the kernel of an idea, I need to build up a world around it. Even when I’m using published adventures or settings, I will flesh out the setting more. I make sure it has enough detail that my players can develop characters that are richly tied to the setting.
If I just told my players “your character needs to be tied to the setting”, where would they even begin? How would they know what to make? How would they make connections?
I start very broad here. Earlier my spark was about a person, a dragon and the sand dunes. So, I’m looking at a desert. And this person seemed to be patrolling, in some capacity. That means there’s something nearby that needs protecting. A city-state seemed like a natural fit.
As I develop the setting, I start to get more and more specific. What type of government does the city-state have? What does law enforcement look like? What is the economy?
Once I’ve answered these functional questions, I zoom back out and ask: How did it get to be this way? Why did they land on this government? Why was it settled in the first place? This lets me develop a history. Having a history gives my setting a deep character and makes it feel alive.
And lastly, I populate it. All those government, law enforcement, and economic groups need people to run them. So I start generating dozens of NPCs. I keep it simple: name, species, age, sex, pronouns, role and a two-sentence description. ChatGPT helps enormously here.
In the case of Siqram, here are some of the details I landed on:
The city-state is thousands of years old and has a very rich guild tradition. In the past it was ruled by an emperor. The emperor had slaves. The slaves revolted, and that’s how the current government was formed.
Long ago, before the emperor, there were dragon wars. Some of the dragons sided with the city-state, and those became the crystalline dragons of the dragon-riders. A revered group of warriors once, they are now in a state of decline.
Every detail I came up with, I tried to ask why? How? What sorts of reasons would lead people to organize this way?
At the end of this process I had a very rich setting, with layers of history. This is what I present to my players.
At this point I had my spark, my players and a richly developed setting, I could invite the players in and have them start to develop characters in this world.
The players and their characters
Once I’m fairly satisfied with the setting, I stop my own development on the campaign. Now I turn it over to the players. I send them a link to a LegendKeeper with all the information on the setting, and I ask them to make characters.
I set the expectation that these characters should be richly intertwined with the setting. Their backstories don’t need to be long, but they need to have depth. I give them these questions to answer:
- Who is your character? How did they come to be an adventurer?
- Who in this world do they know? What friends, family, lovers or enemies do they have?
- What are their goals? How do you (the player) want this character to evolve?
- What tensions or open plot hooks does your character have? There should be a handful of open-ended issues that I can tie into my world.
- What does a day-in-the-life of your character look like when they’re not adventuring? What job do they have?
- How does your character know the other characters? Why would your character risk their life for any of the other characters?
Some players send me 2-3 pages of content. Others send me a couple of paragraphs. It’s not the amount of content they come up with, but the depth of it. There needs to be places I can hook them into my world. If the character is flat, I can’t do it.
This is an iterative process. The players will send me some info, and I’ll ask questions, or prod them. Or I’ll notice something that, if we tweak it just a little, really fits into my setting much better. We go back and forth on it a few times and then say that it's good enough.
Here are the characters that came out of planning for Shadows Over Siqram
Kayson - the ranger/cleric/thief/fighter that runs a vet clinic in the city. She’s got god issues and isn’t sure the deity she’s sworn to is the right one for her anymore.
Ash - echo knight; the son of the previous head of Siqram’s army. Ash’s dad died unexpectedly. Ash’s mom is cold. He’s in a position of command, but everyone thinks he’s a nepo-baby. He wants to prove himself to the city.
Arranis - warlock; works for the Merchant’s Guild as a treasure hunter (non-binary Indiana Jones vibes). Is fey, but doesn’t remember when they came to this realm… and can’t get back. They want answers.
Now I’ve got a kernel of an idea, a place it happens in and a bunch of characters that are ready to be integrated into a campaign.
With all that in place, I shift my focus to my villain’s agenda.
The villain and the plan
The next phase is figuring out who the antagonist is, and what it is they’re doing. A common mistake here is DMs will start trying to write a plot. “The players will get mugged, and realize the muggers were from a cult. Then they’ll track down the cult and find a hidden manuscript in the cult’s lair. Then they’ll use that manuscript…” and on and on. The problem with this is that you’re scripting the players actions. And that’s no good.
The key here is to come up with the villain and the plan. I got this idea from Guy Schlander’s book, The Practical Guide to Becoming a Great GM. In it he gives the formula for a villain’s plan:
Someone wants something by sometime using some tools, but is having trouble getting it because of reasons.
This can really be absolutely anything. For Siqram I had a couple of newer D&D players, so I wanted to give them a fairly standard D&D antagonist. I wanted a devil. And what do devil’s do? They collect souls. So my plan was going to revolve around souls.
Here was my first iteration:
And this is where the iterative nature of planning a campaign comes in. I was really stuck on “why is this devil having a hard time?” There were a lot of points in this process where I got stumped like this, and I used a couple of tools to get out of them. The first was my extremely patient spouse, who let me bounce ideas off her over and over. The other big tool for me was ChatGPT, which is really contentious in this space. There’s a lot to write about ChatGPT, but what I’ll say here is that I find it most useful when I tell it to act as an editor and to ask me probing questions instead of generating ideas.
For this particular stumping, I started trying to daydream about Siqram and how it might defend itself. I asked myself, “how has this high magic, high fantasy city survived for so long? With so much magic, it must have a lot of wealth. And with a lot of wealth, all manner of creature would assault it constantly.” And I really honed in on that idea of magic. What would a city with so much magical power do to defend itself? My partner provided the answer. “Don’t they just have some magic shield or something?” It was a huge lightbulb! Of course they do!
But… then I started to wonder… how did they get it? And why? I already had my answer in my short setting summary from before. The dragon wars. In order to keep the red dragons out, they had to build this massive shield that surrounds the entire city. That’s cool. This shield isolated the city, but it also protected it. Nothing that had obvious ill will towards the city could enter or be summoned into the city. That’s a pretty big barrier. So now I have:
The last piece to come up with was the time pressure. If a villain doesn’t have a ticking clock, it has no reason to act. And we want our villain to act. If the villain doesn’t act, there is no campaign. So why would my devil be under time pressure. Well. What if there was some sort of devil proceeding coming up? Devils love their rules and contracts, after all. What if this devil wanted a promotion. And the way to do that was by collecting souls. So it needs to collect enough souls before the next proceeding. And boom. We have a plan:
This plan is a basic outline and a motivator for everything that comes next. It asks a million questions that beg to be answered, and that’s the next step.
The plan has steps
In this part of the process it was helpful for me to get into the mind of my villain. I tried not to think about the players, or what I wanted to have happen as a DM. Instead, I thought about my villain’s motivations. How do they plan? How do they act? Are they brash? Are they conniving? I really tried to put myself in their shoes, and plan out their master plan.
Things would be a lot easier for Zakaroth if that was the end of the planning he had to do. But it would make for a boring campaign. Fortunately for us, that one sentence plan isn’t enough to go off of. Zakaroth needs to break his plan down into steps.
The first issue for Zakaroth is the boundary. He needs to find some way of getting around it. He’s from the plane of Hell, and he needs to be summoned to the material plane. If the boundary is up, he can’t be summoned into the city, and he’s not strong enough to outright destroy the boundary. So he’s got to figure out a way to remove it.
And it's this kernel of an issue that drove my entire campaign.
I decided that Zakaroth was a very very cunning devil. He wanted to destroy the boundary in epic fashion. And he wanted to do this by tricking the PCs into doing the destroying. This would give him a spectacular, devastating victory over the heroes.
So his plan was to steal a boundary glyph, corrupt it, and trick the players into recovering it and re-inserting it.
But even that isn’t enough of a plan. How is he going to steal a glyph? They’re super powerful, and certainly he would be noticed.
Well, he’ll make a diversion. What if he could weaken the boundary just enough to be able to summon some minor demons into the city. These demons would wreak havoc on a city that isn’t used to issues like this. And maybe, in that chaos, he could steal an entire glyph.
But how does he weaken the boundary? Well, here I just used some hand-wavy demonic mumbo jumbo and said “the cult has some infernal magic that can temporarily poison a boundary glyph which will weaken the entire boundary”.
So this is what his plan looked like:
Step 2 - Create a distraction in the city by summoning minor demons all throughout the city while the glyph is weakened
Step 3 - Steal a glyph while the city is distracted
Step 4 - Poison/corrupt the stolen glyph, and leave it someplace where it can be found
Step 5 - When the corrupted glyph is re-inserted into the boundary, it will destroy the entire boundary
Step 6 - Get summoned into the city and eat all the souls
And boom. Now we have a detailed plan. In this campaign, because Zakaroth was such a cunning NPC, I had him create diversions and backups to each step of the plan. For example, while step three was happening, he had his cult start a powerful ritual within the city. The PCs couldn’t stop both. By the end of the campaign, the PCs really hated this guy, and consistently felt a step behind. He really came to life.
Integrating it all
So we have a plan, we have a setting, we have a bunch of PCs. All that’s left is to tie them all together, come up with some rough pacing outlines, and run the campaign.
To tie the whole thing together, I go back and reread all my PC backstories, and look at the NPCs they know, and the life they live in my setting. I ask myself: where is there overlap between what Zakaroth needs and who the PCs know? Where can I tie the PCs goals to Zakaroth’s plans? Or Zakaroth’s minions plans?
This takes a lot of workshopping. I mostly think about this in otherwise idle time - like when I’m on a run/walk, in the shower, doing the dishes, etc.
For Siqram, some of the tie ins were fairly obvious. Izzy was a dragon rider, and the dragon riders are responsible for patrolling the glyphs. What if something called her out of retirement? Maybe Izzy is the dragon rider from my kernel scene. Maybe that’s how the entire campaign opens. Izzy is, who is supposed to be retired, is getting pulled back into war and conflict, which she hates.
Ash was super easy too. He’s the second-in-command of the army and wants to prove himself. What if the first-in-command dies, and he’s suddenly thrust into the most important military position in the city, right in the city’s biggest crisis? That’s a good way to prove yourself.
Some of them were harder. Arranis and Kayson were a lot harder. And it took a lot of workshopping for me to get there. But here’s where I ended up with the group:
What if Kayson is having doubts over her god because The Raven Queen is interjecting - she’s choosing Kayson as one of her acolytes to protect the city. The Raven Queen is the god of time and memory - maybe she knows the city is under imminent threat, but cannot intervene directly. So she has to find her chosen.
What if all the players were chosen? What if Ash’s dad died on some mission for the Raven Queen? What if he had sworn that his entire bloodline would serve The Raven Queen, and she will help Ash prove himself?
What if Arranis, collector of relics, savior of memories, is chosen by the Raven Queen? What if she pulled him here from the Fey for some unknown reason?
What if Izzy’s dragon is somehow connected to Bahamut, and through that connection has the attention of the Raven Queen?
You can see how it would take many many iterations to get to this point. And that’s okay! I spent a lot of time bouncing ideas off my very patient wife and getting her input. I’d go back to the players and ask to make small tweaks to their backstory to facilitate some idea I had.
But once I felt good about the broad strokes, I’d move on to the next phase.
Session outlines
This is the last step before I start scheduling sessions and prepping them. I make an outline of all the sessions and their pacing. This way I know roughly what I need to accomplish in each session, what plots need to develop, and roughly where it ends.
How do I do this when I don’t know how the players will respond to the villain’s plan? I take a look at how many sessions I want to run and how many steps are in the plan, and I try to align them.
As a general rule of thumb, I plan on alternating RP heavy and combat heavy sessions. Each RP session ends on a combat cliffhanger, and each combat session ends with the clues to pick up the story for the next session.
This means I’ve got a fixed number of RP sessions I can use to develop the villain's plan. I make the villain’s plan with that number of steps. Then each session the PCs and villain are resolving one step of the plan. Sometimes the PCs completely foil the villain's plan at a certain step. That’s great! My villains are resilient. They go back to the drawing board and figure out another step that will satisfy their goal.
So for Siqram, my outline looked like this:
Session 2 - Fight the demons. Find the ritual that’s happening and stop it. Ritual has a book with some infernal clues.
Session 3 - Glyph has been stolen. Apparently the cultists want to smuggle some artifacts into the city - figure out why and stop them.
Session 4 - Conflict with the artifact smugglers
Session 5 - Really need to find that glyph. Try and find some help. Find the glyph and travel to it
Session 6 - Conflict with the guardian of the glyph. Re-insert the glyph
Session 7 - Boundary blows up! Oh no! Figure out where Zakaroth is going to be summoned
Session 8 - Go kill that mother-devil.
At this point I’ve got an entire campaign outlined! I’m ready to plan out session 0 and session 1 and get going. I’ll go into more detail about how I do that in a future post.