
Oracle Random Table Roller
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 |
| Status | In development |
| Category | Tool |
| Platforms | Windows, macOS, Linux |
| Rating | Rated 5.0 out of 5 stars (6 total ratings) |
| Author | Script Wizards |
| Genre | Role Playing |
| Tags | Solo RPG, Tabletop role-playing game |
| Content | No generative AI was used |
Download
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
- The Future of Oracle7 days ago
- v1.1.0 Canvas ModeMay 27, 2025
- Oracle Reborn: Now Cross-platform!May 26, 2025


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.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.
Other features that would be nice: variable assignment, logic, and the ability to add scripts in some other language.
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.