A few months ago I decided to write a module live on Bluesky, from woe to go, to show my process and why I keep insisting it’s not hard. A few people asked me to immortalise it here, so I’m reproducing the thread with a few small edits so it makes more sense outside of the chronological nature of Bluesky. If you don’t want to read something very long, I’ll pull out major learnings and then put them right at the end. Click here to go straight to the end.

Start with an idea
In this case, I don’t remember why I decided to have a tower full of cats, but I basically was taken by the idea that the cats would be a warning for a monster to be coming. I reached out on Bluesky for ideas as to why a tower would have so many cats, and the conclusion was: Cloned by an evil wizard.

Draft the space
Ok, I’m writing a dungeon about cloned cats. It’s called the Cat Vats of Gatraxas. What’s next? Well, it’s a wizard tower. Let’s use that as a framework. I’ll randomly generate 3 levels. At the bottom is a more concrete layout. I drew these atop each other, cos towers should have a consistent plan. It’s a mess, but you can see the pattern, yeah? Because of this mess, I can quickly convert it to a real map, a circular ish tower. this one doesn’t have balconies. It’s been like half an hour and I have a full map.
Draft biomes
Now, I have to come up with what’s on the three levels. Give each a subtly different theme — a small dungeon, doesn’t need big thematic swings. level 1 is highwaymen in the library. Second floor is the imps that maintain the cat-vats. Third floor is the wizard’s quarters and like, ghosts maybe. Ok, so now I’m out of sketching mode, and I’m into keying mode. I have a framework already! So – this bit is the first boring part – I type it in so that I have something to work off of. I’ll also go back after this and mark interior and exterior rooms, which helps with windows and such.
Note: I don’t yet care what system this is for. That comes later don’t start at the finish line. I aint got no game, yet. Just a wish and a tower.

Write a bad first draft
Ok now for brainstorming. How do I go from this? Well, I have 3 prompts already – “What does the biome of the level suggest this room should be?”, “What does the content of the room suggest this room should be?”, and “What is stuff in a wizard’s lab tower thingy?” I always also keep in mind a 4th prompt, which is a Sean McCoy joint “What other room interacts with this one”. You don’t need to use all 4 prompts, but that’s a lot of prompts, you should be able to figure something out.

Ok, that’s level 1 outlined. I left out the special because I dunno yet, and that’s ok, because other rooms will relate to it, or give me ideas. You can leave blanks, knowing it’ll grow in the process. I also just put notes in here, like the highlighted one below: This is making the dungeon, not a final product. First drafts are always rubbish, yeah?

Ok, that’s 2 hours on the clock, I’ve gone from concept, to playable. I could run this for my friends right now – I already have a little hook in the robbers. That reminds me, I need to have a hook that leads deeper into the tower at this point, for the people who are just going for the robbers, to draw them in. I’ll put in fixes or notes to perform a fix, straight away when I have a thought, so I don’t forget later:

I’m now expanding the themes on level 2. I do a little more research, of course – what fish goes in the tanks? Sardines or pilchard, because they’re tiny fish that will fit in tanks. I think sardines are funnier, though. Start asking questions about the level, and see what the implications are for the other levels. Right now I’m thinking that the special room on level 1 is probably related to why there’s a monster, why the wizard is frozen, and why he didn’t get cloned. Is the wizard here, on level 2, or on level 3? As I write this, I’m starting to form an opinion of who the is bad guy on level 3.
It’s worth noting that this changed in the writing – initially, the human vats and cat vats were separate, but I decided to foreground the cat vats, to foreshadow the wizard and the discoveries the players might make. Also note I’ve started highlighting stuff, like I did with the notes earlier. I do this when I have an idea that I need to come back to later.

That’s hour 3, I think, but I stopped for lunch. Now to finish the story on level 3 – I’ve left two spare rooms so far, with only inklings of what’s there, and they’re specials, so maybe I want to put a puzzle where the third piece is on the third floor that answers one of our big questions. Puzzles are good for storytelling in dungeons, because they’re optional – you don’t wanna force lore, you want people to be excited to find it out. Oh, and by puzzle, I just mean “oh this doesn’t make sense until you find all 3 pieces” – it could literally be 3 fragments of a phrase or something.
At this point I’ve started realising that random encounters are happening, so I’ve written some of those. It’s an 18 room dungeon, so 6 is probably a generous number of random encounters, keeping in mind a speed run of this dungeon would result in 9 rolls and only 1.5 random encounters occurring. Maybe I’ll make 5-6 something unique to different levels? Or just an environmental effect of some kind.

Note that I’m dragging the map down to each new level. I need to look at the map, to help me like figure out what makes sense. People talk big game about jaquaysing, but the important thing is that the space is a solvable puzzle, not that everything is connected.

So, for this space: secret doors are in 13 and 14 (a loop), 11, and 5 (a loop). You can intuit these secret doors from the layout of the other levels. This is what you want in a map, not something that you can endlessly walk around in circles. Loops are for fun (“I sneak up behind them”), not for their own sake.
Starting level 3 keys, there’s a big question: Why are the secret doors here? That doesn’t really make sense, separating the entry doors in 13 from the final rooms with secret doors. The puzzle I just mentioned isn’t interesting in that context. Looking at the map, I might need to move them.

This is my change: it keeps a loop, gives you a chance to ambush the boss who’s in 17, and you can guess they’re there from the space. See how fluid the process is? Just do what feels good. This is the main problem with randomly generating your layouts: There’s no conversation occurring between the playfulness and the verisimilitude of the space. Back to keying.

So, this is a mundane level, but I know evil stuff has taken over. This means it’s got boring stuff in it. So, I’m now considering rearranging again. Yipes! In mundane spaces, you’ll wonder why there’s a secret door to the bathroom, or why the kitchen exit in the cloakroom, etc.

My solution: I added a crawl space to maintain the loop and add secrets, but connected the bathroom and kitchen more directly and sensibly. Hopefully that’s enough tweaks.

Ok, basic keying is wrapped up. You need to write a bad draft, then you polish it. Note that it got slower to write the further I got in, but also it got more interesting. I’m left with a bunch of questions, and the answers will make everything that’s here better.
Start asking questions
This is a finished first draft, so I start asking questions now. Below is my brainstorm. I ended up with enough hooks for the starter. What’s next?

What’s next? I have a format I’ve written Sharky, Mizzling Grove, Lightfingers and Ratcatchers all in – I’ll convert this draft to that real format. That will leave a bunch of blanks – Oh, I need a stat block here. Oh, is this a secret, or is it hidden? what belongs in a sidebar? Using my known formatting helps me recognise what isn’t here. I’ll re-read it once I’ve taken space (like, a few hours is all i need, but a break). Start writing in the gaps, answering my questions, putting them in. Then I’ll sit down and make it pretty. This is all outline right now. I can run an outline, but I won’t publish one.
What I like in my modules is good writing. The work we’ve done so far is not the sell. The writing will be the sell. I want to get Evelyn to illustrate this, so I’m writing with some whimsy here. Oh, and I probably need to lean into the cats, right. But, that’s our first, primary work on a dungeon module completed in about 4 hours. It’s that easy.
Honing your draft
Now I keep percolating on the space while I do other things. I texted these thoughts to myself while driving, and will update the draft accordingly (also, siri can’t understand me which is why there’s some nonsense here— curse voice recording being designed for specific voices).
My next step was to bring things in line with the rest of my modules, which have a recurring list of characters and themes, so I started re-writing the “What’s going on section”:

The goal with these re-writes is to increase the intertextuality, and hence the complexity of the world building. Names and concepts change to match the implied setting. I’ve written out the hooks early, because they need to be in the text of the module – the highlighted part is “hey don’t forget”.

I’m choosing these specifically to give the players different reasons to be interacting with the tower – maybe they want X, Y, or Z. All of these goals are deep in the tower, but you’ll be bargaining for different things depending on the hook. I wrote about this in Juicy Worms, Local Knowledge and Player Engagement.

This honing process is much slower and more thoughtful, and involves a lot of scrolling back and forth in the document, things are gradually getting more personal, more specific, leaning the ideas from the first draft into actual scenes and concrete interesting stuff. I went back and added, for example, that Raven can’t come in yet.

I continued tweaking, after taking about a week of break:

The incorporation of the romantic sub plot, though, gives me a clue what to put in one of the empty rooms, the one near the vats. This is why your outline and final product often diverge: Your writing benefits from iteration and breathing space, so that you can figure out what the themes are.

I continue to post in dribs and drabs, I wrote this while I was waiting for the trailers to finish on Superman, so I outlined small things on my phone. The work I did earlier enables this bite-sized work. I’m asking questions to make sure I remember to answer them, and just adding an outline for me to easily tap into later. Outlining is for every stage of your writing! Don’t know what it is? Write “write about this” in the space!

When I’m in this phase, I’ll scroll back looking for the first unfinished key or the first highlighted thing to start writing. I found this, and started writing there:

I did a few things here as I went – I scrolled about the rest of the text, and questions that were posed and answered, I stuck in those sections. I added a surgery and some body parts to other sections I’ll write those in a bit. While starting on the next room, I remembered I was supposed to be wiring this place to blow. So I’ve copied the existing “this room is wired to blow” text into the rooms that should have it, so I don’t forget in future. Then I’ll finish writing the room.

This is the finished room. You can see I changed the paste, and I added references to other spaces. I just realised that many of these doors are open, so you can see through them. I had to answer why the party might interfere with the imps at all. Always mention the cats!

Skipped a room, as I’d already written it, and onto the next. I moved the Raven info to the raven section, and then finished up all the details here. It’s important to see how this is, while time consuming, relatively easy work: I know everything I have to write, I just have to write it.
Here, you can see my note-taking. I wrote this room, and started to finish the character of Carlie, but then decided to change the way I’m writing all of my characters in the whole module. Do that now? Nah. I need to finish writing the rooms. Write a note to fix the thing, and highlight it.

The next thing (after a nap), is a new level. This is where I made a mistake earlier: This looks intimidating, compared to previously, right? I got cracking on the earlier parts quickly, so there’s heaps of scaffolding for me to write onto when I’m low on creative energy. But this next part is very empty:

How do I scaffold myself past this roadblock? I start off by writing the headings. I have exits, the special, the character. That leaves just the description. I delete the random table, because you don’t need randomness there (although you might have a table of changes in the sidebar – I’ll add that as a note).

Now, I could stop there, having scaffolded myself for room one, but I have momentum. It’ll be more effective to continue scaffolding while I can, and leave more hooks for me to write later. I didn’t have hours to write right at the time, I had to take the kids to the dentist.

Ok, I’m at the end, now. I still have to write write the third level, but it was good to get to the end where I asked the big questions, it was satisfying to see I found most of the answers. the thing I’d not addressed was a second reason to actually free Gatraxas – I want a selfish one too.

While I’m at the end, I’ll add the loose ends section, which I couldn’t think much about until this point. This basically is what will happen if certain consequences occur. I imagine there’ll be at least one more, maybe two, but this is a start, and a reminder to come back to it when I have a firmer grasp on the whole location.

Next: actually write level 3 through those scaffolds. I decided to tidy up while the kids were at sports – basically, saw some odd annoying paragraphing and keys out of order, so I start removing questions I’ve answered, trying to catch questions I’ve missed answering, leaving in highlights like these:
This is all stuff that is important thematically, but that I haven’t quite figured out yet. The process of figuring it out might change the overall module.

This whole process – figuring out themes and making sure they’re completed and feel cohesive, is part of making sure the cake is baked

I continue, just trying to fill in as much as I can. There are no new questions in these two rooms, so no highlights. There WAS a highlight where the compass was – I don’t feel violent traps fit here, so I initially couldn’t figure what to put here. But any alarm will bring the attention of Raven.
I haven’t really talked about research — for small modules, like this, I don’t immerse myself in academic work, but I am constantly googling and using online uni libraries to find out small details that are nice — that’s where these dishes come from. I don’t care about historicity — I’m as happy with a kids show or book as a source as anything more serious — but providing interesting details is important. The area we’re in is in a kind of renaissance verging on industrialisation time period, and it’s very vaguely Spanish in inspiration, so I draw names from those sources where I am (the internet is a boon for lists of names), while acknowledging that I can do what I want.
For Sharky, for example, I grew up in an (ex) whaling town, so I used a lot of what I learnt growing up and then googled lots for appropriate terminology and tried to twist that with fantasy. This requires less, because I’m not in a town. For big works like Bridewell and Ratcatchers (neither of which are yet released), I tend to do lots of research, though – see this, for Bridewell.

Here, I finally bit the bullet and started translating the character texts into quotes, a method which really worked in Sharky, but that I dropped in Lightfingers simply because it wasn’t as character-focused. As you can see, I’m just filling in the gaps. Note the surgery change — which necessitated a change to the earlier boiler room text (which I also made quotes, as now I’ve started doing that proper). The key is: As you write, if you add new pieces, they should impact other pieces.

You may noticed during all this that the room numberings are not in an intuitive order at all. This is a result of the process, sadly, as rooms are added and removed. It’s easy to do on the map, but I need to do that first, and then I’ll track changes that in the text and double check. The changes will end up being such that 10 is 7, 12 is 8, 8 is 9, 7 is 10, 11 remains 11, 9 is 12, 14 is 13, 19 is 14, 13 is 15, 15 is 16, 18 is 17, 16 is 18, and 17 is 19. If you’re interested.

The main difficulty is double checking every instance of the old number – all of the exit lists and references need to be updated. Ugh. Thank goodness you can track changes.
Ok, so now the actual writing is done. Excellent. I need to go back, answer questions, fix up the character text. And then re-number everything. And do stat blocks. Then, take a break, let someone else read it, and then head in again. This phase is at least a week of not touching.

You can see if I didn’t have complex life commitments, or even if I had evenings free, this would all have been done in only a few days. But there are phases where you have to give it time, and come back with fresher eyes.
For me editing never ends. Once this is “finished”, I’ll lay it out (and notice things to edit, particularly order and sidebars), and then I’ll playtest (I always playtest in layout), and then I’ll edit it again. Then I’ll order a proof and edit again in the final proof.
So now I’m dipping my toes back in. This basically involves: Filling in the highlighted gaps, and then adding new highlighted gaps when I find them. This stage of writing is revision, revision, revision. Trying to see the inconsistencies, trying to make the damned thing make the most sense.
Here I have 7 hooks, and I only want 6 hooks, I aim to have the hooks sink into different parts of the plot: I have 1 Thieves, 2 An Imp, 3 Mystical Gem, 4 Princess, 5 Rare Book, 6 White Cats, 7 Missing Person. the least interesting one might be Gem, here: It overlaps with 1 and 4 already, so I’ll scrap that:

While I like having the heroes interact with the evil Sudomino, it’s not that interesting in and of itself. I can perhaps thread the needle by replacing Leocardio with Sudomino or giving the players Sudomino as a shiftier, higher paying option, as I did in The Great Egg Race (these are all recurring characters, as I mentioned earlier).
As I go through, I make lots of small clarity changes, like this, and small “ugh I can’t be bothered thinking this through right now” highlights, like this, as well as epic combinations of them, like the third screen where I cut out a later section (that was just notes) and wrote it into text here.
Also in this pass: write the damned stat blocks. Here, I wrote the first, then wrote the third, then realised I needed some personality in the first, so revised it. Smear it with personality!
You’re also looking for logical inconsistencies: Why is Punkin trapped? Why is the axle here? I need to change this so it makes sense, or the players will never figure out the puzzle. Also: I just listed a bunch of books in two other libraries, why do I need to do it in a third library? Cut it.

It’s important to do this stuff and move on, for me, at least. Like, if I derailed my onward momentum to go and figure out where these pieces were on this pass, I’d get bogged down and lost. So I phrase the questions even though I could theoretically finish this section.

At this point I only have two major jobs – rekeying the map, and adding directions to the exits.
I’ve done one more pass, adding directions and tidying out highlights, and now I have to pick up the kids. I think this is the last thing that is incomplete. This shows the importance of using the same shorthands – if I’d used #### consistently instead of XYZ, I’d be able to search for the term. Somehow I forget every time to do this.

Conclusions
That’s the writing, done, effectively. Now the job is playtesting it, getting an editor to look at it, and laying it out, then getting an artist on the job. I think the important thing with this whole play by play is that it demystifies the process. You can do this. This is the whole thing:
- Have an idea
- Draft the space
- Draft the biomes
- Write a bad first draft
- Start asking and answering questions
- Hone your draft
Creating is for everyone. I hope seeing my process inspires you to write your own module. And, I hope you pick up Cat-Vats of Gatraxas, when I get it out to the public.
Idle Cartulary
Playful Void is a production of Idle Cartulary. If you liked this article, please consider liking, sharing, and subscribing to the Idle Digest Newsletter. If you want to support Idle Cartulary continuing to provide Bathtub Reviews, I Read Reviews, and Dungeon Regular, please consider a one-off donation or becoming a regular supporter of Idle Cartulary on Ko-fi.


























Leave a reply to Idle Cartulary Cancel reply