Load the demo, learn the loop, then replace the sample material with your own campaign.
The Crimson Veil Demo
Installs a complete starter campaign with 11 linked scenes, four branch paths, ward tags,
six scene templates, a playable manor map, and sample Threshold/Hearth records for screenshots.
What the demo proves
A buyer can see campaign setup, ward enforcement, the player-facing scene gate, the map, dice, and Hearth closure without writing anything first.
What to customize
Replace names, ward choices, Banished Names, scene text, map events, and screenshots before using it for a private table.
What to package
Ship this folder with the root README, roadmap, demo walkthrough, Compact docs, and every file under engine, demo, dice, map, player, and admin.
Guided First Session
Load or create a campaignUse the demo first, or create your own campaign from the Campaigns panel.
Set the CompactReview hard-gated wards, Banished Names, Hallowed Ground, and Veiled Ground before scene authoring.
Seal the ThresholdOpen the Pause surface and save tonight's check-in before starting the session.
Open the tableStart the campaign, open Player View, and use the map or dice panels as needed.
Close with HearthAfter the last scene, route to the Hearth and seal the session cleanly.
Campaigns
Create and manage your campaign worlds.
Scene Editor
Select a campaign to manage scenes.
Scene Templates
Reusable attribute & narrative blocks. Apply to any scene.
Active Session
Control the live game. Choose branches. Advance scenes.
Live Table
Command center for roster, readiness, player requests, chat, activity, timeline, and exports.
Connection
Remote sync is off.
Players
No table joined.
Pending
No pending actions.
Dice Roller
Roll dice, apply modifiers, post results to Discord.
—
Click a die to roll
ROLL HISTORY
No rolls yet.
Session Log
Full record of this session's choices and rolls.
Discord Integration
Post scene events and dice rolls to your Discord server automatically.
Webhook Setup
In your Discord server: Channel Settings → Integrations → Webhooks → New Webhook → Copy URL
Status:
Not configured
Post Custom Message
Auto-Post Settings
Settings
Global configuration for the Grimoire engine.
Data Management
Backups include campaigns, templates, maps, active sessions, Thresholds, Ember signals, and Hearth seals.
Live Multiplayer
Table codes, player readiness, chat, action approvals, activity, and recap exports now live in the Warden command center.
Remote Multiplayer
Create a table code on the VPS backend, then share that code with the player. Sync includes scenes, maps, Compact records, and Intimate Table messages.
Remote sync is off.
Table Control Room
Login as Admin or Warden to manage tables.
Table Audit
Accounts
Checking account setup...
Invite Link
Table Flow
No spotlight set.
Rooms
Session Checkpoints
No resume point loaded.
Warden Action Queue
Activity Feed
Session Timeline
Table Chat
Table Chat
About
Velvet Grimoire Campaign Engine v1.0
Self-hosted • No AI required • Browser-local by default; Discord sends data only when configured
DM Admin Panel — Open Player View → Open Map Editor →
New Campaign
PROTAGONIST
ANTAGONISTS (0/5)
Up to five antagonists per campaign, all controlled by the Warden for now. Each will be selectable from the scene editor in a future pass.
🔒 WARD ACKS
Per TAGS.md §II — these element wards are hard-gated. Tick only those the protagonist has explicitly consented to appear in scenes. Any scene using an unacked ward is refused at save time. You can revise this later by editing the campaign.
⛔ BANISHED NAMES
Protagonist-level hard limits. Any scene carrying one of these wards is refused at save time.
✦ HALLOWED GROUND
Content that may exist in lore but never appears on page. The default floor is always preserved.
🌫 VEILED GROUND
Content that can appear only impressionistically. Matching scenes are forced to suggested intensity.
CAMPAIGN TAGS
New Scene
ATTRIBUTES
Tension5
Intimacy3
Danger5
DC THRESHOLDS (d20 roll needed)
Fight14
Flight8
Fawn4
Freeze5
BRANCHES
✦ WARDS
Every scene carries wards: *what* is present (elements), *how present* (intensity), *how framed* in fiction (frame).
Intensity ward — narration register
Frame ward — how the fiction frames it
Element wards — what is present
🔒 hard-gated wards require an explicit ack from the protagonist owner at campaign setup — per TAGS.md §II.
SCENE TAGS
Free-text tags for your own notes — not ward-enforced.
New Template
DEFAULT NARRATIVE BLOCKS
DEFAULT DC
TEMPLATE TAGS
⛔ Retire a Banished Name
Banished Names are the protagonist's hard limits. Retiring one means this ward
could appear in future scenes. This cannot be undone from this screen —
re-add the name at any time to reinstate it.