Skip to main content

Let's auto-populate Voivodja!


I have a 40x30 map of Voivodja to populate for my A Red & Pleasant Land campaign. 1200 squares. I brainstormed a little over 100 ideas for locations. I have 1100 squares that still need something in them. At least a seed of an idea. 

Available Resources 

Copies of AR&PL, Vornheim, Frostbitten & Mutilated, lots of other OSR books, and a Bachelor's in Computer Science. 


The beginnings of an app for auto-populating the contents for all of the hexes in a world. On the backend, I've written a basic text templating and random table rolling engine. I've given it a huge data set of useful random tables from the various OSR books I own. Where appropriate, results in random tables recursively reference other tables, which reference other tables, which references other tables, etc.

Pass in a seed file of hex coordinates mapped to terrain types, an optional file of "Named NPCs", and it will spit out an A5-sized PDF ready to be printed as a coil-bound notebook.


It's just a simple templating engine on the backend, so it can be laid out however you write the templates. As I've currently written them, each hex is described as follows:
  • Hex coordinate
  • Region symbol (in this case, which vampire house's territory this falls into) and general theme for the hex (taken from the "adventures for their house typically involve..." list included with each House's monarch in AR&PL).
  • Potential adventure hook, with potential references to random creatures, Named NPCs, locations, or other hexes.
  • Terrain symbol (forest, mountain, etc.), landmark, and potential complications for that terrain (again, from AR&PL)
  • Potential daytime encounter, with region/terrain/time-of-day appropriate random encounter. Encountered NPC may have a random want, random conflict with another NPC, and randomly carried item.
  • A potential nighttime encounter, with the same random details as above.
  • Potentially a second landmark for the terrain type in this hex. With the same possibility for a random encounter as above.
  • Possibility for a random treasure located at this hex.
  • A potential "Interior" (as per AR&PL) landmark, and a potential "perplexity" (AR&PL). Also a possible random encounter and random treasure as above.
  • Plenty of blank space at the bottom to jot down notes (new landmarks, results of encounters, adventure modules that will live here, etc.) during the game.
  • A list of any other hexes that reference something in this hex.
When appropriate, the adventure hooks, NPC goals, NPC relationships, etc. have a chance of referencing a different, random hex. So the hex-to-hex relationships for a fun, dynamic hexcrawl are also auto-generated. Those hooks, goals, relationships, etc. also have a random chance of referencing either a random encounter table or referencing one of the "Named NPCs".

Named NPCs

The same templating and random table engine is used to populate a list of Named NPCs.
A seed file of the named NPCs you wish to have is passed in. The details for each NPC in the file can be written with as much detail as you like and can reference random tables just like hexes can.

In my case, I'm using a seed file listing several Pawns, Knight, Bishops, Rooks, Clubs, Hearts, Diamonds from each house, and I'm having the first name, last name, goals, relationships, etc. all generated from referenced random tables (Vornheim NPC & Aristocrat tables).

These Named NPCs are then automatically assigned at random to encounters, adventure hooks, NPC relationships, etc. in the listing of hex contents. Any hexes that reference the NPC end up listed with the NPC details in the back of the PDF.


So, what's the benefit of doing this? Why not just roll on the same random tables mid-game? Mostly, for speed of reference. As players are moving from hex-to-hex and asking if they see anything, it would be really nice to already have an idea of what obvious landmarks they might see.

Having a bunch of hex-to-hex relationships pre-generated should also help with making things dynamic and giving players reasons to travel to different locations.


I've done my best to write my templates and random table references to avoid too much nonsense, but everything is still generated at random. It's going to give results like "Brontosaurus is trying to seduce Red King" in some places. But this isn't meant to be the final say on exactly what is located in each hex and what is happening. Much like if you were rolling on these tables mid-game, the results should be interpreted and adjusted by the referee as needed. And, obviously, I can still write my own ideas and adventures into hexes where I want them.

Right now, it's not exactly an "app". It only exists as a Python script I can run locally. Good for my immediate needs of generating an auto-populated notebook for my campaign. But still needs work before it would be useful to anybody else.

Future goals

Add more random tables!

Similar to the "Named NPCs", maybe add the potential for "Named Treasures", "Named Magic Items", etc. Basically, anything else that you'd want to be able to easily see a listing of what hexes it is referenced in.

Most of all, if there's demand for it, turn this into a proper app! (Either web app or PC/Mac/Linux app).

Popular posts from this blog

Dungeon in a Cigar Box

This has popped up in several pictures I've posted.

This is the dungeon-in-a-cigar-box that I built. Absolutely nobody asked about this, but I'm going to write about it anyway.
Inspiration for this came from this CRIT KIT Kickstarter that I missed out on:

Stumbled upon that a couple months back and thought it looked cool. Portable box that functions as a dice tray, dice & mini storage, and modular dungeon. Thought it would be a fun project to try building myself.

Additionally, you already know I love some Dragon Warrior.

Thought I'd make my dungeon floor and walls resemble that.
Bill of materialsI picked up most of this stuff at Michaels. Any arts & crafts store likely has comparable items.

Wooden cigar box: & stick red felt: couple sheets o…

Dragon Warrior, Why I Tried Torchbearer, and Why I Left

To me, this is the most tense I have ever experienced a dungeon:

Dragon Warrior / Dragon Quest 1 for the NES. Likely the first RPG of any kind I played. Doesn't look like much, but everything about the way DW handled its dungeons evoked tension to me:
The limited light. When you first enter a dungeon, you only see the square you're in. Light a torch and you can see adjacent squares. The actual distance you can see isn't too different from, say, Wizardry, but something about the overhead view made you keenly aware of how little you can see.The absolute pitch darkness beyond your field of vision. No gradual fade (as later remakes, in my opinion, mistakenly had). No hints of what might be beyond. Just black.That awful sound it makes every time you bump into a wall, which happens a lot, because you can't see.The way the radius of the Radiant spell (which lights a 7x7 area) gradually shrinks. You feel the darkness encroaching. I don't think torches ever actually burn out …

Dragon Warrior and How I Discovered Into the Odd

Continuation from Part 1

So I already talked about my quest to run dungeons for my players that feel as tense to them as Dragon Warrior's dungeons did to me. I talked about trying a game, Torchbearer, that had systems built around emphasizing the things I thought that tension was about: the importance of light, limited resources, dwindling life. And about how I eventually found more of my mental energy going to managing those systems than to my campaign.

Let's take a detour back to Dragon Warrior / Dragon Quest.

More specifically, let's look at combat in Dragon Warrior. It's pretty basic. Only 4 actions to choose from: FIGHT, RUN, SPELL, ITEM. Seemingly worlds apart from the "free to try anything, and your referee will come up with a ruling" land of OSR and other tabletop RPGs. Even by comparison to other JRPGs, it looks like a limited and kind of boring list of choices. Compare it to, say, Final Fantasy 5, with its huge system of jobs, skills, summons, differ…