RoleCall Sync
approvedby rolecall.games
Sync your Published/ notes to a Role Call game. GM notes stay private. - This plugin has not been manually reviewed by Obsidian staff.
RoleCall Sync
An Obsidian community plugin that syncs your TTRPG campaign notes to a RoleCall game. RoleCall renders them on your campaign site — wikilinks and frontmatter are parsed there.
Requires a free https://rolecall.games account. The plugin pushes notes to a game you run there, authenticated by a per-game API token from that game's Plugins page (see Configure).
The one rule: Published/ syncs, everything else stays private
This plugin uploads only the notes inside your Published/ folder (configurable). Your GM/
notes — secrets, plans, spoilers — are never sent. The RoleCall server also enforces this: it
rejects any path outside the published root, so GM content can't reach it even by accident.
Don't rely on
%%comments%%or> [!secret]callouts to hide things inside a published note — they are not hidden. If it shouldn't be seen, keep it inGM/.
What it does
- Adds a Push published notes ribbon icon (cloud-with-arrow) and a command-palette action.
- On trigger, sends an incremental JSON batch of changed notes + embedded media to RoleCall, and deletes notes you've removed. Unchanged files are skipped (it remembers the last sync).
- Markdown notes become pages; media in
Published/becomes embeddable images.
What it does not do (yet)
- No automatic / background sync. You push when you want.
- No pulling content from RoleCall back into the vault. This is upload-only.
- No diff preview before pushing.
Install
From the community plugin directory (recommended)
- Open Settings → Community plugins → Browse.
- Search for RoleCall Sync, then Install and Enable.
Via BRAT (for pre-release builds)
- Install the BRAT community plugin and enable it.
- Open Settings → BRAT → Add Beta plugin.
- Paste this repository URL:
https://github.com/rolecall-games/rolecall-obsidian-sync(or your fork). - Enable RoleCall Sync under Settings → Community plugins.
Manually
- Download
main.jsandmanifest.jsonfrom the latest release. - Drop them into
<YourVault>/.obsidian/plugins/rolecall-sync/. - Reload Obsidian and enable the plugin under Settings → Community plugins.
Configure
Fastest path — Connect to RoleCall. Open Settings → RoleCall Sync and click Connect (or just hit the ribbon's push button with no token set). Your browser opens on rolecall.games showing the same code as the plugin — sign in or create a free account right there, pick the campaign this vault should publish to (or create one, prenamed after the vault), and approve. The token lands in the plugin by itself; nothing to paste. Connecting uploads nothing from your vault — the first push is its own explicit step.
Prefer to wire it by hand? Open Settings → RoleCall Sync and fill in:
| Field | What goes here |
|---|---|
| API base URL | https://rolecall.games (default). Change only if you self-host RoleCall. |
| API token | A personal token. See How to generate a token below. |
| Published folder | Published (default). Only notes inside this folder are synced. |
The token identifies which game receives the push — there's no separate Game ID setting. If you want to push to a different game, generate a token on that game's page and paste it here.
Easiest path: on your game's Plugins page, click Download starter vault. It gives you
a ready-made vault with the GM/+Published/ folders and this plugin already configured (token
baked in) — just install the plugin and push.
How to generate a token
- Sign in to RoleCall and open the game this vault belongs to.
- Go to the game's Plugins page.
- Click Generate token, give it a name like
Obsidian, and copy the token immediately — it's only shown once. - Paste it into the plugin's API token setting.
Push
- Click the cloud-with-arrow ribbon icon, or
- Open the command palette (
Cmd/Ctrl+P) and run RoleCall Sync: Push published notes.
You'll see Syncing published notes… while it runs and a summary like Synced: 3 added, 1 updated
on success (or Already up to date). On failure, the notice explains what went wrong (bad token,
out-of-date plugin, network).
Local development
git clone https://github.com/rolecall-games/rolecall-obsidian-sync
cd rolecall-obsidian-sync
npm install
npm run dev # watch-build to main.js
To test against a real vault, symlink the plugin into a throwaway vault:
ln -s "$PWD" "/path/to/TestVault/.obsidian/plugins/rolecall-sync"
Install the Hot Reload plugin in the test vault so changes to main.js reload automatically.
Production build:
npm run build
Releasing
- Bump
versioninmanifest.jsonand add a matching entry inversions.jsonmapping the new version to the minimum supported Obsidian version. - Tag the release on GitHub with the exact version (no leading
v), e.g.0.1.1. - Attach
manifest.jsonandmain.jsas individual release assets.
License
MIT © Framework and Fable LLC — see LICENSE.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.