New feature directions that are not on the current ROADMAP.md and have not been part of any release wave so far.
Positioning rule: most tables run their sessions in Foundry VTT. CampaignRepo should never compete with the VTT on live play — no initiative trackers, dice rollers, battle maps, or fog of war. CampaignRepo is the world layer: canon, memory, players, prep, and everything between sessions. The VTT runs the fight; the repo remembers what it meant.
And the standing non-negotiable: every feature stores its state in the campaign repo — portable Markdown, YAML, JSON, and media.
Effort key: S = days, M = about a week, L = multi-week.
Backlog item C on the main roadmap covers module push/pull mechanics. These go further: making CampaignRepo and Foundry feel like one product.
A Foundry module that surfaces the campaign wiki inside the VTT: a sidebar panel showing player-safe pages, searchable, with GM-only content visible to the GM. Players click an NPC token and read its public wiki page without leaving the scene. The single highest-leverage feature for a Foundry-first table.
After a Foundry session, pull the session's chat log, journal changes, and combat outcomes into a draft session report: who fought what, what was rolled on milestones, which handouts were shown. GM trims it into the record. Turns the VTT's exhaust into campaign memory automatically.
Foundry journals ↔ wiki pages with source IDs and hashes (the character re-import diffing already proves the pattern). Edit lore in either place; review conflicts in the review queue. Ends the copy-paste tax between prep tool and table tool.
Push a CampaignRepo map (image + pins) to Foundry as a scene with notes, and pull a Foundry scene image back as a wiki map. Pins become scene notes and vice versa. Prep the world in the repo, play it in the VTT.
The VTT owns the four hours of play; CampaignRepo owns the other six days.
Draft a player-safe recap from the session report (or the 1.2 harvest) and page changes since last session; GM edits, then it posts to the portal. Read it aloud at the top of the next Foundry session.
Availability polls, a confirmed next-session banner on the portal and campaign home page, iCal feeds, and attendance history on the session record. The most-requested quality-of-life feature of any real table, and entirely outside the VTT's scope.
Players submit downtime actions (carousing, crafting, faction work, healing) from the portal into the review queue; approved actions post to the timeline and can advance clocks. Play continues between Foundry sessions without the GM running it all by group chat.
First-class progress clocks and faction agendas (wiki/factions.yaml): each
faction gets goals with tick conditions; a "world turn" button advances chosen
clocks and drafts consequence events onto the timeline. The living-world
engine the VTT has no concept of.
Per-player journal space in the portal (visible to that player + GM), stored
under wiki/journals/<player>/. Plus GM "whisper handouts" — reveal a page or
secret block to one named player rather than a group.
A "my character" home in the portal for each player: their sheet, journal, inventory, relationships, arc notes, and the secrets they know, in one place. Everything already exists as scattered pieces; this is the assembly. The GM sees every hub; each player sees their own.
Features only a git-backed platform can do — the moat no VTT can cross.
Surface git branches as "what-if" timelines: branch the campaign at a decision point, explore an alternate canon, diff the two worlds, merge back what survived. Time-travel arcs, parallel parties, and planning sandboxes fall out of git for free; the work is the UX.
Multiple campaigns subscribing to one shared setting repo: shared lore appears read-only in each campaign with a propose-change flow back to the source (the fork-proposal machinery generalized). West-marches leagues and living settings become native — even when each table plays in its own Foundry world.
Tag a commit as a named canon snapshot ("End of Book One") and let the public site serve a chosen snapshot instead of head. Readers see stable canon while the table plays ahead of it.
A generated in-world newspaper or rumor digest assembled from recent events and faction turns, published to the portal each in-game week. A delightful player-facing artifact that keeps the world alive between Foundry nights.
A phone-first capture surface (building on the new mobile chrome): jot a note, snap a photo of a sketch, or record a voice memo mid-session — even while the main screen is busy running Foundry. Everything lands in an inbox for later filing; unfiled items nag gently on the campaign home page.
Record or upload session audio (most Foundry tables are on Discord voice anyway), transcribe it, and run entity extraction against the wiki: unknown proper nouns become draft pages in the review queue, known ones get timeline mentions. The single largest reducer of GM bookkeeping; gated on a practical speech-to-text path (local Whisper or a configured API).
Styled, printable in-world documents from markdown templates: letters, wanted posters, ship manifests, newspaper clippings — themed by the campaign's genre theme, exported to PDF or pushed to Foundry as journal handouts via the bridge.
Compile the wiki (or a manuscript) into a finished artifact: a print-ready PDF world book with cover, table of contents, cross-reference index, and the campaign's theme — plus an EPUB codex players can read on an e-reader. Manuscripts already stitch pages into chapters; this is the bindery.
Photograph handwritten session notes or an old campaign notebook; OCR them into draft pages in the review queue, with wiki-link suggestions for names the search index already knows. Completes the capture story (4.1/4.2) for the GM whose real campaign archive is a stack of spiral notebooks.
AI portrait and scene generation with a consistent per-campaign art style: the campaign defines a style brief once (genre, palette, medium), every generated NPC portrait or location vista honors it, and results land in the media manager as drafts for approval. Ends the "every portrait looks like a different artist" problem.
Webhook digests (session scheduled, page approved, recap posted) plus a slash-command bot that answers lore questions from the campaign's search index. Discord is where Foundry tables already live between sessions; MCP tools already define the query surface.
Share template packs and demo kits as installable git repos: a community index, one-click install into a campaign, attribution kept. The public gallery proved the publishing model; this extends it from worlds to tooling.
GM-only insights: which pages players actually read, most-linked NPCs, orphaned plot threads, and per-PC spotlight balance across sessions. Computed from data already in the repo — no tracking beyond the app's own usage.
Externalize UI strings and ship the first non-English locale. Campaign content is already language-agnostic markdown; only the chrome needs work.
The GM's real job between sessions is remembering: who knows what, which threads are live, whether the world still adds up. These make the repo do the remembering.
A first-class record of who knows what: every :::gm block and named secret
group gets a reveal history — revealed to whom, in which session, by what
means. The GM view answers "does Elena know about the cult yet?" instantly;
flipping a secret to revealed posts it to the timeline. Builds directly on the
existing visibility groups.
Track narrative threads as repo data: a thread has a seed ("the merchant's odd coin, session 3"), escalations, and a payoff state (unfired / building / paid off / abandoned). A GM dashboard surfaces unfired Chekhov's guns and threads gone quiet for N sessions. Quests track tasks; this tracks meaning.
An on-demand AI pass over the wiki that hunts contradictions: mismatched dates, characters alive after their death page, allegiances that changed without an event, name-spelling drift. Findings arrive as review-queue items with suggested fixes, never silent edits. The graph health checks catch broken structure; this catches broken story.
The world map as the party knows it: regions, pins, and routes are marked discovered as the party learns them, and the portal map shows only that. Not fog of war — no live play, just knowledge state between sessions, advancing when a session report or reveal says so.
Recorded so they don't creep back in:
- Initiative / encounter / combat trackers
- Dice rollers and roll logs
- Battle maps, grids, tokens, fog of war
- Live GM screens and in-session automation
- Rollable-table play mechanics (authoring tables as content is fine; rolling them live is the VTT's job)
If a table doesn't use a VTT, the answer is the theater-of-the-mind features above (recaps, journals, handouts, clocks) — not a half-VTT inside the wiki.
- The Loop Wave — recaps (2.1), scheduling (2.2), player journals (2.5), character hub (2.6), broadsheet (3.4). Small pieces, immediate weekly payoff, zero Foundry overlap.
- The Memory Wave — reveal ledger (6.1), plot threads (6.2), consistency sweep (6.3), knowledge map (6.4). The repo starts doing the GM's remembering; everything builds on data already in the wiki.
- The Bridge Wave — post-session harvest (1.2), scene/map handoff (1.4), then two-way journal sync (1.3) and the wiki-in-Foundry module (1.1).
- The World Wave — downtime actions (2.3), faction clocks (2.4), canon snapshots (3.3).
- The Canon Wave — alternate timelines (3.1), shared-world canon (3.2).
- The Reach Wave — Discord (5.1), quick capture (4.1), handout designer (4.3), world book export (4.4), notebook OCR (4.5), art pipeline (4.6), exchange (5.2), analytics (5.3), transcription (4.2), localization (5.4).