📜 Campaign Overview
📅 Recent Sessions
No sessions recorded yet
D&D Campaign Manager
Creates a new shared campaign with a 6-letter code you can give to players.
Reconnect to your existing campaign as the Dungeon Master. Enter your campaign code and DM password. (If you never set a DM password, leave it blank.)
New here? Enter your character name + a PIN you'll remember. Returning? Use the same name + PIN to log back into your character. Get the code from your DM.
Single-device mode. Data stays in this browser. You can export/import JSON to back up or share.
FIREBASE_CONFIG near the top of this file's JavaScript. How?
firebaseConfig snippet with apiKey, authDomain, projectId, etc. Copy it.FIREBASE_CONFIG. Paste your config values in. Save.Security note: Test mode allows anyone with the campaign code to read/write. Fine for friends, but switch to authenticated rules before sharing publicly. I can help with that later.
No sessions recorded yet
No shops yet. Tap "Manage Shops" to create one.
Paste a JSON array of recipe objects (name, craft, baseDC, material, materialQty, kit, notes). Ask Claude: "give me smithing/leatherworking/alchemy recipes as a JSON array."
Put the number of uses straight from D&D Beyond (e.g. Breath Weapon = your proficiency bonus). Pick which rest brings it back.
Set the maximum number of slots you have at each level (from your character sheet). Leave 0 for levels you don't have.
1 pp = 10 gp · 1 gp = 10 sp · 1 sp = 10 cp
Paste one spell or a list of spells. Ask Claude: "Give me Hex as paste-ready JSON" or "Give me all the basic Warlock cantrips as a JSON array".
Paste one feature or a JSON array of features.
Give this shop a keeper and a greeting players see when they enter.
Create a shop for a city. It stocks every item from your Items and Treasure lists. (More controls — price modifier, inventory level, haggling — come in the next update.)
Paste one item or a JSON array of items.
Paste one NPC/monster or a JSON array. Fields like name, hp, ac, cr, abilities, skills, damage, and desc fill automatically.