I’ve never been satisfied with just rolling a bunch of dice.

Let me qualify that a bit. I want the dice I roll to matter, and I want solid procedures — I want to be able to consistently interpret results and make predictions. Rolling to see “how many dudes are in a group” doesn’t work.

I need something more substantial than that.

I might have something.

In the 3e Dungeon Master’s Guide, there are tables for generating the class distribution of NPCs in a settlement. Larger settlements have more and higher-level NPCs. That’s great, but there are problems.

For starters, the distribution in every settlement is essentially the same. You roll for every class, so every class is present. That’s kind of weird because classes probably shouldn’t be found everywhere.

Sometimes you have to go off to see a wizard.

The procedure seemed simple enough to use, though: roll for the highest level NPC of that class. There are twice as many NPCs half his level. You have twice as many of half that level. All the way down to 1st level. It makes a little pyramid.

Like this:
1 wizard @ 16th
2 wizards @ 8th
4 wizards @ 4th
8 wizards @ 2nd
16 wizards @ 1st

Not perfect, no . . . but simple enough. Easy to follow.

Well, combining this with my “character pool” exercise, I realized I could create hierarchies. For those of you who aren’t familiar with my character pools . . .

1. Start with a spreadsheet.
2. Label columns “Str, Dex, Con, …”
3. Roll 3d6 in order 6 times.
4. Repeat 29 times.
5. Interpret rolls for classes.

My day job for eight years was data entry, so I’m boss at this.

Moving on.

Now you need to assign one character from the pool to be your highest-level character, and therefore the “leader.” You’ll use them to derive your faction scores. My system goes to 30th level, so I roll 3d10.

Average level of faction leader is 16-17th.

Since there are exactly 30 characters to start, your lowest-tier characters will often represent “the rest” and not necessarily the numbers represented by the uh, procedure. In the Wizard example above, you’d have 15 @ 1st level.

Distribute your “levels” among the 30 characters, then sort them by level and make sure they’re numbered from 1-30, with the faction leader being #30. When you encounter the faction, roll d20 and add the number of previous encounters to determine the specific NPCs from the faction you encounter.

As you regularly encounter and eliminate characters from a faction, you move their numbers down and become more likely to encounter the faction leader. You can also go Shadow of Mordor on the low-ranking members of the group and try to draw out the leadership for a timely coup.

If you’re worried about factions feeling same-y, there shouldn’t be too much to concern you: if you mix it up with say, 4-5 factions (maybe as few as 2-3), and you use regular monster encounters, the players will scarcely care if NPC hierarchies all look the same. I’ll be working on this, so I might figure it out.