Category Archives: Techniques

Random table format wars

In general I am wary of introducing technological prosthetics into tabletop roleplaying games. Often, I think such tools are patches over needless rules complexity. I would generally prefer to adjust the rules so that they can stand efficiently without machine crutches. However, one place where I relax my attitude in this matter is the combination of results from several random tables. Occasionally I appreciate the slow, ritual process of rolling dice, consulting a table manually, noting a result, repeating this process over and over again, and then finally reconciling the complete set of results. However, most of the time reducing a 20 minute operation to one that takes mere seconds is a trade I will take. So, what tools exist for automating the juxtaposition of multiple random tables? Ultimately, I will advocate using a simple spreadsheet, which I argue has benefits in terms of both flexibility and simplicity over many other more specialized solutions, but first I will survey the alternatives.

To my knowledge, the other major players are Abulafia, Chartopia, and Last Gasp Choose Your Own Generator. Abulafia is basically a wiki that supports syntax for random tables. Abulafia’s major benefits are the ability to reference tables uploaded by others and web sharing. Chartopia is a specialized web app for random tables that seems like a work in progress. Both use their own format for encoding data. Last Gasp will generate standalone JavaScript tables that you can store entirely in a bookmarklet but requires some external solution to manage and recombine lists of table data. All of these are good tools but none of them quite scratch the itch of blending results from multiple tables in a flexible and easy to manage manner, at least for me. Chartopia may have emergent potential from social media participation, but so far lacks the user base and requisite functionality, such as intuitive hash tagging. Chartopia supports uploading tables as CSV files, but the process of creating a full generator ended up feeling cumbersome to me.

Using a spreadsheet, once you know a couple simple tricks, is flexible and quick, and the social media aspect seems easily handled with Google Sheets, Dropbox, Google Plus, Twitter, Reddit, or whatever. The main benefit for me of using a spreadsheet though is encapsulation. All the other solutions I have experimented with involve a mess of files, links, or other elements, which end up difficult to organize or share. In contrast, the method I outline here keeps all the subtables together in a single spreadsheet workbook file, with one column per table in the second sheet. This ends up interoperating easily with the most natural format for storing random tables, which is a plain text file having one result per line.

Basic Excel random tables

These instructions assume that you have basic knowledge of spreadsheet concepts, such as cell addresses and formulas. That said, to make this accessible, I try to be as explicit as possible, and apologize in advance for boring those with spreadsheet experience. Spreadsheet files (the files with xls or xlsx extensions for Excel) are called workbooks, and each workbook can contain multiple sheets. Beyond these basics, all you need to know is how to name a region of cells and how to use one, admittedly ugly, function to select a result randomly from a named region. To create a multi-table generator:

  1. Create a workbook
  2. Enter the table data into the workbook’s second sheet, one table per colum
  3. Name the column regions so you can reference them by name
  4. On the first sheet, reference the named regions using the ugly function

As a basic example, I will automate Telecanter’s excellent Magic Item Spur, the content of which is released under a creative commons license. This is a roll all the dice generator, meaning there are six tables corresponding to the classic handful of polyhedrals: 1d4, 1d6, 1d8, 1d10, 1d12, and 1d20. (The d10 table here is basically just the number, but I have left it exactly as Telecanter originally specified, for clarity of example.)

First, switch to Sheet2 within the workbook and enter the data. Check the lower left tabs to access the different sheets within the workbook (you may need to click the + button to create a second sheet). I left the sheet names Sheet1 and Sheet2 in this example so they match the Excel defaults. I use the first row for column names, but this is just superficial:

Excel example – enter random tables

Next, name the ranges for each column so that you can refer to them by name elsewhere. To name a region, highlight the column data and the type the name in the upper left cell address box—the text in the blue box below. Do this for all columns (there are six in this example).

Excel example – name region

Finally, switch to Sheet1, which will contain the randomly generated result. For each table, draw a result randomly using the following function, replacing TableName with whatever you named each column region:

=INDEX(TableName,RANDBETWEEN(1,ROWS(TableName)),1)

You can organize Sheet1 visually in whatever way you want. I have the generated content in cells B2 through B7 here, with labels to the left and credits below.

The formula in cell B2 (which resolves to distance in the result) is:

=INDEX(range,RANDBETWEEN(1,ROWS(range)),1)

The formula in cell B3 (which resolves to weapon in the result) is:

=INDEX(type,RANDBETWEEN(1,ROWS(type)),1)

And so forth.

Excel example – Sheet1 generator with formula

That’s it.

Now, every time you recalculate the sheet, you will get a new result. In Excel, press F9 to recalculate the sheet. In Google Sheets, reload the page.

Share, or embed in blog post

Upload this to Google Sheets, and you can share it with others, or embed the result in a blog post or other web page using the following iframe code.

<iframe src=”https://docs.google.com/spreadsheets/d/1am-3-CfNcIV4ICCr6jysJckVr03iWBphdeIaeSOtEBY/edit” width=”600″ height=”600″></iframe>

Just update the URL. Every time you reload the page that includes the iframe code, you will get a new result, as you will see below. (Try reloading this page.) I have highlighted the random content area in red to make it clear for this example.

Use on phone or tablet

This approach is portable, both in the software compatibility sense and in the will work on your phone sense. I tested these sheets on the Google Sheets, Numbers, and Excel apps for iOS. They all work, even when offline, though there are some minor differences in the user interface, and the free version of Excel for iOS prevents saving. Generally, to generate a new result using a phone or tablet spreadsheet, close and reopen the document. The Google Sheets app seems to be the most full-featured and flexible, but really as a simple viewer any of these works.

Opening this file unmodified in the Google Sheets app on my phone presents this interface, which is just about perfect for use during play:

User interface on a phone

Deleting or editing names for regions

Once you have created one of these, it is relatively straightforward to make a copy the workbook file and edit the copy to make another generator out of different tables. To do this, you may want to delete or rename existing region names. I explain how to do this next.

In Excel, you can delete existing names for ranges using Insert > Name > Define Name, highlighting the name, and then clicking the minus button.

Excel – region name menu

Excel – delete region name

In Google Sheets (access via Google Drive on the web), the relevant menu is Data > Named ranges… and at the time of this writing looks like:

Google Sheets – Delete region name

(Just do a web search for “named range” and your spreadsheet software of choice if using another tool.)


Comparing solutions

Okay, now that you have seen a simple proof of concept example, how does this compare to the other solutions?

  1. It functions without the network
  2. It only relies on standard spreadsheet functions
  3. Easy to share by uploading to Google Sheets
  4. Easy to organize using folders in Google Drive
  5. Easy to copy one-per-line text files into columns
  6. Keeps a collection of related tables together in one file
  7. No reliance on domain-specific language
  8. No reliance on continued existence of whatever cloud service
  9. Easy to embed in a blog post using iframe (will regenerate on each page load)

That seems like a pretty compelling list of advantages to me. A while back, I considered and decided against using a spreadsheet, but I have now changed my opinion. For a few more examples:

  • The Vornheim aristocrat generator is one of the classic examples for me of this kind of multiple table generators. Here is an automated excel version (content used with permission). Buy Vornheim; it’s great.
  • Random Devilspawn from this post (note how easy it was to embed the generator at the bottom of that post as well).

The other solutions are mostly unitaskers, unlike Excel, which is a useful tool in its own right. And keeping all the subtables nicely contained in a single workbook file is extremely helpful, especially in comparison to the mess of files I have to automate, say, some of the chapters from Seclusium (such as this chapter that is basically a magic item generator).


Adding Functionality

Though the above example provides all the functionality most generators require, spreadsheets have almost unlimited flexibility, and you can make any particular generator as complicated as you want, if your time is worthless. I tried to keep the example above as simple as possible for ease of use and portability, but there are a few other functions that might be worth the effort.

RANDBETWEEN (for dice values)

For slightly more complex generators, two other functions may be useful. The first is RANDBETWEEN(), which can serve as a basic dice roll. For example, =RANDBETWEEN(1,6) yields 1d6. =RANDBETWEEN(1,6)+RANDBETWEEN(1,6) yields 2d6 (and so forth). Use this function to instantiate values for elements such as number of monsters appearing.

CONCATENATE (for joining two random results into one cell)

To join two or more elements so they occupy a single cell, use CONCATENATE(). For a simple example:

=CONCATENATE(“Number appearing: “, RANDBETWEEN(1,6))

I use this in my Devilspawn generator to join the number of attendants and the description of attendants into a single result (check the contents of cell B10 in the first sheet).

Rich descriptors

One of the more surprisingly effective character creation innovations I have come across during the last several years was when Ram decided to add a set of random appearance results automatically to the default output from his character generator. For example: Thief, Male, Child, in Uniform, Tall is so much more immediately intriguing than just Thief, especially along with STR 4 and WIS 5.

But there is nothing special about those particular appearance tables, and if anything they are somewhat mundane, apart from one third of characters being either children or decrepit, which is rare for starting player characters and so lends interest. Maze Rats characters have more unusual descriptions, but are still relatively literal and immediate: wiry, singed clothing, and so forth.

What if we tried for more suggestive descriptors, such as roles or life stages? In the following d66 table, I tried for a set of results that in a single word suggest gender and age, along with a dash of social status, without being quite as direct. And of course, one could interpret a role either more or less literally. Depending on campaign particulars, reynard could mean young adult trickster or it could mean that the character was an actual fox who somehow was transformed into a human. Or maybe it means halfling animal person foxling.

The entries perhaps still need some tuning, but the idea seems promising, especially if a few such rich tables could be constructed. I avoided more mundane pairs such as father/mother, husband/wife, king/queen, and so forth. I also tried to select pairs that were somewhat quirky without being ridiculously obscure and tried to avoid pairs that involved explicit hierarchy, though without complete success. Columns control implied gender, with odd male and even female. Rows control implied age, with higher number meaning older.

Though maybe unworthy at this point, here is a PDF of the table.


 d66 1 2 3 4 5 6
1 urchin waif prince princess naif ingenue
2 monk nun chad trixie reynard vixen
3 cicisbeo mistress satyr nymph gallant diva
4 swain wench dogsbody charwoman footman handmaiden
5 widower widow hermit hermitess courtier courtesan
6 alumnus alumna troglodyte hag codger crone

Table form inspired by Maze Rats.

Participants in a conversation on Google Plus suggested some of these entries (I generally post privately; you must be in my circles to see it).


Some other leftover pairs:

knight dame
patriarch matriarch
patron matron
hero heroine
pimp madam
father mother
boy girl
husband wife
magister magistra
seducer seductress
beau belle
??? vamp
adonis ???
popinjay ???
groom bride
actress actor

Hazard System v0.3

The Hazard System is a gameplay engine for traditional roleplaying games designed to facilitate fictional consequences of player decision-making while minimizing bookkeeping.

Find a full HTML version of v0.3 in this post below the divider.

There is also a PDF version.

Significant changes between v0.2 and v0.3:

  • Hazard die results now follow higher = better principle
  • Generalized hazard die:
    1 setback, 2 fatigue, 3 expiration, 4 locality, 5 percept, 6 advantage
  • Introduces free moves, full moves, and conditions terminology
  • Formatted PDF as two letter-sized pages for ease printing two-sided on one sheet
  • Included brief chronological further reading section for context
  • Included simple default subtables for several kinds of outcomes, such as haven shortages and disasters

The text below the divider is released under a Creative Commons Attribution 3.0 Unported license.

Attribution: Necropraxis Productions Hazard System v0.3 (2017)
http://www.necropraxis.com/hazard-system/


Hazard System (v0.3)

The six-sided hazard die deploys threats, manages resources such as light, and keeps time. It is the engine that drives gameplay forward, ensuring that choices have consequences while minimizing bookkeeping. To take a turn, have a player roll the hazard die and have the referee interpret the results relative to the current turn type. During a turn, each player may take one full action. The general form of the hazard die is:

1 2 3 4 5 6
Setback Fatigue Expiration Locality Percept Advantage

Hazard Die Interpretations

Haven Turn Interpretation

d6 Result Interpretation
1 Setback Encounter (use regional table) or disaster (see below)
2 Fatigue Shortage (1 medicine, 2-3 drought, 4-5 famine, 6 trust)
3 Expiration Clear one or more haven conditions
4 Locality Advance season (or other local change)
5 Percept Foreshadow looming disaster
6 Advantage Full recovery

Wilderness Turn Interpretation

d6 Result Interpretation
1 Setback Encounter (use regional table) or road/bridge out
2 Fatigue Rest and consume rations (1/person) or suffer minor harm (1 HP)
3 Expiration Expire transient wilderness condition
4 Locality Shift weather (or other local change)
5 Percept Spoor or clue regarding next encounter
6 Advantage Free wilderness turn

Dungeon Turn Interpretation

d6 Result Interpretation
1 Setback Encounter (use zone table)
2 Fatigue Rest and consume rations (1/party) or suffer minor harm (1 HP)
3 Expiration Expire transient dungeon conditions (light, spell, etc)
4 Locality Shift dungeon state (or other local change)
5 Percept Spoor or clue regarding next encounter
6 Advantage Free dungeon turn

Combat Turn Interpretation

d6 Result Interpretation
1 Setback Opponents act first or additional encounter (use zone table)
2 Fatigue Suffer minor harm (1 HP) if engaged in melee
3 Expiration Expire transient combat conditions (light, burning, etc)
4 Locality Shift battlefield (or other local change)
5 Percept Spoor or clue regarding next encounter
6 Advantage Free combat turn
  • Some disasters (1d6):
    1 invasion, 2 insurrection, 3 fire, 4 earthquake, 5 flood, 6 falling star
  • Some dungeon localities (1d6):
    1 obstruction, 2-3 seal/open door, 4-5 divert water, 6 expose secret
  • Use common sense: ignore results that do not make fictional sense, but only the first time
  • Keep time abstract: quantifying the details precisely is rarely worth the hassle

Moves and Conditions

Moves represent actions relevant to the current fictional context, such as exploring a trackless stretch of swamp. Conditions represent persistence of a transient state, such as adventurer exhaustion. Conditions can apply to areas, parties, or individuals. Strictness tracking conditions is a matter of style. Tokens can help. The lists of moves and conditions below below are suggestive rather than complete. Improvise others as appropriate, according to referee ruling.

Haven turns represent several days or weeks of rest and recovery.

  • Free haven moves: advance/level up, prepare spells, recover, recruit, resupply
  • Full haven moves: craft gear, scribe scroll, conduct research
  • Haven conditions: curse, famine, pestilence, shortage, siege, winter

Wilderness turns represent travel and making camp, approximately one day and night. Making a wilderness move requires consuming a ration or taking the exhausted condition in addition to rolling the hazard die. If already exhausted, at the start of a wilderness turn suffer minor harm (1 HP). Determine randomly whether setbacks occur during day or night.

  • Free wilderness moves: access known landmark in current area, survey adjacent areas
  • Full wilderness moves: travel to adjacent area, search, explore, hunt, track
  • Wilderness conditions: exhausted, lost

Lost: Travel is no longer an option. Use search to locate a landmark, removing the lost condition on success.

Dungeon turns represent exploration at architectural scale, approximately tens of minutes or a few hours, assuming careful advance into hostile places.

  • Free dungeon moves: look under a rug, open unstuck door, pull lever
  • Full dungeon moves: climb, force a door, move to adjacent area, pick a lock, search
  • Dungeon conditions: candlelight, torchlight, overburdened

Combat turns represent tactical actions occuring over seconds or minutes.

  • Free combat moves: shout command, drop held item,
  • Full combat moves: shoot, spell, strike, throw, withdraw
  • Combat conditions: burning, defended, grappled, prone

Notes and Further Reading

  • Consider using a simple slot-based encumbrance system, such as one item per point of strength.
  • Locality results work best if you design areas with countdowns or aspects that can shift between states.
  • I replace traditional initiative with the combat hazard die.
2012-09-16 http://www.necropraxis.com/2012/09/16/abstracting-missiles/
2013-04-10 http://www.necropraxis.com/2013/04/10/solipsistic-hexes/
2014-02-03 http://www.necropraxis.com/2014/02/03/overloading-the-encounter-die/
2014-05-22 http://www.necropraxis.com/2014/05/22/proceduralism/
2014-12-23 http://www.necropraxis.com/2014/12/23/hazard-system-v0-2/
2015-02-09 http://dungeonofsigns.blogspot.com/2015/02/luceat-lux-vestra-making-light.html
2016-07-22 http://www.necropraxis.com/2016/07/22/tactical-hazard-die/
2016-09-19 http://www.necropraxis.com/2016/09/19/let-it-ride-or-push-your-luck/
2017-06-11 http://www.paperspencils.com/2017/06/11/the-haven-turn/

Released under the Creative Commons Attribution 3.0 Unported license. Typeset using Pandoc and LaTeX.

Attribution: Necropraxis Productions Hazard System v0.3 (2017)
<http://www.necropraxis.com/hazard-system/>

Bricks and hexes

Hexes have a cartographic advantage over grids in that the center of a hex is equidistant from the centers all six adjacent hexes. In contrast, on a standard graph paper grid diagonal movement is more efficient than moving in a cardinal direction, assuming a destination other than cardinal-adjacent (that is, other than due north, due south, due east, or due west).

Recently I noticed that squares in a brick configuration are topologically similar to hexes in terms of adjacency. Each brick is adjacent to six surrounding bricks.

Bricks, however, are much easier to sketch than hexes.
2017-01-09-19-59-29-bricks-as-hexes

To see another way how bricks are similar to hexes, consider the following image and imagine the orange brick overlay moving right until the center of the bricks is superimposed over the center of the hexes.

2017-01-09-20-32-47-bricks-as-hexes

(This post is groundwork for another idea. To be continued!)

Initiation

B51-duskA friend of mine who just recently started playing D&D wanted to run a game. Previously, she had played a session or two with me using LotFP and separately a number of organized games (mostly Adventurers League using 5E but also one or two Pathfinder sessions). She asked me to recommend a module, planning to use 5th since that is what she had books for and was most familiar with.

I had no immediate candidate because 1) there are not that many modules for 5th, 2) most of them are wordy or bland, 3) while recently more directly usable modules have been published such as Forgive Us they still require prep especially for a new referee that will need to deal with stat conversions to 5th, and 4) I believe the true potential of tabletop RPGs lies in personal creativity. So, mindful of information overload and the value of time time limitation, I suggested a compromise approach that I felt would be capture the best of both worlds while minimizing low-payoff preparation.

Following is the advice I provided.

Option 1: use one of Michael Prescott’s one-page dungeons:
http://blog.trilemma.com/search/label/adventure

Option 2: pick one of Dyson’s free maps and stock it by hand according to guidelines I will send momentarily:
https://rpgcharacters.wordpress.com/maps/

Option 3: use one of Dyson’s adventures here:
https://rpgcharacters.wordpress.com/downloads-games/

For a guide to dungeon stocking, I sent a copy of pages B51 and B52 from Moldvay Basic. This is the single most useful short explanation that came to mind regarding what referees actually do for effective prep in D&D. In outline:

  • Part 8: Dungeon Master Information
    • A. Choose a scenario
    • B. Decide on a setting
    • C. Decide on special monsters to be used
    • D. Draw the map of the dungeon
    • E. Stock the dungeon
    • F. Filling in final details

I heard that she created a island scenario in mythical Ancient Greece and ran a session last night. I am hoping I can get her to write up a postmortem about how the game went and what was most useful as a new referee since there are a lot of opinions about decreasing the barrier to entry for new tabletop gamers but not so much thoughtful reflection on the experience of actual new players and referees.

Optimization and preparation

From An apology to some min-maxers:

In fact, if anything, my sub-optimal character builds were me being lazy, and not doing the homework other players were doing to build more optimized characters.

At the same time, as GM you should min-max the opposition to the same level as you have allowed for your players. Dig into the system and look for how to optimize NPC’s and monsters. That is likely going to be more work for you, as you may need to take stock stat blocks and beef them up, but it will create challenging opponents for the players, making encounters more exciting.

This concisely captures why I gravitate away from games that support or require significant optimization. It’s just making more work for everyone involved, and not in a way that adds to the play experience. It’s work inflation: everyone needs to spend more time in order to get the same result. And the result is the same, assuming that competition has no value (which it does not, for me, in RPGs).

Compare this to working more on setting detail or even character personality. Such preparation can consume as much time as you want, but it can also qualitatively improve the play experience. Optimization and what I am going to call (for lack of a better term) preparation can thus be seen as two independent dimensions of out-of-game work required by RPGs, leading to four rough categories of game: high-op/high-prep, high-op/low-prep, and so forth.

optimization and preparation bw

A railroad is a way of constraining preparation requirements. There may be some overall conservation law operating such that sustainable games on average tend to be low in either or both dimensions. This may be why it is difficult for me to find an example of a game that is naturally high in both categories. Games associated with high optimization (Pathfinder, 4E D&D) can be played using sandboxes or with more extensive world building, but doing so ends up being a higher-maintenance activity.

As an observation it seems that many games in the focused design tradition, especially Forge and Story Games, seem to prize minimization of both kinds of work. Games like Lady Blackbird and Apocalypse World, for example, put few barriers before getting started (AW requires the MC to create some fronts, but the instructions seem geared to avoid potential scope creep). Minimizing out-of-game work a way to increase approachability by decreasing cost. If the reliability of play experience varies with the prep time, that is seen as a flaw in this tradition. The system is seen as “not working” if play is inconsistent, as it will surely be if preparation is required given that different groups or players will invest in different amounts of out-of-game work. Other traditions seem to focus more on the other side of the equation: increasing value (such as the intricate setting and art of Warhammer, or atmosphere of the World of Darkness, separate from amount of work required). Obviously, the two approaches are not exclusive, but there still seem to be trends toward one or the other.

And yeah I may have been working on a data analysis assignment before writing this post…

Improved area keys

Keying dungeons or wilderness areas has been around for as long as referees have been writing prep notes or sharing material for others to use. However, modules are still hard to use, and even personal notes (initially fortified by intent in mind) quickly become impenetrable, even to an original author. Just ask a programmer to revisit some inadequately commented code written several months or years ago. There has to be a better way.

I think I have found a better method, or at least one that works well for me, but before I describe my current approach, I want to revisit a few common styles and discuss what works and does not work for each of them. The most common style in published modules (and also probably the oldest, as you can see it in some of the earlier modules, such as B2) is the dreaded wall of text. Areas are described in lengthy, proper english prose. Sometimes particular game elements (such as monsters or magic items) are set off from the text typographically. Modules in this format can be pleasurable to read (if well-written), and can be a good source of ideas or inspiration, but are quite cumbersome to use in play. There is always the lurking fear that one will miss an important bit of info that should be presented to players early and clearly, in order to support informed decision-making. They just don’t work very well in play. Unfortunately, this has become the accepted format for modules.

Another older approach is the minimal key, exemplified by the few extant photos of Gygax’s Castle Greyhawk key. This is easy to use, but suffers in terms of being able to encode any kind of complexity. One is limited to very basic stocking information, and when complexity is added through improvisation, the details are invariable forgotten. Unsatisfactory. In terms of modern use, some one-page dungeons approach this level of concision and often (though not always) suffer for it. A few products have tried to split the difference (such as Stonehell Dungeon, with its two-page spread version of the one-page dungeon). Stonehell is notable for being one of the most user-friendly modules yet written, though the self-enforced simplicity limits the sophistication of described features, other than those described separately in “special dungeon notes” sections (which sort of defeats the purpose and requires page-flipping).

There are some new approaches that work better, such as Courtney’s “set design” hierarchical outline format. This method works admirably in terms of direct, in-game usability. However, based on my experience, it has two flaws. One, outlines are often not a good use of space in terms of typesetting. This is a minor issue, but still bears mentioning for a medium that remains often expressed in hardcopy book form. Two, it lacks poetry. It is just not pleasant to read pages of outlines. Despite those issues, I would still take this format over the two traditional examples described above, but I think we can do better.

When I read an area description, I have basically two priorities. The first is that the immediately relevant information be easily accessible. The second priority is that finding out more information about a particular element (“drilling down”) be easy. So the PC opens the chest; what’s inside? This realization led me to the following two principles: (primarily) immediately relevant features must be offset from other details and (secondarily) elaborative detail should follow so that it is easy to access when needed. Immediately relevant area features are not only nouns (a table in the room, a monster in the room, scorch marks that are a trap clue), but also event triggers (if the northern door is opened, if a PC steps on a central flagstone, and so forth). When I am writing new area keys, I bold the immediately relevant features. Basically, the key is a tool for the referee, so everything that the referee needs first should stand out.

Some modules tried to address this issue with boxed text, but as noted above, features that are important to the referee immediately include more than only what the PCs perceive. Boxed text is also flawed because it separated the initial impression (“treasure chest”) from elaboration (the contents are usually buried somewhere three paragraphs down the page, with no obvious connective element, from a usability perspective).

One nice consequence of this approach is that it can be applied to existing modules without requiring rewriting (at least, to some degree). Newly written material can benefit from these principles more (given that elaborative detail can be concentrated after the first mention of immediately relevant features), but even without that knowledge the approach seems to work well based on my experimentation so far. This is particularly easy to do with a tablet and a PDF reader* that allows annotations such as highlighting, though I imagine it could also probably be done with cheap desktop software.

From Tower of Mouths, by Matt Finch, in Knockspell 3

From Tower of Mouths, by Matt Finch, in Knockspell 3

You will see that the immediately important features are clearly offset from information only required in the case of elaboration. A referee can take in the area with a glance (weapon racks, rushes, buckled floors, untouched alcove), secure in the knowledge that nothing is being overlooked, and quickly communicate the initial impression to players without needing to read any text verbatim. As players deliberate about what to do and ask clarifying questions, the referee can revisit the elaborative detail (check on the map again where the teleporter destination is, and so forth). The amount of text that must be read to get a handle on the area has been cut down by more than half without degrading the quality of the prose. Additionally, this was already a rather short description, and the savings yielded are usually greater.

This method is even more useful for a truly sprawling area description, the kind that has half a paragraph about room history, a digression about how the area is used, and a table of twenty potions to sample, especially given that each of these subsections is likely to communicate information that should be immediately obvious to players (water damage from the history, footprints from the usage, and a fabulously glittering jewelled potion decanter nestled between 19 plain clay jars).

Thus, the organizing principle should not be the nature of game entity (monster versus treasure, for example). Rather, features with higher referee immediacy should be emphasized.


* I use an iPad with the GoodReader app. This program syncs bidirectionally with Dropbox and automatically offers to create files with a “- annotated” file name the first time you start to add annotations to a PDF, which it then syncs back to the folder in Dropbox. It is extremely convenient.

Hangout screenshare fog of war

Tower of Mouths, original design by Matt Finch

Tower of Mouths, original design by Matt Finch

Of the many minor experiments I built into the first Grimmsgate session last night, one was using Hangout screenshare along with gimp to do fog of war reveal of the dungeon map.

Overall, I was pretty satisfied with how that worked, though it did require preparing a separate map beforehand without room numbers or hidden features (such as secret doors).

A side benefit of this approach, compared to something like Twiddla, is that the layered and partially revealed map can be saved in native Gimp format, thus preserving the last state of fog of war reveal.

No redrawing will be necessary during the next session.

I gather you can do something similar with Roll 20 (though I’m not sure about state saving). I kind of like the modularity of the approach that I used though, given that I didn’t need to learn anything new or test any software that I wasn’t already using.

Other minor downsides to this approach:

  1. Unlike with Twiddla, players can’t make marks on the map.
  2. Screenshare replaces referee video, which decreases interpersonal interaction slightly.
  3. Erasing fog of war requires care to not accidentally reveal extra info.

A method of preparation

Part 1 of a threefold “approach to play” series. Part 2 was already published (A Method of Play).

The random stocking table included below replicates the chances from Moldvay, but only requires a second die roll one third of the time. The idea to improve the stocking table by reducing the number of die rolls came from this post. The result labels have also be rephrased in more general terms.


Before a campaign begins, do these things.

Draw a campaign map. This sounds grand, but need not be. It should usually include a place of safety (such as a town) and 3 to 6 dangerous locations that also promise great reward. Create at least one hook per location so that players can find adventure. Example hooks include rumors, available missions, or the premonitions of seers. Hidden locations may also be created later, but are not needed before the campaign begins. Less constrained situations, such as a river spirit that has been driven insane by the refuse being generated by a new mill, may also be used instead of a physical location. It is worth creating both dangerous places and abstract situations, so that players can pursue either kind of adventure.

Sites to be explored should probably have maps, because predetermined spatial relationships make exploration more engaging and easier to run impartially. Draw these maps (or repurpose maps acquired from elsewhere). Note any important NPCs, adding no more than one or two words of description and one or two special abilities if relevant. Then decide what is in every room or zone, either using dice as a guide or based on the necessity of the area and its relationships.

Finally, and most importantly, for each site create a list of complications that might occur. This is most important because, other than interacting with the site itself, these complications are what will end up constituting play. Complications can be as simple or complex as desired. A list of monsters that might be encountered wandering around the area is often sufficient.

Determining Occupants & Contents Randomly
  1. Mundane contents
  2. Mundane contents (2 in 6 chance hidden treasure)
  3. Monster or occupant
  4. Monster or occupant with treasure
  5. Hazard or trap (2 in 6 chance hidden treasure)
  6. Strange phenomenon or incomprehensible object

A method of play

Half (or maybe one third) of everything you need to know to run a game of fantasy adventure.


When PCs do something significant, such as moving cautiously into a new chamber while exploring a haunted mansion, spending an exploration turn attempting to pick a lock, searching a room from top to bottom, travelling for a day in the wilderness, camping for a night, or even spending a week in town recovering, the referee should roll a die to see if complications arise. By default, assume that this chance is 1 in 6.

The exact nature of these complications will vary by context. While exploring a buried ruined city, a complication might represent a wandering monster. While travelling on an open road, a complication might be an assault by bandits or a meeting with a travelling peddler. Complications do not always need to involve danger.

It might be tempting to modify the 1 in 6 chance based on fictional circumstances (such as increased situational danger), and this is a reasonable approach in some cases, but keep in mind that the 1 in 6 chance tends to interact almost perfectly with the pace of game play at the table, injecting uncertainty and, potentially, danger, in a way that is engaging without being overwhelming. Instead, consider varying the severity of the potential outcomes rather than the chance of events occurring. This is a guideline rather than a rule, however, and should periodically be violated, at the whim of the referee, so that events do not become predicable.