Earlier this week, Evan over In Places Deep posted a map as an experiment in low fantasy campaigning. He’s using the Medieval Demographics Online (MDO) tool, which I’m glad to see is getting some play. But if you’ve used this device, you know it’s heavy on creating villages, a fact Evan notes when he writes about the results he got for his map: “I'm also not entirely sure how a DM whose pressed for time, as I am, would detail 69 villages...”
“Randomly,” is the answer that comes to mind. The MDO tool can handle it, though in fairness, the results are sparse. To really make something truly useful, you’d need a few other nifty doo-dads found scattered across the Internets.
Having in my possession many of the aforementioned doo-dads, I’m thinking: how hard would it be to create 69 villages? Not with fully stated NPCs and interior layouts, but with enough foundation to be useful for visiting characters—a population overview, a list of goods and services, a couple of adventure hooks, maybe even a quick map. Put it on the blog, I say to myself, ‘cause it’s a fun project and people might find it helpful.
All this subsequently promotes me to curse Evan for encouraging, yet again, my gamer ADD.
But hell, why not?
What You Need
Well, more specifically, “What I’ll Be Using.” I’m starting with the Medieval Demographics Online tool.  Using the Settlement Area and Population section, I’ll limit settlement types to villages (which I’m defining as 1d6x50 people). Based on that, I’m looking for basic output, like this:
Evan brought up a good point: you’ll need names for all these villages, plus maybe some for a couple of NPCs, noble families, and religions. There are many, many free generators on the Internets (I like Seventh Sanctum, which not only has its own huge list of generators, but a list of links on the right sidebar). I usually use EBoN, which isn’t free, BUT it creates excellent output, and you can choose from different libraries so your random names sound culturally congruent.
There’s a great (also free) tool called RPG City Generator, which creates settlement maps (complete with trees). Sadly, it’s no longer supported by the author. Not sadly, the output is completely customisable, so you can do stuff like, say, select the number of buildings so that your map matches the MDO output. Also not sadly, there’s an import plugin for NBOS’ Fractal Mapper, which you can use to edit your random settlement map.
Finishing touches for each village include:
Spending limit (i.e., what’s the most expensive thing a character can buy or sell?) Here’s an off-the-cuff approach that may look good only on paper: tally the sum of 10cp for each citizen, 10sp for each officer and freeholder, and 10gp for each clergy and noble. That's the spending limit...we’ll soon see if this has any legs.
Cross-reference the village’s law enforcement (selected in the Medieval Demograpics Online tool) with the village’s alignment and roll the dice indicated. Each result of “1” indicates that a crime has been committed that week; if the roll’s total exceeds the combined level of the party, the PCs are the victims.
Village is Lawful
Village is Neutral
Village is Chaotic
Little to None
For each crime, roll 2d4 below (adjust by -1 for Lawful villages, +1 for Chaotic):
Petty misdemeanor (fine of 1d6x10cp)
Vandalism (1d6x10sp in damage)
Petty Larceny (1d6x100sp in value; 2/6 chance of reward offered)
Grand Larceny (1d6x100gp in value; 4/6 chance of reward offered)
Assault (d6: 1-3 random citizen; 4-5 freeholder; 6 city official)
Kidnapping (d6: 1 random citizen; 2-3 freeholder; 4 city official; 5-6 noble) 4/6 chance that ransom is demanded (d6 roll x 100gp); 1/6 chance that kidnapping is staged by “victim”
Murder (d6: 1-2 random citizen; 3-4 freeholder; 5 city official; 6 noble)
A village may be protected by a wall. Roll 1d8; if the result is less than the village’s law enforcement level, there’s a wall:
None (0/8 chance)
Little to None (1/8 chance)
Indifferent (2/8 chance)
Undependable (3/8 chance)
Typical (4/8 chance)
Zealous (5/8 chance)
Oppressive (6/8 chance)
Tyrannical (7/8 chance)
What Goes On? Strange happenings or features of the village can spawn adventure hooks and may induce the PCs to stay awhile. Roll 1d10 for each noble in the village; if the sum is less than the village population, there’s mischief afoot (1d10):
Plagued by (d6: 1 constant insect swarms; 2 creepy little mammals; 3 flocks of beady-eyed carrion birds; 4 spiny hissing reptiles; 5 infestation of imps, gremlins, or other troublesome sprites; 6 extra-planar entities interested in a particular group of citizens)
Strange feature (d6: 1 anti-magic field(s); 2 inexplicable blight; 3 unnaturally high mortality rate; 4 sunlight casts an odd tint; 5 insistent and disturbing dreams; 6 mutations in newborns)
Secret cult trying to (d6: 1 awaken a slumbering god; 2 fulfil a prophecy; 3 lift a curse; 4 divine a secret; 5 weed out the impure; 6 prepare for doom)
Crime ring trafficking (d6: 1-2 stolen goods; 3 illegal goods; 4 rare luxuries; 5 non-humans, 6 humans) and led by (d6: 1 random citizen; 2 freeholder; 3 clergy; 4 city official; 5 noble; 6 outsider)
Dungeon (d6-1) miles away, consisting of (d6) levels accessed via (d6: 1 a ruined structure; 2 a hole in the earth; 3 someone’s basement; 4 a graveyard; 5 a hole in a riverbed; 6 a magic portal); it's the remains of a (d6: 1 library; 2 prison; 3 abandoned treasure dig; 4 necropolis; 5 ancient tower; 6 fool's labour)
OK, that went on longer than I planned... Anyway, thoughts welcome—next up, I’ll actually use this to create the first of my 69 villages.
As proof-of-concept for this project, I created a few villages last night and noticed a bunch of things that MDO should do but doesn’t, including: export results to a text file, settlement alignment, random population for settlement type, wall or no wall toggle, check for dungeons under a settlement, number of levels within said dungeons, figure out imports/exports, buying/selling limits amongst freeholders, chance of criminal underground, local claim to fame, and probably better presentation for the offline version. Maybe these are more than the tool should do, but being actually useful is what it’s all about. If I go this route, the potential for scope creep is immense (which means (1) I’ll probably rewrite it in Java and (2) it’ll never actually be finished). Still, suggestions on this front are appreciated.