TTRPG Tools: Publish is a new companion plugin for the TTRPG Tools plugins. It lets you publish your pinned maps to Obsidian Publish! Very easy to use and a fantastic way to share your world with your players!
This video focuses on TTRPG Toools: Maps.
You need to see this!
Plugin Link: https://github.com/Jareika/TTRPG-Tool...
Currently needs to be installed via the BRAT plugin.
00:00 Intro
03:04 Pre-Reqs
09:44 Install Plugins and Make a Map
14:57 Publish A Map
27:18 Publish A Layered Map
29:50 Rambling Thoughts
32:38 Jareikas Showcase
34:39 Outro
---
Here’s a detailed outline of the video “TTRPG Tools: Publish - Publish Pinned Maps!”[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 1. Introduction
The creator opens by framing worldbuilding maps as something people often make but cannot easily share. He positions this plugin as a solution for publishing pinned maps from Obsidian to a live website, especially for TTRPG worldbuilders.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
complete Tools document
https://ttrpg-tools-obsidian.org/z_Attachments/Welcome
## 2. What the plugin does
The video introduces **TTRPG Tools: Publish** as a companion plugin for TTRPG Tools: Maps. Its main purpose is to publish pinned maps to Obsidian Publish, making interactive world maps available to others.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 3. Working example
He demonstrates a live example on his own site, showing a learning-journey page built as a map with hidden pins layered over an image. He explains that hovering the invisible pins reveals linked notes, turning the image into an interactive published map.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 4. Requirements and setup
He explains that this setup requires Obsidian Publish, a custom domain, and Cloudflare configuration for the custom domain to work properly. He also notes that the plugin uses custom CSS and JavaScript, which is part of why the custom-domain setup matters.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 5. Installing beta plugins
Because the TTRPG Tools plugins are not yet in the normal community plugin list, he shows how to install them using BRAT, a beta-plugin manager. He then walks through finding the GitHub repository URLs and adding both the maps plugin and the publish plugin.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
TTRPG Map:
TTRPG Publish:
https://github.com/Jareika/TTRPG-Tools-Publish
## 6. Creating a map
After installation, he creates a new map in Obsidian using TTRPG Tools: Maps, selecting a Baldur’s Gate map image and inserting it into a note. This section is meant to show that map creation itself is straightforward before moving on to publishing.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 7. Adding pins to the map
He adds markers to the map, links them to notes, and demonstrates options like tooltips, zoom visibility, icons, colors, and layer placement. This shows how the map becomes interactive before export.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 8. How publishing works
He explains that the publish plugin generates and updates files like `publish.js`, `publish.css`, and asset/marker notes needed for the published site. He emphasizes reading the documentation because the plugin depends on a specific publish workflow and external services.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 9. Storage and configuration details
A key technical requirement is that marker storage must be JSON-based and stored beside the image file, not in note-based storage. He also mentions setting the library path correctly so the publish plugin can find the icon and collection data it needs.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 10. Marking content as publishable
He shows an optional front-matter flag that can mark notes as publishable, which limits the plugin to only those notes instead of scanning the whole vault. This is presented as a practical optimization for larger vaults.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 11. Running the publish command
He runs the “maps prepare publish runtime plus data notes plus assets” command, which generates the files that need to be published. Then, in Obsidian Publish, he adds the linked files and publishes them so the map appears on the website.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 12. Troubleshooting and retesting
When the first attempt doesn’t fully link the expected notes, he troubleshoots live by updating note links and rerunning the prepare/publish process. The point here is that the system is iterative and can be adjusted if the first setup isn’t perfect.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 13. Layered maps
He tests a second example with multiple image layers, showing that you can swap between map layers even after publishing. This section broadens the use case beyond a single static map and shows how regional or zoomed-in views can be published too.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 14. Broader possibilities
He reflects on how powerful the tools are for worldbuilding, noting that maps can link to deeper notes and create a hierarchy from world map to region map to city map and beyond. He also suggests the tool may overlap with or replace older solutions like Leaflet.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 15. Showcase and extra experiments
The video ends with a showcase of examples from the plugin author, including a stylized Sword Coast page, a dice-tray-like setup, and even a character-sheet-style experiment using the map system. These examples are used to illustrate that the plugin is more flexible than just “maps with pins.”[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
## 16. Closing thoughts
He closes by praising the plugin author and encouraging viewers to explore the community, share their own worlds, and ask for help in the Obsidian TTRPG Discord. The final message is that publishing pinned maps from Obsidian is now practical, impressive, and worth trying.[[youtube](https://www.youtube.com/watch?v=jektLQJIZS0)]
Would you like this turned into a shorter chapter-by-chapter summary or a bullet outline with timestamps?
---
# TTRPG Tools - Publish (Obsidian Plugin)
[](https://github.com/Jareika/TTRPG-Tools-Publish#ttrpg-tools---publish-obsidian-plugin)
**TTRPG Tools: Publish** is a helper plugin for people who publish their vault as a website (Obsidian Publish). It prepares content from:
- **TTRPG Tools: Maps (Zoom Map)** so your interactive maps can be displayed on your Publish site.
- **TTRPG Tools: Timeline (Simple Timeline)** so timeline code blocks can be rendered on your Publish site.
This plugin is intentionally **separate** from TTRPG Tools: Maps/Timeline:
- users who don’t use Publish don’t need the extra runtime and workflow,
- it keeps the Maps and Timeline plugins smaller,
- it creates room for Publish support for other tools without bloating the main plugins.
## Example page with tutorial videos and more
[](https://github.com/Jareika/TTRPG-Tools-Publish#example-page-with-tutorial-videos-and-more)
[https://ttrpg-tools-obsidian.org/](https://ttrpg-tools-obsidian.org/)
## What it does
[](https://github.com/Jareika/TTRPG-Tools-Publish#what-it-does)
When you run one of the **Prepare** commands, the plugin:
1. **Installs/updates Publish runtime**
- Writes/updates a generated **Publish runtime block** into:
- `publish.js`
- `publish.css`
- It does _not_ delete your existing content in those files; it only replaces the section between the markers:
- `BEGIN TTRPGTOOLS_ZOOMMAP_PUBLISH` … `END TTRPGTOOLS_ZOOMMAP_PUBLISH`
2. **Generates Publish data notes (maps / timeline)**
- Converts internal data into **publishable Markdown notes**:
- `ZoomMap/publish/library.md` (icons + collections + travel rules packs)
- `ZoomMap/publish/markers/m-<hash>.md` (one per markers.json)
- `Timeline/publish/timelines/t-<hash>.md` (one per timeline name; contains a JSON payload used by the Publish runtime)
3. **Generates assets manifest notes**
- Creates:
- `ZoomMap/publish/assets.md`
- `Timeline/publish/assets.md`
These notes link to:
- all data notes,
- all maps and asset files referenced by your published maps (bases, overlays, frames, stickers, baked SVGs, icon files, …).
- all notes and internal images referenced by published timeline entries.
## Requirements
[](https://github.com/Jareika/TTRPG-Tools-Publish#requirements)
- Obsidian Publish
- **Custom domain enabled** (required by Obsidian Publish to use `publish.js`)
- TTRPG Tools: Maps (Zoom Map) installed and used in your vault (optional)
- TTRPG Tools: Timeline (Simple Timeline) installed and used in your vault (optional)
### Storage requirement (important)
[](https://github.com/Jareika/TTRPG-Tools-Publish#storage-requirement-important)
Publish support currently requires **JSON marker storage** (the default):
- marker data must be available as `<image>.markers.json`
If you use `storage: note` (inline marker storage), this plugin cannot export those maps yet.
## Installation
[](https://github.com/Jareika/TTRPG-Tools-Publish#installation)
Manual install (Obsidian community plugin):
- Copy the compiled plugin folder into:
- `<vault>/.obsidian/plugins/ttrpg-tools-publish/`
- Reload Obsidian
- Enable the plugin in **Settings → Community plugins**
## Setup (recommended)
[](https://github.com/Jareika/TTRPG-Tools-Publish#setup-recommended)
### 1) Use the default Zoom Map library path
[](https://github.com/Jareika/TTRPG-Tools-Publish#1-use-the-default-zoom-map-library-path)
In **TTRPG Tools: Maps** settings, set **Library file path** to wherever you store your icon/collection library, e.g.:
- `ZoomMap/library.json` (recommended default)
- or a custom path (also supported)
**Important:** TTRPG Tools: Publish will read the library JSON from the **TTRPG Tools: Maps setting** (library file path). If the file is missing, it will try to call the plugin to export it automatically.
### 2) Mark notes as publishable (optional, recommended)
[](https://github.com/Jareika/TTRPG-Tools-Publish#2-mark-notes-as-publishable-optional-recommended)
If you don’t want the plugin to scan your entire vault:
- add frontmatter to your published notes:
```yaml
---
publish: true
---
```
Then keep **Scan mode** = _Only publish: true notes_ in this plugin’s settings.
### 3) Timeline notes: required frontmatter
[](https://github.com/Jareika/TTRPG-Tools-Publish#3-timeline-notes-required-frontmatter)
For timeline entries, the plugin scans notes that contain:
- a start date (default key: fc-date)
- a timeline list (default key: timelines)
Example:
```yaml
---
publish: true
fc-date: 1165-03-01
fc-end: 1165-03-03
timelines: [Travelbook 1]
tl-title: Arrival in New York
tl-image: assets/my-image.png
tl-summary: |-
Leave two empty spaces before you start the summary.
---
```
Notes:
- fc-end, tl-summary, tl-image are optional.
- tl-image can be an external URL or an internal vault file link/path.
- Month names on Publish can be taken from the TTRPG Tools: Timeline (optional setting) or overridden in this plugin’s settings.
## Commands
[](https://github.com/Jareika/TTRPG-Tools-Publish#commands)
Maps:
- “Maps: prepare publish (runtime + data notes + assets)”
Timeline:
- “Timeline: prepare publish (runtime + data notes + assets)”
Both:
- “Prepare publish (maps + timeline)”
### Maps: one command (recommended)
[](https://github.com/Jareika/TTRPG-Tools-Publish#maps-one-command-recommended)
Run:
- **“Maps: prepare publish (runtime + data notes + assets)”**
Then in Obsidian Publish:
1. Open **Publish changes**
2. Select:
- `publish.js`
- `publish.css`
- `ZoomMap/publish/assets.md`
3. Click **Add linked**
4. Click **Publish**
`assets.md` is the “one-click selector” that pulls in all required files.
### Timeline: one command (recommended)
[](https://github.com/Jareika/TTRPG-Tools-Publish#timeline-one-command-recommended)
Run:
- “Timeline: prepare publish (runtime + data notes + assets)”
Then in Obsidian Publish:
1. Open Publish changes
2. Select:
- publish.js
- publish.css
- Timeline/publish/assets.md
3. Click Add linked
4. Click Publish
### Individual commands
[](https://github.com/Jareika/TTRPG-Tools-Publish#individual-commands)
You can also run these separately:
- Maps: Install/Update publish.js + publish.css
- Maps: generate publish data notes (library + markers)
- Maps: generate publish assets manifest note +- Timeline
- Timeline: generate publish data notes
- Timeline: generate publish assets manifest note
## What works on Publish
[](https://github.com/Jareika/TTRPG-Tools-Publish#what-works-on-publish)
### Maps
[](https://github.com/Jareika/TTRPG-Tools-Publish#maps)
The Publish runtime renders maps as read-only interactive maps:
- pan / zoom
- marker rendering (including layers visibility)
- base images + overlays + viewport frame
- drawings and pattern overlays (baked SVGs)
- swap pins (right click cycles the frame)
- ruler / measurement (local, read-only)
- text layers
Editing markers on Publish is not supported.
### Timeline
[](https://github.com/Jareika/TTRPG-Tools-Publish#timeline)
The Publish runtime renders timelines from pre-generated timeline data notes.
Supported code blocks on Publish:
Important:
- On Publish, timelines are not rendered by scanning your vault.
## Files generated / modified
[](https://github.com/Jareika/TTRPG-Tools-Publish#files-generated--modified)
- **Root of your vault** (Publish runtime):
- `publish.js`
- `publish.css`
- **Publish data folder** (default):
- `ZoomMap/publish/library.md`
- `ZoomMap/publish/markers/m-<hash>.md`
- `ZoomMap/publish/assets.md`
- `Timeline data folder (default):`
- `Timeline/publish/timelines/t-<hash>.md`
- `Timeline/publish/assets.md`
## Settings you might care about
[](https://github.com/Jareika/TTRPG-Tools-Publish#settings-you-might-care-about)
### Website
[](https://github.com/Jareika/TTRPG-Tools-Publish#website)
- Hover popover max width Controls the maximum width of Publish hover popovers (Page Preview) via generated CSS/runtime.
- Hide folders in publish navigation Lets you hide specific folders in the Publish navigation tree (purely visual; notes stay published and hover previews still work).
## Notes
[](https://github.com/Jareika/TTRPG-Tools-Publish#notes)
- The plugin avoids rewriting generated marker/library notes if the underlying JSON didn’t change, so Obsidian Publish won’t constantly recommend re-uploading unchanged files.
- The library JSON source path is taken from **TTRPG Tools: Maps → Settings → Library file path** (not hard-coded).
## Roadmap
[](https://github.com/Jareika/TTRPG-Tools-Publish#roadmap)
This plugin is intended as a shared “Publish bridge” for TTRPG Tools. Future versions may add more tools and more design options for Publish-rendered content.
## License
[](https://github.com/Jareika/TTRPG-Tools-Publish#license)
MIT