How I build Random Encounter Tables
The Astral City devlog #2
This is the second in a series of devlogs for a floating city megadungeon where I share updates, drafts, and design musings. Check out devlog #1 for more of an intro.
I’ve been working on this project off and on for several months now and have something like 3 dungeon levels sketched out and roughly keyed. For now, this is all in messy notebook scrawling, which is good because it will change a lot before its finished. I’ve been following the adventure writing steps Gus L laid out here and have found it to be a very effective process. I go in with a general idea for the level (industrial steam works, abandoned menagerie) and sketch out a rough map with the major features. Then to flesh it out I go right to the random encounter table. It’s a great way to figure out what factions and hazards fit within the space, and once you have an entry, it leads you right into placing their lair somewhere in the map and thinking about how they relate to other factions on the level. Since I’ll be writing a fair number of random encounter tables for this dungeon, I’ve been doing a lot of reading and thinking about how exactly I want to structure them.
What makes good random encounters?
The humble random encounter has come a long way from the days of 2d4 Orcs. A TON has been written about how to spice up the encounters, how to structure the distribution of monsters, and whether you should be randomizing the encounters in the first place (check out the links at the end of this post for some of the highlights). My takeaway really has been that there is no one-size fits all design, encounter tables need to be structured and populated for the specific space they are simulating. If you have a ten room wizards tower, you might check for encounters anywhere from 5-20 times depending on the frequency of checks in your system and how quickly your players move through rooms. Say its on the higher end you make 20 checks for a random encounter. With a 1-in-6 chance, we might have 3 or 4 encounters. There is no need for a tower like this to have a list of 10 entries with variable numbers of appearing monsters because repeat encounters are highly unlikely. It would be better served by a list of 4 bespoke encounters that pack a bit more punch.
If instead we need an encounter table for a dungeon level with 50-100 keyed areas, then we are going to need a bigger table, and bespoke encounters might start to become a problem. If the party is regularly traversing this area, encounters are likely to repeat and seeing that wizard caught in the goblins net again starts to feel like déjà vu. You can get around this by updating the encounter or rerolling it, but this offloads some work on the referee unnecessarily. You could make encounters an ordered list instead, which speeds things up and from a player experience is indistinguishable, however this may not work for extended play. A good encounter table keeps things fresh for the referee as well as the players, so you want to be sure you don’t run out of entries.
What are random encounters for?
Its important to always keep in mind the core function of random encounters: to add a cost to spending time the dungeon in the form of risk. Random encounters should be dangerous. It’s what makes all those little decisions about which doors to listen at and when to search meaningful. This doesn’t necessary mean combat, but too many entries with friendly NPCs and it is no longer a source of risk. It’s also become a more common practice lately to overload the encounter table with environmental events and while these certainly add flavor, they don’t necessarily put much pressure on the players.
Dungeon tables in Ur-Thuun
I’m still tinkering with the layout, but I think I’ve settled on a structure for the random encounter tables I’m happy with. Checks will be with the normal B/X frequency of 1-in-6 every 2 Turns. For a dungeon level with 50 keyed areas and assuming an average of 1.5 Turns per area, it might take a party 75 Turns to explore the level fully. If they make return trips we should plan for 100 Turns to be safe, meaning that even with a list of 20 encounters we are likely to have some repeats (right around a 90% chance of at least one if my math is right). So we need to be OK with rolling up the same encounter, which means a level of simplicity and randomness to the entry so that it takes on new life depending on when and where it shows up. Running into 2 orcs on patrol is going to play out very different than running into 20 when your on your way out of the dungeon. But this doesn’t mean we cant give the entry some flavor so the referee at least has something to work with.
That’s all well and good but I also wanted to have some bespoke encounters in the table with a bit more going on, so I added a subtable for unique encounters that show up 20% of the time. This occasionally will add another roll to the procedure but I think its worth it for my purposes. At least it’s not as extreme as the 3 levels of subtables in Caverns of Thracia! I also considered going with 2d6 for the table to tweak the probabilities of certain encounters, but I find that 2 and 12 are just too rare. Even in this example of decent sized dungeon level, neither would be likely to show up.
Lastly, I wanted to include some random environmental events but didn’t want these to take the place of any wandering monsters. I’ve included them as an optional roll for the referee, to introduce when they want some extra flavor. Take a look!


I’m still tweaking these and they need to be play tested (I’m planning on running my group through the first few levels in a couple of months). But if you like this format I uploaded a blank template, feel free to steal it. And I’d love to hear how you build your random encounter tables. Are you a fan of a 2d6 distribution?
Stay tuned for the next devlog where I go over some of the factions vying for control of the floating city!
Further Reading on Random Encounters
https://www.paperspencils.com/structuring-encounter-tables-amended-restated/
https://www.prismaticwasteland.com/blog/encounter-checklist
https://falsemachine.blogspot.com/2021/02/sticky-goblins.html
https://idlecartulary.com/2026/01/06/what-to-randomise-when-youre-randomising/




