Quick Random Table

Quick Random Table

scan for an OSE
dungeon encounter level 1

Let's abbreviate "Quick Random" to QR, we get QR table. Back in July, I saw this QR Codes - Random (OSE) Monster Table on Goblin's Henchman, it was subtitled "another oddball idea for you...". I loved this idea.

The jump from analog to digital that QR codes enable fascinates me.

I have this rule as a referee, no electronic tool behind at the table. But the rule doesn't hold for preparation time. Some preparation involve rolling on random tables available in books. What if the roll was done by pointing to the QR code printed next to the random table in that stapled zine?


OK, that is easy, take any QR code generator, feed in the link to your online generator and it's done.

But I wanted to have control over the tables and their rendering, so I wrote a tool named Maboroshi. I wanted it to be simple to deploy, no need to run code on the server side, a simple HTTP server is sufficient and I packaged it all in a single index.html packaging CSS and Javascript, so one only needs to deploy this HTML file and the random table source files which happen to be pseudo-Markdown.

Below is an example of this pseudo-Markdown. The H1 section of the document points to the H2 creature table which in turn points to the H2 status table.

The URI for this table is https://laconi.co/maboroshi/index.html?table=encounter0.md where table= tells the [java]script to roll on encounter0.md (same level on the server). It's OK to let table= point to a .md file on another server. The work is done in your browser, not on the server.

scan for an encounter
# encounter

* (nothing)
* {@ creatures}

## creatures

* {1d6+1} {@status} goblins
  AC 6 [13], HD 1–1 (3hp), Att 1 × weapon (1d6 or by weapon),
  THAC0 19 [0], MV 60’ (20’), SV D14 W15 P16 B17 S18 (NH),
  ML 7 (9 with king), AL Chaotic, XP 5 (bodyguard: 20, king: 35),
  TT R (C)
  . Hate the sun: –1 to hit in full daylight.
* {1d4} {@status} orcs
  AC 6 [13], HD 1 (4hp), Att 1 × weapon
  (1d6 or by weapon), THAC0 19 [0], MV
  120’ (40’), SV D12 W13 P14 B15 S16 (1),
  ML 6 (8 with leader), AL Chaotic, XP 10
  (leader: 10, chieftain: 75),
  TT D
  . Hate the sun: –1 to hit in full daylight.
* {2d6} {@status} kobolds
  AC 7 [12], HD ½ (2hp), Att 1 × weapon (1d4 or by weapon – 1),
  THAC0 19 [0], MV 60’ (20’), SV D14 W15 P16 B17 S18 (NH),
  ML 6 (8 with chieftain), AL Chaotic, XP 5 (bodyguard: 15, chieftain: 20),
  TT P (J)
  . Ambush: Set up surprise attacks.
  . Hate gnomes: Attack on sight.
* {1d4} {@status} hobgoblins
  AC 6 [13], HD 1+1 (5hp), Att 1 × weapon (1d8 or by weapon),
  THAC0 18 [+1], MV 90’ (30’), SV D12 W13 P14 B15 S16 (1),
  ML 8 (10 with king), AL Chaotic, XP 15 (bodyguard: 75, king: 175),
  TT D

## status

* normal
* drunk
* distracted
* ambushing
* sleeping
* angry
* hungry
* sad

In this example, I added the OSE stat blocks for the monsters in order to make the referee's life easier. Maybe.


The result page is suffixed with two QR codes, the first one, self, links to itself, while the second, text, contains the generated text (max 4K!). There are also two copy buttons.

I'm continuing my work on this tool, it's excellent fun.

It should make it easy for a random table author to propose the table in plain form and in QR code form, speeding up the preparation time of the users and, why not, letting them roll quickly at the table.


roll for an encounter or for some petty goods...