Good Help is Hard to Get

by LictorImperialis

Aethyrr Kael'Shaereran The Shard Hand - Eldar Corsair (at the time)
Art by Lady Red,

It begins with way too much coffee and not enough time

Somewhere around the third session of Ad Astra Avaritas — a Rogue Trader campaign run by yours truly and a bunch of legion-adjacent chucklefucks set in the not-so-grim, not-so-dark future of Only War — I ran my already fogged-out brain into a problem all too common to anyone orchestrating a sector-wide invasion across multiple planets, a dozen tangled character arcs, and discussions over recaff.

Logistics.

I hadn’t had to feed anyone across besieged enemy lines — it’s a virtual tabletop game, and there are plentiful tools to provision me, from Foundry to Roll20. Remember driving whole three-ring binders across town? Yeah. Good times. But seventeen tabs open, two contradictory comms drafts, the same naming template reused for the sixth time, and I’ve forgotten what pair of legs the admech wore to session today. It’s a lot. And I only have so much prep time.

I always took *some* notes — a four-page draft, NPCs, planets in the sector, reference art where I could be arsed to look for it. My favorite chatbot and a few friends made a decent sounding board, enough to let my players know I meant business. We had a premise and a map. Good enough to get going.

Then life cut in, and the prep started to wane again. But I wanted to make the most of what I had, so I needed help — and as a programmer, my go-to was, well. LLMs. They’d been around long enough to be useful as a sounding board, if only to clear the bad echoes out of the way of the real writing. And to take on the dreaded blank page.

Ever found yourself staring at a blank page, full of the desire to create but frozen in fear of that first stroke that would ruin everything? I have. Plenty of times. All those ideas, all those possibilities. But once there’s dirt on the floor, you can start tweaking, playing, working with it. Blank pages, though? Terrifying. Chatbots helped there — especially since the people I’d most want to talk it through with are exactly the WRONG people to talk to. As a storyteller, the last people you want thinking you have no idea what you’re doing are the ones most invested in your story. And you can’t tell them, because then the Drama won’t happen.

So I did what came to my roughly functional brain. I tried my best and felt like I was falling behind — measuring myself against people with hours, days, sometimes whole teams behind every session. All I wanted was 3-4 hours of fun with the gang. Maybe a memorable moment or two.

And then I found out what the chatbot actually needs from you. Which is everything.

A power tool, not a magic wand

There’s a version of this conversation that positions AI as a magical GM enhancement — an oracle you consult for lore, a content printer you feed prompts and harvest statblocks from, a co-GM who has read everything and forgets nothing. People sell this pretty aggressively.

Like every promise of a panacea, it earns a hefty grain of salt.

Here’s what’s actually true: an AI assistant is only as good as what you give it. Which sounds obvious when you say it out loud. But the implication is significant, because it means the real work — the work that actually improves your game — is the work you do before the AI ever enters the picture.

What I built for *Ad Astra Avaritas* isn’t primarily an AI system. It’s a campaign operations repository, a database that’s accessible to my AI assistant, and me, the Storyteller.
The end result is a filing system — the files for every NPC, every open plot thread, every session, the setting, the tone, the factions. A Rogue Trader captain (age 134, birthday a ship-wide holy day, absolutely convinced of his own grandeur) lives in ‘npcs/captain-petronikov.md’. My tendency to set things up with my players, to get them involved and have proper mutual prep sessions where we go over the major NPCs helped shape the tone and tighten everything else.

It doesn’t work for every campaign, but it’s the basic groundwork.

A grand Ork assault force has a faction file. The seeded mysteries from session one are tracked in ‘plot-threads/_index.md’. The session log tells you, at a glance, where the party is, what they know, and what’s about to land on them.

The AI reads those files. That’s it. That’s the magic. I don’t have to remember all of it together, all of the time, at the drop of a hat when a player does something crazy. Which they do often.

The part that actually changed my GMing wasn’t getting access to an AI — it was being forced to write the campaign down, coherently, in a form that someone who wasn’t me could navigate. The ‘CLAUDE.md’ file at the root of the repo — the folder where the whole campaign lives — is, genuinely and without irony, an onboarding document for an AI assistant. Agent orientation sequence. Task-specific read lists. Standing orders. Style contract. I wrote a personnel manual for a language model.

In doing so, I also wrote a personnel manual for myself. I can go back and read it. I still do between certain sessions. My brain works like that: when I put things down, I also dedicate neurons to doing things and remembering them.

What it actually does now

Statblocks on demand. I hate statting enemies. The crunchier the system, the more there is to get wrong — a number out of whack, an encounter that feels unbalanced, a fight that just doesn’t land the right emotional note on the players I’ve set it in front of. Numbers in TTRPGs are a science and an art to themselves, and everybody likes their tea brewed to their taste. Then there’s the time: copy-pasting all the data into a convenient form takes ages, and the tools that are readily available are partial, and sometimes costly.

Not every system or setting has a huge selection of existing, tested, proven designs. But with my assistant knowing the tone and at least having a guess at a system’s balance, I can generate something quick that fits the needs of the moment. “Make me a Stormboy that crashes through the ceiling” or “Give me an idea of what a macro-plasma cannon would do” are viable solutions — better still if I’ve set it up to remember past ideas and tighten the screws every time. It also defeats the ‘blank page’ version of the problem: “How do I use the system to make my players feel X while they deal with Y?” — a conversation worth having a few times in every storyteller’s career.

Random Shit. Perhaps one of my favorite tricks. Given enough context, I can fill out random stuff. What did the Kroot Shaper leave in the character’s quarters today? What sort of toppings did the stolen Primarch Pizza have? I have a finite amount of creativity at any given point. Having an idea available that I can discard if I don’t need it has proved invaluable at times. Once the tone and ideas are set, getting a genuinely cool detail back works roughly 5 out of 9 times. Better than half. Better than my average of blanking out when the players are too clever, or falling into a rut.

Session prep scaffolding. I need people to talk to. Sadly, I can’t ask the players what they think the twist should be or “Is that message hidden in your files horrifying?” — so I talk to an agent. Having pre-built it and provisioned it with knowledge to answer in tone and consistent with the world helps a lot. I can describe a series of beats I want to work in, and then ask them to find gaps in my logic or how to tie in elements that I’ve neglected.

For Roll20 and Foundry GMs specifically: If you play on a virtual tabletop, there’s an extra win here. I can have the AI write a monster’s stats out in the exact format the app expects — picture handing it a form the software already knows how to read — and then just import the thing. No re-typing, no fiddly data entry. The gap between “I need this NPC to exist” and “this NPC exists in my game, statted and clickable” is now embarrassingly short. And if you’re running a system with a good pool of community data online — something modern like Draw Steel, or an old workhorse like Pathfinder 1e — you can point the AI at that shared, openly available material and build even faster, standing on work the community has already tested. It’s not magic, but sometimes it feels like it. Especially when I need ten different minion types for a wave-style breaching session.

When it works, it’s great. A few sessions back, the party went completely off-script. My players — usually cautious, sometimes prone to analysis paralysis — picked that night to ride forth and tackle a problem I’d seeded three or four forks down the road. Right then. Nowhere near the minions I’d actually prepped.

I had nothing. No stats, no foes, no map. I could have winged it, or called the session and built it out for next week. Instead I told my by-now-trusted system: three gangs off the local space-hulk, two minion types each and a leader apiece to make them feel unique, all fighting over the Asset in the middle of a fallen cargo-freighter hold — give them a reason to want it, and make it a hard fight the players still walk into with the upper hand. Hail Cargonia optional but encouraged.

Fifteen minutes later I had a working encounter. It needed a few tweaks, and the players folded my minions like wet cardboard — but it was ready, on time, and it went straight into the growing stack of stuff I can reuse: documented, searchable, mine. So did the after-action notes — what landed, what didn’t, and why. That’s what actually made the difference two sessions later, when I had to pull the same trick again.

Where it will fail you

Here is the part of the essay where I earn whatever credibility the above has spent.

The AI does not know your table.

It cannot know that your group loses its mind every time the Ork liaison shows up. It doesn’t understand that the running joke about the captain’s birthday has become load-bearing mythology that the players will riot to protect. It has no idea that your group prefers encounters that start as social situations and turn violent, not the other way around. It cannot feel the room at 10pm when energy is high versus when someone’s had a bad week and needs a win.

It optimizes for plausible. Plausible is not the same as yours.

Without deliberate guardrails — rules you set and enforce — it will trend toward the generic. NPCs sound like NPCs. Threats feel like threats. The grimdark atmosphere settles into a uniform gray instead of the specific bruise-colored darkness your campaign has actually built. I have a line in my campaign bible: Every NPC should have a distinct voice register. Never write NPCs as neutral exposition machines. I had to put that in there because the first drafts without it were exactly that.

You are not outsourcing your creativity. You are outsourcing your memory and consistency — which are, genuinely, two things that degrade across a long campaign as the GM juggles everything else. That is a real and valuable trade. Just don’t confuse it for more than it is.

The AI is another tool in the belt. A versatile one. One that rewards the investment you put into briefing it. But the story is still yours. The feel is still yours. The read on what’s fun tonight is irreducibly yours.

Nobody’s building a language model that knows when to call a TPK and when to fudge the dice. That one stays human.

One more thing, and it matters more than anything above it: my table knew. I told them up front I was going to try running the campaign this way, and I kept asking what they thought as we went. They were into it — and theirs is the read I actually trust. We’ve laughed ourselves stupid over the small stuff the machine helped seed: the Primarch Pizza, the collectible recaff mugs, a dozen throwaway details that turned into running jokes. But the things my players pester me about between sessions are the things a GM is supposed to sweat — the arcs, the plot, the people who stuck. One of my players, Lady Red, still won’t let Kael’s arc go. And that’s the tell: Kael’s aunt might have gotten a nudge from the AI, but Kael did not. Kael is mine, sharpened session after session by the very human back-and-forth of an actual table. The tools helped me show up more prepared, more consistent, less fried. What everyone remembers is the stuff we built together — and honestly, that’s the only endorsement I’d trust.

What’s next (or: I’m about to make the same mistakes again)

Everything described above was retrofitted. The campaign was two whole plot-arcs and one mini-arc in before I built the structure. I was patching a running ship, which is harder than building one dry-docked.

The real question — the one I intend to answer publicly and probably humiliatingly — is whether starting with the system produces something better.

I’m plotting a Cyberpunk Red campaign. Before session one, before the first NPC is named, before anyone’s rolled a character, I’m going to build the repo. Write the bible. Draft the onboarding document. Establish the faction files. Set the tone constraints. Wire up the pipeline.

And then we’re going to run it, and I’m going to tell you whether it was worth it.

Stay tuned.

One last thing, since I’ve spent this whole essay sounding like someone who does this for a living: you don’t have to. I write software, sure, and that’s how I got comfortable poking at these tools — but nothing here needed a degree or a git history. You don’t have to swim in AI work to pull it off. What might help is buying a programmer friend a coffee and picking their brain for twenty minutes before you start paying for the good stuff — the paid tiers, the beefier models. Someone who’s already set fire to that money can point you at the bits actually worth yours.


 

LictorImperialis runs Ad Astra Avaritas, a Rogue Trader campaign set in his own version of Warhammer 40k, populated with too many wrestling references and hope to be ever considered canonically plausible. He shows up regularly in the BPL Discord to talk history, argue about stories, and be obstinate about things. He also co-runs a writing and worldbuilding show with Lady Red on WBPL76 — catch them there if you want to hear about Shoal, which is a different and excellent problem. This essay was written with the assistance of Claude, which is either a confession or a demonstration of the point.