--- Date: 2026-07-01 Session_Name: Session 32 - Downtime Activities Tags: - pf2e - session --- # Session 32 - Downtime Activities > **Date:** `= this.Date` • **Name:** `= this.Session_Name` --- ## 📄 Session Summary (auto) *No summary yet — click “Generate Summary” below.* ```button name ✍️ Generate AI Summary type template action Templates/Generate AI Session Summary.md templater true ``` ## 🧭 Where / When - **Region / Location:** - **In-game Date / Time:** - **Weather / Conditions:** --- ## 👥 PCs Present / Absent - **Present:** - **Absent:** --- ## ⭐ Highlights (feed the auto-summary) > Add one or more `Highlight::` lines. The button will build a summary from these. - Highlight:: - Highlight:: - Highlight:: --- ## 🎯 Quests & Progress - **Active Objectives:** - **Progress / Resolutions:** --- ## 🗣️ NPCs Met / Factions - **NPCs:** [[ ]] [[ ]] [[ ]] - **Factions Touched:** [[ ]] [[ ]] --- ## ⚔️ Encounters - **Social / Exploration:** - The group performs some downtime activities.. - Calen reaches out to the High Curate and requests some Acolyte's to be sent to the new SMH Headquarters. - Discovery on Celosia and Influence the Thin Wisps. - Influence [[Iniana Asase]] and learns some information about what the City Watch in Whitewater is up to: - Most of the guards are just [[The Archmasons]] in new armor. They have been put through some efficacy training and under the new governance, the brutality of [[The Archmasons]] is being tamped down. - That is not to say to that it's not happening, only that it's getting better. - The most loyal of the guards are being recruited for some other branch of the City Watch. - [[Metternich]] - Mentions that the City Watch who are being recruited for the Special branch of the Watch are likely for [[House Elidari]] and will likely be fiercely loyal. - - **Combat:** - **Outcome / Loot:** --- ## 🧠 Intel Captured (auto) ```dataviewjs const THIS = dv.current(); const sessName = THIS.file.name; const sessDate = THIS.Date ?? dv.current().file.frontmatter?.Date ?? ""; const sessLC = sessName.toLowerCase(); const pages = dv.pages("#npc or #faction").where(p => p.Intel); function matchesSessionField(sessionField) { const list = Array.isArray(sessionField) ? sessionField : [sessionField]; for (const s of list) { if (!s) continue; if (typeof s === "object" && s.path) { const base = s.path.split("/").pop().replace(/\.md$/i,""); if (base.toLowerCase() === sessLC) return true; } else { const text = String(s); if (text.includes(`[[${sessName}]]`)) return true; if (text.toLowerCase() === sessLC) return true; } } return false; } const rows = []; for (const p of pages) { for (const it of p.Intel) { let ok = false; if (it.session) ok = matchesSessionField(it.session); if (!ok && sessDate && it.date) ok = String(it.date) === String(sessDate); // fallback if (ok) { rows.push({ from: p.file.link, date: it.date ?? "", type: it.type ?? "", summary: String(it.summary ?? ""), source: it.source ?? "", rel: it.reliability ?? "", cred: it.credibility ?? "", tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") }); } } } rows.sort((a,b)=> String(b.date).localeCompare(String(a.date))); if (!rows.length) { dv.paragraph("_No intel captured for this session yet._"); } else { dv.table( ["From", "Date", "Type", "Summary", "Source", "Rel", "Cred", "Tags"], rows.map(r => [r.from, r.date, r.type, r.summary, r.source, r.rel, r.cred, r.tags]) ); } ``` --- ## 📦 Treasure & Rewards - **Items:** - **Coin:** - **XP / Milestones:** --- ## 🔜 Next Hooks / To-Dos - [ ] - [ ] - [ ]