Context-aware Random Tables
The concept behind context-aware random tables is simple; the results of rolls on such a table affects future rolls on the same table. For example, let's say we have a random table for weather. It makes sense for today's weather to affect tomorrow's weather, so the weather doesn't fluctuate too much. This is simple to achieve - let me show you how.
How to create a context-aware random table
In its simplest form, all you have to do to make a random table context-aware is add a modifier column to it. Let's look at our weather example again. Say you have a table which looks like this:
Traditional random weather table
| 2d6 | Weather |
|---|---|
| 2 | Thunder/snowstorm |
| 3 | Heavy rain/snow |
| 4 | Rain/snow |
| 5 | Light rain/snow |
| 6-7 | Overcast |
| 8 | Cloudy |
| 9 | Scattered clouds |
| 10-12 | Clear skies |
There is nothing wrong with this random table, but it does run the risk of generating weather that changes back and forth more than one would wish. So, to reduce the risk of that happening, we simply add a modifier column, and add that modifier to subsequent rolls.
Context-aware random weather table
| 2d6 | Weather | Mod |
|---|---|---|
| 2 | Thunder/snowstorm | -2 |
| 3 | Heavy rain/snow | -2 |
| 4 | Rain/snow | -1 |
| 5 | Light rain/snow | -1 |
| 6-7 | Overcast | |
| 8 | Cloudy | +1 |
| 9 | Scattered clouds | +2 |
| 10-12 | Clear skies | +2 |
On the very first roll - day one (or "Watch one" if you roll multiple times per day) - you ignore the "Mod" column. So let's roll for that first day - we got a 10, that's "clear skies". That means on day two, we add the modifier ("mod") from that row, which is +2, to the roll. That roll ended up being 6. Adding +2 to that, we get 8, which is "cloudy".
Because we got a modifer of +2 on the second roll, it wasn't possible to get a result lower than "rain/snow", which makes sense since we had "clear skies" on the first one.
A fix for the context-aware table to make sense
Since we can now get modifiers ranging from -2 to +2, it is now possible to get results below 2 and above 12 - let's fix the first and last rows on the first column to reflect this.
| 2d6 | Weather | Mod |
|---|---|---|
| 2 or less | Thunder/snowstorm | -2 |
| 3 | Heavy rain/snow | -2 |
| 4 | Rain/snow | -1 |
| 5 | Light rain/snow | -1 |
| 6-7 | Overcast | |
| 8 | Cloudy | +1 |
| 9 | Scattered clouds | +2 |
| 10 or more | Clear skies | +2 |
Avoiding stagnation - we're not quite done yet
The table above still has a problem. The weather might seem to get "stuck" at one end of the table for extended periods of time. There can only be so much rain before it gets old (and excessively wet). We can make two alterations which help adress this issue.
Alteration 1: The "reset" roll
On a 2d6, 7 is the most common result. We can use this and say that "any time we roll a natural 7, we ignore the modifiers and let the result be overcast". This simulates a break in the weather; a new front moves in.
Alteration 2: Reduce modifiers at the extremes
If we move the modifiers at the top and bottom rows of the table closer to 0 (from -2 to -1, and from +2 to +1), the weather is less likely to get stuck there.
Final version of the weather table
| 2d6 | Weather | Mod |
|---|---|---|
| 2 or less | Thunder/snowstorm | -1 |
| 3 | Heavy rain/snow | -2 |
| 4 | Rain/snow | -1 |
| 5 | Light rain/snow | -1 |
| 6-7 | Overcast | |
| 8 | Cloudy | +1 |
| 9 | Scattered clouds | +2 |
| 10 or more | Clear skies | +1 |
Note: An unmodified roll of 7 always ignores the modifiers, and "resets" the weather back to overcast.
Other examples of context-aware random tables
Context-aware random tables can be used any time you want results which don't change too much between rolls.
- Hex generation is a prime candidate. If left entirely up to chance, we might get a desert next to a swamp, or a tropical jungle next to an icy tundra.
- Reaction rolls or NPC moods are other suitable candidates. If an NPC is happy or friendly one moment, they are less likely to be sulking and hostile the next.
- Market prices in a trading-heavy game.
- Settlement stability for faction or domain play.
Hex flowers - an alternative solution
The Hex Flower by the Goblin's Henchman blog is a different, more complex approach to solving the same problem that might also be of interest to you.