81 lines
1.8 KiB
Markdown
81 lines
1.8 KiB
Markdown
# Scrollsmith
|
|
|
|
[](https://ci.keligrubb.com/repos/2)
|
|
|
|
Scrollsmith is a Node.js tool for generating Dungeons & Dragons one-page dungeon PDFs automatically. It uses an Ollama LLM server to create dungeon content, proofreads and refines it, then formats it into a structured PDF with maps, rooms, encounters, treasure, and NPCs.
|
|
|
|
---
|
|
|
|
## Features
|
|
|
|
- **Three-pass dungeon generation**:
|
|
1. Draft: initial dungeon ideas
|
|
2. Refine: proofread, add flavor, fill in vague details
|
|
3. JSON conversion: output strictly valid JSON for PDF generation
|
|
- Automatically generates a PDF named after the dungeon title
|
|
- PDF layout includes three columns: map & hooks, rooms, encounters & treasure & NPCs
|
|
- Easy to integrate with a local Ollama server
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- Node.js 22+
|
|
- Ollama server running and accessible
|
|
- Nextcloud (optional) for PDF uploads
|
|
- `.env` file with:
|
|
|
|
```env
|
|
OLLAMA_API_URL=http://localhost:3000/api/chat/completions
|
|
OLLAMA_API_KEY=your_api_key_here
|
|
````
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
git clone https://github.com/yourusername/scrollsmith.git
|
|
cd scrollsmith
|
|
npm install
|
|
```
|
|
|
|
---
|
|
|
|
## Usage
|
|
|
|
1. Make sure your Ollama server is running and `.env` is configured.
|
|
2. Run:
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
3. A PDF will be generated automatically. The filename matches the dungeon title.
|
|
|
|
Optional: update the map path in `index.js` if you have a local dungeon map.
|
|
|
|
---
|
|
|
|
## Example Output
|
|
|
|
* `the-tomb-of-shadows.pdf`
|
|
* Three-column layout:
|
|
|
|
* Column 1: Map, Adventure Hooks, Rumors
|
|
* Column 2: Keyed Rooms
|
|
* Column 3: Encounters, Treasure, NPCs
|
|
|
|
---
|
|
|
|
## Notes
|
|
|
|
* Make sure your Ollama server is accessible and API key is valid.
|
|
* Dungeon generation can take a few minutes depending on your LLM response time.
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
PROPRIETARY
|