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 7 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
ContentNo generative AI was used

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.

Downloaded it and dove right into creating tables! Great work! I have a question, just to make sure I didnt make a mistake: is the Unique Selection command not integrated? I tried using this command as shown on the Perchance Tutorial: [name1.selectUnique(2)]to give me two unique names from a list I made and it just outputs me the command line.

(1 edit)

Yes selectUnique isn’t currently implemented so it just prints raw text. Sorry it took a while to reply to this.

Good news though. I’m rebuilding the engine and the new one handles selectUnique and selectMany properly, plus weights and inline choices. You can try it in your browser right now at https://perhaps.sh/

More details in the latest devlog.

Man my only gripe is I wish it ran w/in obsidian. This is almost word for word what I'm looking for. Only issue is I'm using messing w/my notes on my tablet bc it's easier to lug around and I doubt through termux I could get it to work >_>

I’m glad this is something you were looking for.

An Obsidian plugin is what I’m building next. Obsidian mobile supports community plugins so I’ll make sure it works on your tablet or phone.

More details in the latest devlog.

The obsidian plugin is now available. https://community.obsidian.md/plugins/perhaps

Man, I love this app!
but there is one feature that I'd like to see added, and that's a button to copy a result to the clipboard.
that would definitely remove a layer of friction when using this along side my note taking.

That’s sounds like a great feature! Would be easy to implement too. I’ve added to the ticket tracker: https://github.com/script-wizards/oracle/issues/33

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.