<%* const title = ( tp.file.title === "Untitled" ? await tp.system.prompt("Campaign Title") : tp.file.title ); const gm = await tp.system.prompt("Add a GM to this campaign") let isAddingPlayers = true; const players = []; while (isAddingPlayers) { const player = await tp.system.prompt("Add a player to this campaign") if (player) { players.push(player) } else { isAddingPlayers = false; } } const settingFiles = tp.user.util.filesWithTag("ttrpg/setting"); const settingFile = ( settingFiles.length > 0 ? await tp.system.suggester((file) => file.basename, settingFiles, false, "Select a setting") : null ); const systemFiles = tp.user.util.filesWithTag("ttrpg/system"); const systemFile = ( systemFiles.length > 0 ? await tp.system.suggester((file) => file.basename, systemFiles, false, "Select a system") : null ); const metadata = { title, tags: ["ttrpg/campaign"], data: { icon: "notebook-tabs", title, players, gm, pdfs: [], campaignStatus: "planning", }, }; if (settingFile) { metadata.data.setting = tp.app.fileManager.generateMarkdownLink( settingFile, tp.file.path(true), null, settingFile.basename ); } if (systemFile) { metadata.data.system = tp.app.fileManager.generateMarkdownLink( systemFile, tp.file.path(true), null, systemFile.basename ); } await tp.user.util.updateMetadata(tp, metadata); %> <% tp.file.cursor() %> ## Player Characters ![[CampaignInfo.base#Player Character Cards]] ## Sessions ![[CampaignInfo.base#Sessions]] ## Factions ![[CampaignInfo.base#Factions]] ## NPCs ![[CampaignInfo.base#Nonplayer Characters]] ## Places ![[CampaignInfo.base#Places]] ## PDFs ![[PDFinfo.base]]