OSR Random Generator

Beta: Some things may not work exactly right. Some planned features are missing.

Create a framework for a mission/job/adventurer.
The idea here is to generate a sheet of results pre-rolled from random tables, so that it can be ready for use as needed rather than rolling randomly during gameplay. This makes it easier to tweak results, customize them, and integrate them into the rest of the session/campaign. Right now it only works with hex dressing and encounters for swamps and roads (and they are not fully fleshed out yet). More soon.
This is pretty basic recreation of the random dungeon stocking process from Moldvay's Basic D&D. Nothing too fancy yet. Using Labyrinth Lord monsters and treasure tables, Courtney Campbell's Trap tables, and Roger S.G. Sorolla's Bag of Tricks. You're on your own for "Empty" for now.
Test your table before saving.

Table Code




  • Online version at: http://derikb.github.io/osr-random-generator/
  • Downloadable version at: https://github.com/derikb/osr-random-generator
  • Mobile app version soon, though this should work in tablets/phones via your browser.
  • Saved tables, characters, settings, etc. are stored in your browser's local storage. Be careful when clearing your browser cache/data else you may delete what you've saved. (I'll get an import/export working soon.)
  • Printing from the NPC tab should only print the NPCs in the "Current Characters" list as 5" wide cards (going for 3"x5" cards but height is hard to maintain). I'll try to improve printing for NPCs and other tabs in the future.


  • - Save
  • - Open/View
  • - Close (also "delete" if item has not been saved)
  • - Delete
  • - Get more information (usually in a modal window)

Random Tables

  • Click tags to filter the list.
  • Click table headers to sort table.
  • : Information about the table (also edit/delete custom tables)
  • : Opens a modal showing all the (sub)table options in case you want to pick the result yourself.
  • : Opens a modal and generates a random result. From this modal you can regenerate the same result or create more.
  • All tables converted by me.

Create Tables

  • Hit the "import help" to get a modal about table formatting.
  • More complicated options are available, I just need to better document them and improve the import option.


  • You can click on most fields to edit them (some fields that are generated exclusively from other fields cannot be edited, i.e. Attack Bonus, AC).
  • The rules setting dictates ability score modifiers, class parameters (hd, spell choice, attack bonus, etc.), armor class details, and 0-level human stats.
  • Ability scores are rolled 4d6 drop the lowest (I'll probably make this a setting at some point).
  • Attack Bonus is shown as a melee/missile breakdown (based on class, level, and strength or dexterity as appropriate to the rules) or as a single number if both bonuses would be the same.
  • Level calculations/options stop at 9.
  • Gender only effects the random name generator.
  • Most 0-level humans are not given armor, but a few are based on their occupation.


  • Just spits out a bunch of names when you need one.


  • Combines a bunch of random tables to create a framework/inspiration for missions/jobs/adventures.


  • Pretty basic so far. Encounter tables are by me.


  • Basic random stocking procedure from Moldvay's Basic D&D, that will generate monsters, treasures, traps, and special/tricks.

Coding by Derik A. Badman. Made with: jQuery, Bootstrap, Backbone (with the Local Storage adapter), and Underscore.

For sources and other credits see the Read Me file on github.


  • My original goal for this application was to create something that would be directly useful for me in prepping sessions for my game (we use LotFP rules), but that also might be useful during a session if something quick needs to be rolled up. I had collected so many books and pdfs and tables from various places that it was all a little overwhelming and hard to keep track of, so I thought I might be able to easily consolidate what I wanted to use in a simple way.
  • I tried to make the application without any server-based component so that it could be downloaded and run in the browser without any difficult set-up procedure. One could even run it without a network connection if all the required js libraries were downloaded locally.
  • I'm also trying to make the data elements of the app easily expandable so users can customize what tables they want to use. Unfortunately there's no simple way to take a table from a book, pdf, or blog post and make it structured enough that the application could make use of it. But if you are willing to put in some conversion time (much easier if you have a good text editor and some knowledge of regular expressions, which is how I converted all the data), it should be pretty easy to add your own tables.
  • Warning: I've only tested this in Chrome (desktop and Android tablet) and Firefox, any other browser may not work right (especially Internet Explorer). I'll do more testing later (especially for mobile).