Mega dungeons are difficult to fully detail because of their sheer size. Here is a random dungeon generation system that helps make the process easier in two ways. First, it creates chunks all at once instead of single rooms, and second it’s modular so that you can design only as much as you need and have rough notes on the rest of what you’ve made while still allowing you to tack on additional content later and still have a coherent whole.
The basic building blocks of our dungeon are the 9 forms of the 5 room dungeon. So you don’t have to click through, that article boils down the 5 room dungeon into 9 basic types (which clever readers pointed out can actually be further abstracted to 3 types, but for the purposes of what we’re doing here, the 9 actually work better). I’ve included them below and numbered them to make it easy to choose one randomly using a d66 (like a d100, but uses d6s instead of d10s, generating numbers in the following set: 11-16,21-26,31-36,41-46,51-56,61-66 chosen because it creates a uniformly distributed set of numbers divisible by 9)
For our dungeon, we’re going to start by setting up some Realms: large areas that are thematically similar throughout, but distinct from their neighbors. To make realms, we’re going to choose a handful of 5 room dungeons and tack them together. 1d4 sounds about right, giving 5-20 realms. This is of course dependent on your level of ambition. Don’t forget that you can always add more later if you want or need to.
To start, roll a d66 and do a quick sketch of one of the 5 room dungeons. You can of course move the rooms about and if you want to change passages, add or subtract rooms or anything else, go right ahead. The templates are just to keep things quick and easy, not to constrain you. Continue to roll d66s and add realms by choosing an existing room and connecting the entrance room of the new section. Add as many sections as you want, just keep in mind that each single room may end up with hundreds of rooms to detail. We’re going to have a random process for the whole thing, but no point to making a ton more work than necessary.
Now that you have a rough map of your realms, write down the following details about each one:
- Name: Either what you call it, what it’s inhabitants call it, or what the major species in your game call it. Whatever.
- Level: How dangerous a place is it? Is it OK for beginning adventurers or is it a meat grinder for all but the most hard core delvers?
- Terrain: The main overarching terrain feature of the zone. Lava tubes, Dwarven Ruins, mud pits, natural caves. Don’t go into more detail than that.
- 3 Monsters: These monsters inhabit almost every nook and cranny of the realm. Pick one big nasty monster (for the level you want) one mid-level monster and one wimpy monster all based around the realm’s theme. Later we’ll refer to these monsters as RL (Realm Large), RM (Realm Medium), and RS (Realm Small). You can use hazards instead of monsters if that fits the realm.
Of course you don’t need to do this for all your realms just yet. Players aren’t going to get to the deepest realms any time soon, if ever, so you don’t need to fill this out for any realm your players aren’t likely to see soon.
Finish up your realm map by adding a few passages where you want or any other tweaks you want to add.
Next up, we want to further detail our realms. You know where the major paths to other realms are, but what’s in between? More 5 room dungeons of course! In the same way that you randomly chose and strung together 5 room dungeons to map your realms, use the same process to define the zones within each realm. Start with a single realm and map it (probably on a new sheet of paper) by choosing a random five room dungeon and then connecting the next one, etc… Again 1d4 of these is probably enough, giving you 5-20 zones within the realm (so your mega dungeon has 25-400 zones all together). Of course it also makes sense to simply choose how many 5 room chunks you want given how large you want the realm to be. Again, you can always add more zones to a realm later as long as the entire realm hasn’t been mapped in meticulous detail yet (or even if it has if you’re willing to have a cave-in open a new area or some other sneaky GM trick)
Now write down the following details about each zone:
- Name: As before, formal, informal or in elvish, it doesn’t matter
- Type: We’re interested in 3 types. Controlled, Mixed, and Standard, described below.
- Level: Is this zone the same level as the rest of the realm? Higher? Lower?
- Terrain: What makes this zone different from the rest of the realm? Is it a gnoll warren? Is there a leak from a water source that makes the whole thing flooded? Portals to hell?
- 3 Monsters: Just like before we need a Big monster: ZL, a medium monster: ZM, and a puny monster: ZS, or hazards as before.
Standard zones blend into the realm and have no defining feature or inhabitants of their own. The more of these you have in a realm, the more strongly the realm theme comes through but the less exciting stuff is in the realm. Mainly standard realms are to break up over-busy clusters of zones in your realm or provide a “normal” path or center with points of interest around it. Standard zones don’t actually need Terrain or monster entries. They just use the realm entries.
Controlled zones don’t have a heavy presence from the inhabitants of a realm. Either the zone is patrolled and intruders kept out (a city for example) or it may be exceptionally dangerous (full of toxic gas)
Mixed zones have their unique inhabitants that aren’t found elsewhere in the realm but they mix freely with other realm inhabitants.
Again, tweak as you see fit and you’ve mapped the zones for the realm, and again keep in mind just how far your PCs are going to get before you go nuts with the zone maps. After all, there’s still one more step.
Finally we want to map the individual rooms and areas within each zone. Do so just like each larger level. Start a new map and iterate some 5 room dungeons. If you again go with 1d4 dungeons per zone, you end up with 5-20 rooms per zone, 125-400 rooms per realm and 625-8000 rooms in your entire map. (I did start this article with the sentence “Mega dungeons are difficult to fully detail because of their sheer size.”) However, unlike higher levels, these rooms aren’t abstractions, they’re actual rooms and once you populate them, your zone map is finished.
To populate them you need to know two things: dressing and encounters. You could painstakingly hem and haw over this, but instead roll once on the appropriate Dressing table and 3 to 4 times on the appropriate Encounter Table for each 5 room chunk you place and arrange as desired or just place what feels right.
Notation for tables:
As mentioned earlier, RL, RM, and RS are your three realm monsters, ZL, ZM, and ZS are your 3 zone monsters. Encounter tables have 3 columns. Squabblers don’t mix monster types, Factions use either realm or zone monsters in an encounter and Allies freely mix the two type.
#R and #Z are the number of rooms within realm and zone dressing respectively.
References to adjacent realms and zones work if one of your rooms is on the edge of your zone or realm. If not, just count those as the current realm or zone.
|Standard Zone Dressing|
|11||4R, 1 adjacent zone|
|12||4R, 1 adjacent realm|
|Mixed Zone Dressing|
|11||2R, 2Z, 1 adjacent realm|
|12||2R, 2Z, 1 adjacent zone|
|Controlled Zone Dressing|
|11||1R, 3Z, 1 adjacent zone|
|12||4Z, 1 adjacent realm|
|1||7ZM or 14ZS||2ZL & 3ZM||1RL & 1ZL & 3ZM|
|2-4||6ZM or 12ZS||1ZL & 2ZM & 4ZS||1ZL & 2ZM & 4ZS|
|5-7||2RL or 2ZL||2RL or 1ZL & 2ZM||1RL & 1ZL or 1RL & 2ZM|
|8-10||1ZL or 4ZS||2ZM||2ZM|
|11||1ZM or 2ZS||2ZS||2ZS|
|12||1L from adjacent area||1L from adjacent area||1L from adjacent area|
|1||2ZL & 3ZM|
|2-4||1ZL & 2ZM & 4ZS|
|5-7||1ZL & 2ZM|
|8-10||2ZM or 4RS|
|11||2ZS or 2RS|
|12||4S from adjacent area|
|1||Â 7RM or 14RS||2RL & 3RM|
|2-4||6RM or 12RS||1RL & 2RM & 4RS|
|5-7||2RL or 4RM||1RL & 2RM|
|8-10||1RL or 4RS||2RM|
|11||1RM or 2RS||2RS|
|12||1L from adjacent area||1L from adjacent area|
|1||Â 7RM or 14ZS||2RL & 3RM or
5ZM & 4ZS
|1RL & 1ZL & 3ZM|
|2-4||6ZM or 12RS||1RL & 2RM & 4RS or
1ZL & 3ZM & 2ZS
|1ZL & 2RM & 4ZS|
|5-7||2RL or 4ZM||1RL & 2RM or
1ZL & 4ZS
|1RL & 1ZL or
1ZL & 2RM
|8-10||1ZL or 4RS||2RM or 1ZL||2ZM|
|11||1RM or 2ZS||2RS or 1ZM||2RS|
|12||1L from adjacent area||1L from adjacent area||1L from adjacent area|
This process will allow you to create a section of mega dungeon with a few die rolls and some applied judgment. Most importantly, it allows you to create it a chunk at a time ahead of your players with minimal fuss and time, allowing you to use your prep time to improve the process wherever best matches your needs.
Next month I’ll put together another article with a step by step example, as this seems to beg for it, but was very long already. Till then!
Great article Matthew. I can’t wait to see a detailed example.
Amen. I’m excited to see the example as well!
I like the idea–if nothing else, it gives you a framework to inspire variations. And I like that 12 on the encounter tables is a group from the neighboring zone… you might be witnessing an invasion!
Dear Gygax, I have never wanted anything more than I want a random generator for this very system.
Something parameterized, where I input the realm and zone flavor and R and Z monsters and it generates the dungeon. Possibly by stitching together room shapes and transitions (stairs, etc.)…
I’m not making any requests Drow, cause I bet this one would be a PITA, but you might be interested in… *Points two comments up* :p
Hello Matthew! Your article is awesome. 🙂
May me & my teammates from Roleplaying News Russianwebsite get your permission to translate it into russian and publish (with all due credit and links, of course)?
Let me direct you to our translation page. It has the guidelines and procedure for becoming one of our translation partners which allows you to translate whichever stew articles interest you. All in all that is probably the best path for article translation.
That’s great! Thank you.
I am doing this with a dungeon that is supposed to be big, but I haven’t really put much thought into it. When I did it, it made it so much easier on me, while displaying a larger ruin rather than a room, then room, then room, then room, problem. I even added little marks of my own, such a within a hallway, there is a Red Circle that defines when something bad has happened.
Overall, really really great way of doing this!
You don’t include the 5 room layout I often use: the kite. 🙂
Edit: Ascii graphics deleted as they weren’t working.
E connects to 1.
1 connects to 2.
On the way from 1 to 2 there is a hidden path to 3.
Both 2 and 3 connect to 4.
In Room 1, there is a choice of directions. Room 2 is the obvious choice, and leads to an encounter that will drain the party’s resources. Room 3 is the hidden choice, and leads to an easier path and maybe a clue, useful item, or an ally that can be rescued. Both 2 & 3 lead to 4.
Since the players will skip a room, it’s easy to tack on a room 5 if desired.
Kinda Sorta. The nine forms listed are the only nine forms possible given one of the simplest set of creation rules (One entry chamber + 4 lollipops). There’s a simpler set of rules that abstracts the entrance (one room, four lollipops) that boil down to only three possible sets of rooms (railroad, cross, fork). Adding more complexity adds more permutations at a factorial rate, so you can only usefully consider simple rules and variants on the results. Your kite is a variant form of the railroad with a secret passage added between rooms 2 and 5. The original article linked in this one discusses a variety of ways to differentiate two dungeons that share the same layout. One of them is adding additional passages. This article briefly touches on the same thing, that there’s a lot of ways to alter these setups as you are placing or once you have placed them.
Kind of a nitpick, but you aren’t rolling d66, you’re rolling d36. You make the point that it’s similar to rolling d100, and it is, except that the result is a number represented in base-6 (senary) instead of a base-10 (decimal) number.
Yep! And that’s called a d66. No it doesn’t generate a number between 1 and 66, no it doesn’t make a lot of sense, but it’s called a d66. Blame the pre RPG pre d20 wargamers (in fact you can still see it in use in modern wargames), not me.
P.S. I get enough “Uh! What a waste of time!” comments on my articles about probability. I think I’d be tarred and feathered if I started in on number theory.
I’m a little unclear on the whole Factions/Squabblers/Allies thing. Is this something you simply pick as you’re choosing your L, M, and S monsters? Like “goblins and hobgoblins are allies, but they both squabble with the hook horrors”?
The Factions/Squabblers/Allies designations only changes the table you use for encounters.
The Squabblers table assumes everyone fights everyone else, so you only get one type of monster per roll.
The Factions table assumes that zone monsters get along with each other and Realm monsters get along with each other so you get encounters with multiple types but all from either zone OR realm.
The Allies table assumes the only person who doesn’t get along is your group of PCs so you can get encounters with both zone and realm monsters in them.
You may find none of these work for a certain situation so might need to tweak your results.