--- Level_of_Influence: 2 Faction: "[[Thin Wisps]]" SMH_Acronym: Tags: - npc Intel: - date: 2026-01-07 type: interaction summary: Works in a warehouse near warehouse row. session: "[[Session 16 - A Meeting of Consequence]]" source: "[[Maltrix]]" reliability: A credibility: 5 tags: [] - date: 2026-01-07 type: rumor summary: "[[Maltrix]] referred us to [[Celoisa]] as a sort-of recruiter for the [[Thin Wisps]]" session: "[[People of the South Drenches]]" source: "[[Maltrix]]" reliability: B credibility: 4 tags: [] Knows About HQ: "True" --- # Celosia *Role/Description β€” e.g., "Captain of the Guard", "Elven Scholar", "Local Merchant"* ## 🎨 Artwork ![[Celosia.png]] *Optional caption / alt text* --- ## πŸ§‘ NPC Overview - **Full Name:** Celosia - **Race / Ancestry:** Elf ((Grey Skinned, with Horns)) - **Gender / Pronouns:** - **Occupation / Role:** Painter/Recruiter - **Faction / Allegiance:** [[Thin Wisps]] - **SMH (what THEY call it):** `= this.SMH_Acronym` - **Notable Traits:** (quirks, mannerisms, appearance) - **First Impression:** (how the party perceives them) --- ## 🀝 Relationship with Party - **Level of Influence:** `= this.Level_of_Influence` (βˆ’10 to +10) - **Notes on Influence:** (what actions improve/worsen standing) - ***Discovery Skills*** - ***Influence Skills*** - ***Weaknesses*** - ***Resistances*** - ***Biases*** --- ## 🧠 Intel (auto) ```dataviewjs const THIS = dv.current(); const thisName = String(THIS.file.name); const thisLC = thisName.toLowerCase(); // Scan faction & NPC notes that have Intel arrays const pages = dv.pages("#npc or #faction").where(p => p.Intel); // Does an Intel entry reference THIS NPC? function mentionsThisNPC(entry) { const sum = String(entry.summary ?? ""); // 1) Explicit wikilink in summary if (sum.includes(`[[${thisName}]]`) || sum.includes(`[[${thisName}|`)) return true; // 2) Source field (string/link/list) const src = entry.source; const arr = Array.isArray(src) ? src : (src ? [src] : []); for (const s of arr) { if (typeof s === "string") { // quoted link or plain text const unq = s.replace(/^"+|"+$/g, ""); // drop surrounding quotes if any if (unq.includes(`[[${thisName}]]`) || unq.includes(`[[${thisName}|`)) return true; // if they typed just the name if (unq.replace(/\[\[|\]\]/g, "").trim().toLowerCase() === thisLC) return true; } else if (s && typeof s === "object" && s.path) { // wikilink object const base = s.path.split("/").pop().replace(/\.md$/i, "").toLowerCase(); if (base === thisLC) return true; } } // Optional (looser): plain text mention in summary // return sum.toLowerCase().includes(thisLC); return false; } // Collect rows: 1) own Intel, 2) mentions from other notes const rows = []; // Own Intel (from this NPC note) for (const it of (THIS.Intel ?? [])) { rows.push({ from: THIS.file.link, date: it.date ?? "", type: it.type ?? "", summary: String(it.summary ?? ""), session: it.session ?? "", source: it.source ?? "", rel: it.reliability ?? "", cred: it.credibility ?? "", tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") }); } // Mentions elsewhere for (const p of pages.where(p => p.file.path !== THIS.file.path)) { for (const it of (p.Intel ?? [])) { if (mentionsThisNPC(it)) { rows.push({ from: p.file.link, date: it.date ?? "", type: it.type ?? "", summary: String(it.summary ?? ""), session: it.session ?? "", source: it.source ?? "", rel: it.reliability ?? "", cred: it.credibility ?? "", tags: Array.isArray(it.tags) ? it.tags.join(", ") : (it.tags ?? "") }); } } } // Sort newest first rows.sort((a,b) => String(b.date).localeCompare(String(a.date))); if (!rows.length) { dv.paragraph("_No intel yet._"); } else { dv.paragraph(`_Entries: ${rows.length} (own ${(THIS.Intel ?? []).length} + mentions ${Math.max(0, rows.length - (THIS.Intel ?? []).length)})_`); dv.table( ["From Note","Date","Type","Summary","Session","Source","Rel","Cred","Tags"], rows.map(r => [r.from, r.date, r.type, r.summary, r.session, r.source, r.rel, r.cred, r.tags]) ); } ``` ```button name βž• Add Intel type command action Templater: Insert Add Intel Entry to NPC ``` --- ## πŸ›οΈ Relations & Factions - **Primary Faction:** [[Thin Wisps]] - **Allied Factions:** [[Faction A]], [[Faction B]] - **Rival Factions:** [[Faction C]] - **Personal Enemies / Allies:** [[NPC or PC]] --- ## πŸ“– History & Background - **Origin / Past:** - **Known Motivations:** - **Secrets / Rumors:** --- ## 🎭 Roleplay Notes - **Personality:** (e.g., stern, practical, loyal) - **Speech Style / Quirks:** (catchphrases, accent, tics) - **Appearance Details:** (clothing, scars, distinguishing features) --- ## πŸ—ΊοΈ Miscellaneous - **Current Location:** - **Important Items / Assets:** - **Plot Hooks / Ties to PCs:** - **Session Notes / Updates:** - 2026-01-07: … --- ## πŸ”— Connections - **Related NPCs:** - [[NPC A]] (Mentor) - [[NPC B]] (Rival) - **PC Ties:** (how the party knows them)