Nimble TTRPG AI Rule Reference Tool
The Final (for now) Result
I built a hosted searchable web app that uses Python and Flask to:
- Ingest and chunk PDFs
- Run fast keyword and fuzzy searches
- Display results in an easy-to-read web UI
- Highlight relevant matches
- Provide citation-style links back to the original PDF section
Itâs not a full chatbot or vector-powered retrieval systemâit's deliberately simpler and faster. I wanted something my group could use on the fly during sessions, with no money down.
Hosted on Render: Nimble Rules Search
Give it a bit to spin up! Then use password: Hopscotch
Poke through my build here, too, if you'd like: Nimble Rules - GitHub
What I Set Out to Build
So with my long-running online TTRPG group, we play using a game system that's pretty new called Nimble. Unlike other Table-Top Role Playing Games like Dungeons and Dragons, there aren't many tools or references made for this one. Since we are all learning the system together, I wanted an easy way to look up specific rules from the Nimble rules PDFs during gameplayâwithout constantly flipping through 100-page rulebooks or opening the different files and wondering which ones my answer would be in. I also wanted to make it lightweight, private for just my group's use, and hostable for free, without needing to train an expensive AI model or rely on external APIs.
Options I Explored (and Why I Didnât Use Them)
Tool/Option | Why I Looked at It | Why I Didnât Use It |
---|---|---|
ChatGPT API | Natural language support | $$$ and not self-hosted |
GPT4All | Local LLM inference | Too heavy for this use case |
Pinecone/Weaviate | Vector DB for semantic search | Overkill for keyword-based queries |
LangChain | Full retrieval pipeline | Added too much complexity |
ChatPDF / PDF.ai | Fast for individuals | Not private or customizable or free |
I realized I didn't actually need natural language processingâkeyword and fuzzy matching was enough. The goal wasnât âconversational,â just fast, accurate rule recall. I might expand on this in the future, but as a starting tool, I wanted to simplify my goal here.
Tools and Tech Used
- Python (core script + backend logic)
- Flask (lightweight web server)
- PyMuPDF (
fitz
) for PDF parsing - FuzzyWuzzy (for fuzzy matching)
- HTML/CSS (basic templating)
- VS Code for development
- Render.com (free tier deployment)
- ChatGPT for vibe coding and learning
What I Learned
This was one of my first practical experiments applying lightweight AI techniques for personal use. I learned a ton about:
- Keeping scope tight
- Deploying apps (I had never uploaded to GitHub before!)
- Creating a front-end interface
- Chunking and adjusting weighting
- NLPs in general, what's out there and what they can do
Updates I'm Considering
I might like to update this project with features like:
- Natural Language Processing for search
- A streamlined way to upload new PDF versions
- A "clear search" option
- A front-end that's actually designed
- Obviously Nimble won't be happy to give their PDFs away for free via my search tool; I wonder if I can figure out a way to make it a searchable tool anyone beyond my group can use but not put their IP at risk?
Have you built something similar? How did you do it differently? Whether it's another PDF reference tool or just another tool for a TTRPG like Nimble, I'd be super curious to take a peek and learn what worked for you!