DND.chat Docs
The Products

Cards & the Shared Compendium

The card data model every DND site shares — anatomy of a card, the stats convention combat reads, the read-only SRD library, and how Invoke mints a card.

A card is the atom of the whole DND family. The same card shape flows through the DNDCards.com board, the DND.chat tavern, and the DNDWar.com battlemap — one row in one shared database, read everywhere. This page is the reference for that shape: what a card is made of, the convention combat reads to find AC and HP, the read-only compendium of official content, and the Invoke action that mints a compendium entry onto your board. Build a card once on DNDCards, and the rest of the family knows how to use it.

Anatomy of a card

Every card carries the same fields whether it's a goblin, a +1 longsword, a tavern, or a quest hook. The combat-relevant ones are:

FieldWhat it holds
categoryOne of nine kinds (see below) — sets the sigil, accent, and how combat treats it
title / subtype / hintThe name, a short type line, and a one-line tease
stats[]An array of { label, value } rows — the load-bearing convention combat reads
flavorLonger descriptive text shown on the card back
aliveRenders a crimson glow on the card
revealedWhen false, players see an obscured card until the DM reveals it
revealTriggerAn optional note for when to flip a hidden card
artUrlThe card art
sourceWhere the content came from (drives the card-back credit line)
srdIdA link back to a compendium row, when the card was Invoked
monsterData / itemDataJSONB combat payloads (below)
characterIdSet on player cards, linking the card to a character sheet
positionWhere the card sits on its board list

The nine categories are NPC, Player, Spell, Location, Monster, Item, Class, Quest, and Note. Two behave specially: Player cards are never hand-authored — they're minted only by linking a character (see the Character Builder walkthrough). And Quest cards default to revealed: false, so players don't stumble onto hooks the DM hasn't sprung yet.

The stats convention

stats[] is not just for display — it is how the combat engines on DNDWar and DND.chat find a creature's numbers. Combat reads AC, HP, and Challenge by scanning the stat rows by label and taking the leading integer of the value. A row labeled HP with value 7 (2d6) yields 7 hit points; a row labeled AC with value 15 (leather) yields AC 15.

Because of this, the compendium seeds canonical labels so combat can always find them. When content is seeded into the library, it writes rows with labels like:

AC, HP, Challenge, Speed, School, Level, Range, Rarity, Type

This is the contract that makes "build once, use family-wide" work: a card with properly labeled stats drops onto the DNDWar board as a token with its AC and HP already filled in, no manual entry. (When a stat is missing, combat falls back to a null value and the DM fills it in — see the AC caveat in the Character Builder guide.)

monster_data and item_data

Beyond the human-readable stats[], two JSONB payloads carry the machine-readable combat data the engines parse into rollable actions.

  • monster_data is the full statblock — actions, saves, ability scores, legendary actions. The combat engine parses monster_data.actions into rollable attacks (to-hit and damage). When a monster has no parseable statblock, combat falls back to a named-creature weapon table or a CR-scaled generic attack.
  • item_data is a magic item's combat hooks — an attack rider (a bonus to hit and damage) plus an optional save effect. The Homebrew Forge populates item_data, and the VTT reads it when present.

Both feed the same combat resolution path on DNDWar and DND.chat, which is why a properly built monster or item works identically in text chat and on the battlemap.

The SRD library (srd_cards)

The compendium is a shared, read-only library of official open-content and OGL material. It is seeded from dnd5eapi.co — roughly 4,500 spells, monsters, and magic items — with open5e backfill, all marked with the core source string SRD 5.1.

The library also carries content from OGL expansions, and each card's back shows a credit line drawn from its source value — Humblewood, Griffon's Saddlebag, Kobold Press's Tome of Beasts, and others. The compendium is world-readable: official entries (those with no owner) are visible to everyone, even before sign-in.

This single library is what every site reads. DND.chat's /summon command and DNDWar's Invoke picker both pull from the same srd_cards rows the DNDCards compendium curates.

Invoke

Invoke is the action of minting a compendium entry into an owned card on your board. The button literally reads Invoke. On DNDCards you reach it from a board via Add Card, then the Invoke tab: pick a category chip, toggle which sources to search (it defaults to SRD 5.1 only), type a name, and click a result. The label changes to "Adding…" and the card lands on the list.

The minted card is a normal, owned card on your board, but it keeps its srdId and source, linking it back to the compendium it came from. Invokeable categories are Spells, Items, and Monsters.

Invoke is not /summon

On DNDCards and DNDWar, the action that mints a compendium card is Invoke. On DND.chat, the chat command that conjures a card onto the table is /summon. They are different surfaces of the same idea — there is no /summon command on DNDCards. See the Slash Command Reference for the chat side.

Official vs homebrew

A card is official if it has an srdId, or if its source is SRD 5.1 (or any source beginning with SRD). Official cards are not freely editable — they're tethered to the compendium so the library stays canonical.

To change an official or Invoked card, Clone as homebrew. The clone clears the srdId, sets source to Homebrew, and prefixes the title with Copy of — giving you a fully editable card of your own. To author original compendium content from scratch instead, use the Homebrew Forge.

A caveat worth knowing

When you Invoke an official magic item, the standard create path copies its monster_data but not its item_data. In practice that means an Invoked official magic item's combat rider (its attack/save hooks) isn't carried onto the new card — item_data is populated by the Homebrew Forge and read by the VTT when present. If you need a magic item's combat effects to fire in a fight, forge it in the Homebrew Forge rather than relying on an Invoked official copy.

Where to go next