4.2 KiB
4.2 KiB
Date, Session_Name, Tags
| Date | Session_Name | Tags | ||
|---|---|---|---|---|
| 2026-04-16 | Session 27 - A Many Tentacled Problem |
|
Session 27 - A Many Tentacled Problem
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:
- The Hole underneath the Former Maelstrom in The Wells District of Y'athyr
-
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:
- We're able to remove some of the bodies from the cocoon and find some Hellknight's from the Order of the Rack
-
Combat:
- We resume combat with the Giant Wyrm and the remaining Caligni
- RK on the Monster:
- Seugathi reality warpers create and destroy inhospitable environments on a small scale by manipulating the forces of raw chaos. A neothelid might spawn such a seugathi to create habitats for unique slaves or guests, or to destroy the ecosystem of a troublesome species. Darklands scholars refer to reality warpers as veterans in the seugathi ranks, but they're more accurately compared to aggressive landscape architects. The wicked, alien Neothelids impregnate themselves through ritualistic magic to produce wormlike servitor creatures called seugathis. These creatures spawn with a strong psychic drive to complete some task on behalf of the neothelids' far-reaching plans. These directives are diverse, strange, and usually cruel toward humanoid life
- It's a long, hard fight, but we're able to take down the creature with the group nearing the end of it's capabilities.
- Kite deals the finishing blow.
- RK on the Monster:
- We resume combat with the Giant Wyrm and the remaining Caligni
-
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: