Skip to content

Campaign Management

Everything Between Session Zero and the Final Boss

Encounters, sessions, scheduling, real-time party monitoring, homebrew creation — all connected and all in one place.

You’ve been building your GM toolkit from spare parts.

A spreadsheet for encounters. A Discord bot for scheduling. A shared doc for session notes. A separate VTT for maps. A PDF for adversary stats bookmarked across twenty tabs. Every tool solves one problem and creates two more.

Curses! was built by a GM who did exactly that, got frustrated, and decided to build the system that should have existed. Everything on this page lives in one integrated platform.

Campaign Setup

Create, Invite, Play

Create a campaign, get a shareable invite link, and send it to your players. When they join, their characters link automatically — no manual roster management, no copy-pasting character IDs.

The party overview dashboard gives you read access to every player’s character sheet. See their loadout, their domain cards, their current HP — all from your GM view. Real-time WebSocket connections keep everything synchronized from the moment they join.

ccb.curses.show
Campaign dashboard showing party roster with linked character sheets, invite link, and real-time WebSocket connection status

Encounter Design

Encounters That Build Themselves

The full SRD adversary catalog — every creature, filterable by type, tier, and difficulty — with inline stat blocks rendered directly in the encounter designer. No switching tabs. No cross-referencing PDFs. Pull adversaries into your encounter, set quantities, and stage your fight.

Then layer in the environment system: activatable environmental features that cost Fear, add battlefield conditions, and require player interaction. The environment isn’t set dressing — it’s a mechanical participant in the encounter.

When session time arrives, the encounter you designed becomes your live combat tracker. Per-adversary HP tracking, condition management, and threshold monitoring — all on the same screen you used to build it. The prep-to-play pipeline has zero handoff.

Technical Specs

Adversary catalog
Full SRD
Filter dimensions
Type · Tier · Difficulty
Stat blocks
Inline rendered
Environments
Activatable features
Live tracking
HP · Conditions · Thresholds
Mode
Build → Run (same screen)
ccb.curses.show
Encounter designer console showing adversary catalog sidebar with type/tier/difficulty filters, staged adversaries with inline stat blocks, and environment features panel

Session Tools

Your Campaign’s Memory

Session logs capture everything that matters: lore reveals, player decisions, NPC introductions, and unresolved threads. Every entry is searchable, so “what happened with that NPC three sessions ago?” is a question you can actually answer in seconds.

Scheduling lives in the same place. Set session dates with player availability coordination, so the group stays coordinated without leaving the app. No more “when works for everyone?” threads in Discord that spiral into fifty messages.

ccb.curses.show
Session log interface showing structured entries for lore reveals, NPC introductions, player decisions, and unresolved threads — with full-text search

Live Session

The Helm

The Command HUD is your real-time party dashboard. HP percentage, Stress levels, armor slot status, Hope count, and active conditions for every player at the table — color-coded by danger state (healthy → wounded → critical → down) and sorted by who needs attention most.

Tap any element on a player’s sheet to ping it — their screen scrolls directly to it with a gold highlight animation. Send roll requests that pre-populate the player’s dice panel with the correct dice pool. Trigger forced critical rolls for those dramatic story moments where the dice need to cooperate. See every dice roll from every player in real time.

Technical Specs

Party vitals
HP% · Stress · Armor · Hope · Conditions
Danger states
Healthy → Wounded → Critical → Down
Ping system
Tap → Scroll + gold pulse
Roll requests
Pre-populated dice pool
Forced crits
Dramatic moment trigger
Dice broadcast
All rolls, real-time
ccb.curses.show
GM Command HUD showing party vitals dashboard with HP%, Stress, armor, Hope, and conditions per player — color-coded by danger state with ping and roll request controls

Real-Time Infrastructure

Every Table, Connected in Real Time

Every player and the GM share a live WebSocket connection. Dice rolls broadcast to everyone in the campaign. GM pings scroll directly to specific sheet elements on a player’s screen. Roll requests stage into the player’s dice panel automatically. No one is ever out of sync.

This is the invisible infrastructure that makes everything else feel seamless. When the GM sends “roll Agility,” the player sees it in their dice panel, pre-loaded with the correct dice pool. When someone rolls a critical hit, the entire table sees it at the same moment. When a player’s HP changes, the Command HUD updates instantly.

WebSocket-syncedSub-second latencyCampaign-wide broadcast
ccb.curses.show
Diagram showing WebSocket connections between GM and players — dice broadcasts, pings, roll requests, and stat updates flowing in real time

Homebrew Workshop

GM Only

Forge Your Own World

Structured creation forms for every content type: custom classes, subclasses, domains, weapons, armor, loot tables, ancestries, and communities. Live markdown preview shows exactly what your content will look like before you publish it.

Source badges distinguish SRD content from homebrew — so your players always know what’s official and what’s custom. Your homebrew creations appear alongside SRD content in the character builder, validated against the SRD structure so everything plays nicely together. Creative freedom with guardrails.

Technical Specs

Content types
Classes · Domains · Weapons · Armor · Loot · Ancestries · Communities
Preview
Live markdown
Source badges
SRD vs. Homebrew
Validation
Against SRD structure
ccb.curses.show
Homebrew workshop showing a custom class creation form with live markdown preview and source badge system

Run Your Table Like a Pro

$5/month. Cancel anytime. Your players join free.