4.4 KiB
4.4 KiB
Date, Session_Name, Tags
| Date | Session_Name | Tags | ||
|---|---|---|---|---|
| 2026-04-23 | Session 28 - Downtime Activities |
|
Session 28 - Downtime Activities
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:
- Val goes to meet with Iniana Asase and gets an update on how the meeting with Deidre Gille and Therin Asase went. She also states that she knows we've been stepping on alot of people's toes - and she finally inquires as to what we're up to. Val gives her the short and easy of what we're up to, but let's her in on the truth. It did however, seem like Therin Asase was going to investigate Deidre Gille's situation.
- Kite heads to meet with Lonni - letting them know that Sinni Springvale is dead. He follows on with heading to the Home of the Auclair Family, which posted one of the missing persons posters for one of the Hellknights that we found in the Wells.
- The Father states that The Archmasons had taken Kristoph hostage. Kristoph formerly worked for the City Watch and this had happened to some people who had previously gotten to close to The Wells.
- Last time he saw his son was two weeks ago, and he seemed fine at the time. They had had breakfast in the morning and when his son didn't return home from the City Watch after midnight, he went to the Watch's Keep and found a hostage note from The Archmasons - and the City Watch was either unwilling or unable to pay the ransom.
- There were others who came by and said they had information about his Son - the father figures they were Charlatan's; preying on those in grief.
-
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: