How We Maintain a Coherent D&D Campaign World with AI
Every Dungeon Master has the same problem.
You spend three hours building an inn. Your players walk past it, spot a blacksmith’s shop you invented on the fly, and spend the whole session interrogating the owner like he’s the main villain. On the way out, they adopt the enemy’s horse and name him Tony.
This is the best part of D&D. It’s also the part that upends your prep on a weekly basis.
So you wing it in the moment, scribble notes after the session, and try to remember what Tony’s backstory was three weeks later. The result is a campaign world that’s rich in some places, threadbare in others, with NPCs who occasionally contradict their own motivations because you forgot what you said two months ago.
Our team member, Sara, thought that there’s a better way to handle that.
The actual problem with AI and creative work
Most AI tools approach creative writing like a vending machine. You describe what you want, something comes back, and you choose to use it or you don’t.
That’s fine for one-off tasks, but it starts to fall apart for a living campaign world.
A vending machine doesn’t know that the corrupt city guard from session four is actually the estranged nephew of the merchant who hired the party in session one. It doesn’t know that the thieves’ guild controls the docks and would logically have a presence in any port city your players visit. It doesn’t know what the campaign already contains, so it generates something technically competent and completely disconnected.
The result is NPCs who feel like they were dropped in from outside. Players pick up on it fast, even if they can’t name it. The world starts to feel thin.
What you actually want is something with memory.
What it looks like
Using Friday, we set up a system that does two things: generates NPCs and generates side quests.
Sounds pretty standard so far, but here’s what’s different.
When you ask for a new NPC, the system doesn’t start from scratch. It first reads every character already in your campaign, including their faction affiliations, backstories, locations, and relationships. It builds a picture of the existing world before it writes a single word of the new character. Then it generates the full 5e stat block: race, class, all six ability scores, saving throws, AC, HP, spells, equipment, personality traits, ideals, bonds, flaws.
More importantly, it produces history notes and cross-references. “This NPC was once a lieutenant in the same mercenary company as the disgraced knight from session two. They parted on bad terms after a contract gone wrong in the northern provinces.” The new character arrives already woven into the world.
The side quest generator works the same way. It reads your full NPC roster, chooses the characters that fit the tone and theme you described, and explains why each one was selected. The resulting quest involves people your players already know, at locations that already exist, with complications that grow from your campaign’s existing tensions.
Every NPC and every quest gets saved and the world compounds over time.
What this looks like in practice
Here’s an example. The players decide, entirely unprompted, that they wanted to investigate a series of disappearances in a dockside district. Nothing’s prepared.
Four sentences of notes go into Friday: the tone, a rough idea of who was behind it, the kind of encounter wanted at the end. The system comes back with a complete quest arc, two new NPCs, and a twist that connected the disappearances to a merchant faction the players had already crossed earlier in the campaign.
The DM might have already forgotten about that faction, but the system doesn’t. It captured there in the roster as a resource, and referenced for every generation.
The session feels coherent in a way that pure improvisation rarely does. The world’s existing history shapes the story automatically.
Why this is worth paying attention to
Most conversations about AI in creative work focus on whether AI can replace the creative act. That framing misses something.
At the end of the day, you’re still the DM. Every story decision, every encounter, every player experience at the table is yours. The system doesn’t touch any of that.
What it carries is the weight of the world, the continuity tracking, the cross-referencing, and the mechanical bookkeeping of a 5e character sheet. It’s the work that happens before the creative work, and that, if left undone, quietly degrades the creative work.
Good creative tools extend what you’re able to hold in your head at once. It helps make the job of a DM who is already good at what they do, a little bit easier.
In this case, Friday holds the campaign history, so you can focus on the players and the session.
The broader pattern
D&D is an unusual use case, but the underlying problem isn’t unique to it.
Any creative project with a persistent world — a novel series, a game universe, a long-running creative writing project — has the same structural challenge. The longer it runs, the harder it is to maintain internal consistency without dedicated infrastructure. Most people don’t build that infrastructure, so things slip.
What’s genuinely new right now is that this kind of persistent, context-aware system is within reach for anyone. It’something you can set up within minutes on a Tuesday afternoon and use the same week.
Your campaign can have 47 NPCs. Tony the horse can technically have an entry. The world can hold together in a way it never did when you were trying to keep it all in your head.
Friday lets you build custom workflows grounded in your own context — for work, for side projects, or apparently for keeping track of a horse your players adopted in session three. Try it here.


