3.5 KiB
3.5 KiB
Date, Session_Name, Tags
| Date | Session_Name | Tags | ||
|---|---|---|---|---|
| 2026-02-26 | Session 21 - Wells Investigation |
|
Session 21 - Wells Investigation
Date:
= this.Date• Name:= this.Session_Name
📄 Session Summary (auto)
No summary yet — click “Generate Summary” below.
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 recovers from the combat with the Caligni in the streets in the Wells.
- We follow some tracks southwest of a group of small and medium humanoids heading towards the Arch.
- Following the tracks along the rooftops eventually encounters us a group of Namorrodor.
- RK: !
- RK: !
- Following the tracks along the rooftops eventually encounters us a group of Namorrodor.
- As we approach another plaza, there is a fountain that has been split open along with a dirge of strings being played. Finally, there are dozens of bloodied halflings dancing. There is also a viol
-
Combat:
-
Outcome / Loot:
🧠 Intel Captured (auto)
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: