Monday, 30 December 2019

A small Python script for die-drop tables

Someone was asking about ways to do die-drop tables online (other than pointing a webcam at a physical sheet of paper and dice, I guess). At first I was thinking about some program that opens a png, picks a random pixel, and looks up the RGB value to determine what's encountered. Then I realised if I could make it work with Hex Kit, it'd be way prettier. And it turns out Hex Kit's .map files are really just renamed .json files, so it's super-easy to just pick a random tile in that json, get the filepath to the associated image for that tile, and look up the filename in some user-defined dictionary.

So here's a quick proof of concept. You'll have to download the script and run it in the command line, since I still have no idea how to make a proper webapp. It's pretty limited, but maybe it's of some use to people.

The example provided is a small random encounter table that's for use in a city, but based on the surrounding surrounding wilderness. Is it a good random table? No. Does it suffice as an example? Sure, I guess.

Human-Readable Version

Roll a d6 on the above hex map. Note which hex type the die lands upon, look it up in the following table. Some entries also use the face-up side of the die. Treat coastal hexes as their land terrain-type, not as ocean.

Hex Type Encounter
Jungle (dark green) Traders from the jungle clans. They have [1. brightly coloured snakes, 2. shavings of bark from various medicinal trees, 3. river-gold, painstakingly panned, 4. six glowing orbs of various sizes, looted from a sunken temple, 5. giant capybaras, excellent pack animals, 6. scavenged goods from the last, failed military expedition into the mountains] for sale.
Meadow (light green) [1. A few, 2-3. Several, 4-5. Dozens of, 6. Hundreds of] farmers angry at the viceroy's new taxes
Mountain (brown) The elephant-powered klaxon sounds. An air-raid from those goddamn mountain pterodactyls again. They carry incendiary bombs in their talons. Parents shoo their children into stone cellars.
Ocean (blue) A ship sails into port, bearing the flag of [1. Redbeard's pirates, 2-3. the Imperial Navy, 4. the Open-Handed Ones, 5. one of the petty river-kings, 6. a PLAGUE SHIP]
Swamp (purple) The swamp-sorcerer has sent envoys to purchase research materials. They are looking for [1. a live bear, 2. a chunk of floatstone from the Flying Fortress, 3. the bitter tears of a child who's just learned Santa isn't real, 4. silt from one of the jungle's more alkaline rivers, 5. tobacco, the good kind, 6. a human heart] and will pay well above market price for speedy delivery.
Volcano (orange) KRAKABOOOOOOOOOOOM! The volcano erupts, huge pyroclastic cloud sweeping over the farming hinterland. You see wealthy folk rushing to buy as many supplies as possible and hunker down, while the poor look on with dread at what is to come.

Sunday, 22 December 2019

Variant Social Rules

Here are a couple of variant rules for social interactions. Their goal is to spread around who gets to be the party face, both by lowering the incentive for the character with the highest Cha to make every social roll, and by occasionally forcing other characters into the front seat.


One thing that struck me when watching The Bad Sequel is that:

  • whenever there's an alien language, one of the protags can pretty much always speak it and translate for the others
  • unless C-3PO is around, the translating protagonist is more-or-less randomly chosen

And I like this. It's simple and quick. It's no longer "everyone but the bard can safely dump Cha", since you never know when you'll be called upon to handle negotiations.

So here's a variant language rule:

All PCs, being widely-travelled oddball sorts, are multilingual, but language proficiencies aren't determined at character creation. Don't write down any proficiencies you might have from race, class, background or a high Int score.

When a character tries to understand or communicate with an NPC who isn't speaking Common, the GM decides the following:

  • Is the NPC even capable of language? One GM might rule that a reanimated skeleton understands language, another might rule a skeleton magically follows its creator's commands but otherwise doesn't understand language. This is fine.
  • Do outsiders share the NPC's language, or are they so culturally insular or isolated that this isn't possible? Obviously, secret languages like Druidic fall under this category too.

If the answer to both questions is yes, then the GM selects a single PC at random. Optionally, hirelings and the like can be included in this random selection process. This can be done with a bag of tokens, rolling a die and counting clockwise, whatever. I like the bag of tokens.

That PC can speak the language, perhaps not fluently, but enough to hold/follow a simple conversation.


There are no skills like Persuade, Intimidate, Diplomacy, etc.

You might decide to leave a Sense Motive/Insight skill in place. I would limit its uses to learning an NPC's emotional state, one of their ideals or bonds, or, in combat, judging what their immediate intent might be.

The player roleplays their character's pitch, then someone rolls 1d6 to determine the outcome. On a modified 5 or greater, they succeed.

The GM might raise or lower the difficulty. A Peaceful Villager might only need 3, a Haughty Archmage might need 7. Or the GM might apply the Powerful Enemies rule instead. This is meant to be simple though -- don't overcomplicate things trying to capture every nuance.

Modifiers to the roll:

  • +1 if you have a relevant background
  • +1 for a good social stat, e.g. 13+ in Cha. No further bonuses.
  • +1 if you offer something of value*
  • +1 if you appeal to one of the NPC's ideals, bonds, factional alignment etc.
  • +1 if you act your heart out (can be hammy, doesn't have to be "good")
  • -1 to 3 for demands that put the NPC at risk. -1 is "risk a parking ticket", -2 is "risk divorce", -3 is "be your torchbearer in the dungeon"

*Obviously the thing you offer needs to have value somewhere in the same ballpark as the request -- this is left to GM fiat.


Use a Powerful Enemies rule if you like -- if the NPC has more hit dice than the PC, the difference is added to the difficulty of the roll. The reverse doesn't apply -- a 15th level fighter doesn't magically make every turnip farmer bend to their will. For 5e, use the difference in CR instead of difference in Hit Dice.

Certain NPCs may be immune to swaying the odds in particular ways, or may be more susceptible. Maybe a Magpiefolk gives you +2 to the roll if you offer a shiny geegaw of value, while a Angel gives you -1 to the roll instead, righteously furious that you would dare offer a bribe.

You can simulate regional language groups, loanwords, pidgins etc by putting an extra token in the bag when choosing who knows the language. This token represents whichever character, based on the GM's judgement, is most likely to know a language. e.g. the token represents the party dwarf when adventuring underground, the elf when adventuring in forests, and within the cosmopolitan City States of Arthea, the PC with "Background: Merchant". This isn't really a mechanical benefit, as any increase in one character's odds of knowing a language come at the expense of everyone else's odds. That is, don't make this a feat or anything.

I've presented this as a d6 roll-over, but feel free to reskin it to d6-roll-under, or modify this into a PbtA move or something. You could also multiply all the modifiers by 3 and use d20 roll-over, or use SotDL's boons & banes mechanic, whatever takes your fancy


Yes, this means the polar Snow Elves and the Aquatic Elves of the tropical coral atolls probably don't speak the same "Elven" language. This is intentional.

I don't like how much weight 3e/4e/5e, or The Black Hack's d20 roll-under Cha, gives to possessing a high social stat. e.g. low-level 5e has a difference of about +5 (or +7 with Expertise) on d20, between a trained character with 16 Cha, and an untrained character with 10 Cha. All other factors (bribes, appealing to the NPC's beliefs, good roleplaying, etc) are typically handled with advantage/disadvantage, which doesn't stack.

This just gets worse as characters level up -- their proficiency bonuses increase, they may even find magic items that raise Cha beyond 20. For 3e D&D (faster scaling, stats don't cap at 20, magic skill bonuses are commonplace) the math is even worse, though Rich Burlew did write a nice, if crunchy, replacement Diplomacy rule a looong time ago).

So I want to reward clever manipulation and willingness to perform, but also allow a bit of room for characters being better at social stuff than their players, and not have the outcome be entirely DM fiat. Having a die result to point to, with really simple modifiers that are all worth the same 17% of the die spread, hopefully strikes the right balance for me.

Offering something of value is only ever worth +1. Why? Consider the following two examples:

  • A stranger in the street offers me $10 to do some errand. Sure, I'll probably do it. If he offers me $10,000 for the same errand, he's probably a scammer.
  • You're medieval nobility. A representative of the Pope says if you go on crusade, you'll be absolved of your sins (and oh, how you've sinned). This is theoretically a reward of infinite value, the difference between paradise and eternal suffering, yet not every nobleman went and did a Richard I. Humans are not rational appraisers.

Sunday, 15 December 2019

Dungeon Rooms, Factions, and Random Tables for Determining their Relationship

Here is a quick draft of a random generator I wrote for determining how dungeon factions relate to a trick room of the dungeon. It's not fully baked, but I want to share it in the hopes of getting some feedback.

What do I mean by "trick room"? Some examples include the 20 pieces of strange dungeon decor I wrote a year ago, or Nick Whelan's Deadly Dungeons (pdf, print). Now, this isn't "trick room" in the strict AD&D Dungeon Master's Guide sense, as the list of strange decor aren't all puzzles or obstacles. It also includes "environmental storytelling rooms", basically anything odd or seemingly out-of-place that holds the players' interest.

Anyway, if you're grafting a trick room into a dungeon with factions — say, kobolds, goblins, and the peaceful tooth golems that just want some quiet time to relax in their fluoride pools — then it helps to know which faction controls the room, and what their attitude to the room is. You know, so the graft will take.

Roll on the tables, or just use the questions they present as a starting point for your own brainstorming. Embrace apparently incongruous results. Do the human bandits value the room because they are drawn there to spawn? Maybe they're not quite as human as they seemed.

1. Who controls the room now?

1-4. A dungeon faction (choose faction randomly, then roll on [3])
5-6. It's in no-man's-land — roll on [2]

2. Why is it in no-man's-land?

  1. Factions are new to the dungeon. They either haven't discovered the room or are racing to claim it.
  2. Warding spells preserve the room, conjuring spirit guardians who attack those who deface it or linger too long.
  3. The room was controlled by a third, recently ousted faction.
  4. The room appeared out of nowhere just last week.
  5. Factions have agreed to treat the room as a neutral meeting ground, a place of amnesty where blood may not be shed.

3. Faction relationship with room

  1. They don't know it exists
  2. They know it exists, but have put "unravel its secrets" on the backburner while they deal with more pressing issues
  3. They actively fear, avoid, or loathe the room
  4. Mixed feelings, or the room is the focus of some intra-factional conflict
  5. They value the room — roll on [4]
  6. They will defend their possession of the room to the last person.

4. Why do they value/defend the room?

  1. They believe it to be tactically useful in defense against other dungeon factions or marauding adventurers
  2. The room has resources that fulfil material needs — roll on [5]
  3. The room has spiritual significance — roll on [6]
  4. Another faction seems to really want it, therefore we must deny it
  5. We held the room in the good old days, WE MUST HOLD IT AGAIN!

5. Material Needs:

  1. An inportant food source can be found here
  2. They use the room as shelter, living or work space
  3. they quarry the walls for building materials
  4. they are instinctively drawn here to spawn

6. Spiritual Needs

  1. They inter their dead here.
  2. This is a church or temple to them, a place to perform rites.
  3. This is a site of historical significance, a sacred place in their cultural memory.

7. How do they defend/control it?

  1. They garrison fighters within the room.
  2. Barricades and locked doors.
  3. The room is well behind the border/front line — get past that and very little stops you from reaching the room.
  4. They've placed a magical curse upon those who trespass.
  5. They regularly scry on the room, or have tiny animals, insects etc keeping tabls on it. That is, you can easily trespass into the room, but they will know and rapidly respond
  6. They don't defend it. They are a trusting people.

8. What happened to the Builders?

  1. They're still around — they're one of the dungeon factions. They may still possess the necessary architectural skills, they may not. They may currently hold the room, or have been ousted.
  2. Their civilisation was destroyed long ago by climate change. Ambient magic keeps this room at the temperature they preferred — a temperature uncomfortable for humans.
  3. They tired of their former lives and shrunk themselves to micrometre scale. Their whole society is still here, busy exploring and documenting the strange vistas and denizens of a mossy flagstone in the corner.
  4. They have embobbled themselves in anticipation of some future age, putting themselves in temporal stasis inside silver orbs blood-warm to the touch. The bobbles are stacked in neat rows in this room and elsewhere in the dungeon. A bobble can be moved, but cannot be breached, nor its contents determined.
  5. Pestilence. Their skeletons, contorted in agony and covered in virulent growths, lie in mass graves under the floor of this room and elsewhere in the dungeon. Erosion may have exposed bodies, or created voids about to cave in.
  6. They were colonists, whose ideology of superiority led them to underestimate their colonial subjects. They were driven out, their monuments destroyed, all except for this one.