A downloadable tool for Windows, macOS, and Linux

Oracle - Random Table Roller for Tabletop RPGs

A desktop app that turns your Obsidian vault into a powerful random table rolling system.

Oracle parses tables written in Perchance syntax from your markdown files and lets you roll on them with interactive results. Perfect for D&D, RPGs, and any tabletop game that uses random tables.

Features

  • Obsidian Integration - Point it at your vault and roll on any table
  • Interactive Results - Click subtables to re-roll specific parts
  • Smart Search - Find tables instantly with keyboard shortcuts (1-9 for quick select)
  • Roll History - Track your results with timestamps
  • Keyboard Navigation - Efficient workflow with arrow keys and shortcuts
  • Responsive Design - Works from mobile-width to full desktop

Guide

Write tables in markdown code blocks using Perchance syntax:

```perchance

title

  Random Encounters

output

  You encounter [creature] near [location]

creature

  A pack of wolves

  A wandering merchant  

location

  A babbling brook

  An old stone bridge

```

Oracle automatically resolves all subtables in one roll, giving you complete results instantly.

Who is this for

  • D&D DMs with random encounter tables
  • RPG players who love random generation
  • Anyone using Obsidian for tabletop gaming notes
  • Streamlining complex multi-table rolls

No installation required - just download and run!

Made by Script Wizards. Open source on GitHub.

Updated 22 days ago
StatusIn development
CategoryTool
PlatformsWindows, macOS, Linux
Rating
Rated 5.0 out of 5 stars
(6 total ratings)
AuthorScript Wizards
GenreRole Playing
TagsSolo RPG, Tabletop role-playing game

Download

Download
Oracle.1.1.2.exe 77 MB
Download
Oracle-1.1.2.dmg 115 MB
Download
Oracle-1.1.2.AppImage 116 MB

Install instructions

Launch or install the app. On Mac, you may have to Cmd+Click or Right Click then open the app as it's currently unsigned. On Windows, you might see a security screen, which you can ignore.

Development log

Comments

Log in with itch.io to leave a comment.

I'd love for the program to support folders - probably based on the organisation of the Obsidian vault you have it connected to; I'm going to have so many tables in this thing eventually, some organisation would be useful.

By default, it does support Folders! Technically you don’t even need Obsidian. I used Obsidian vault terminology because a vault is just a folder filled with markdown files.

I’m considering updating the language to reflect the fact that this has no dependency on Obsidian.

I think  it's better to say it tolerates folders, but doesn't do anything with them in the application - for example, I have several folders, one for naming tables from a particular book, and several folders under that for particular sections.

Oracle does not do anything with these folders. All you get is a list of random tables to choose from, with no grouping based on folder. I was imagining expandable folders containing subfolders and tables.

That’s great feedback. Currently Oracle keeps track of where the tables are coming from, and which subfolders they’re in, so I can add a view that preserves the folder organization. This way, the table browser in Oracle can act as a file browser as well.

I’ll create a ticket for this and add in the next release.

(+1)

Other features that would be nice: variable assignment, logic, and the ability to add scripts in some other language.

(1 edit) (+2)

Great suggestion! I originally envisioned Oracle as an extension of perchance.org. I wanted to get feature parity with the perchance grammar. This has been mostly achieved by this Rust implementation. I plan on adding these features to Oracle next year. This would take care of variables and boolean logic.

Embedded scripts from another language is also something I thought of doing, though limited to Lua or Python for now. I am in the process of rewriting this to support Go and Lua, heavily inspired by this Slay the Spire clone which supports Lua scripting.