Files
T

5.6 KiB
Raw Blame History

Level_of_Influence, Faction, SMH_Acronym, Tags, Intel
Level_of_Influence Faction SMH_Acronym Tags Intel
6 House Valrora
npc
date type summary session source reliability credibility tags
2025-12-10 report Katarin Calil, Onora Elidari and Lord Ellin Vaust do not applaud a toast that Nuala Elidari offers to the previous Steward, Ilvara Valrora Session 13 - Summer Solistice Pt. 2 Perception Check B 5
date type summary session source reliability credibility tags
2025-12-03 interaction Ilvara Valrora expresses that she has been keeping up with what the party has been up to at the point of the Masquerade, but she doesn't approve of our actions thus far. Session 12 - Summer Solistice Pt. 1 Ilvara Valrora A 5

Ilvara Valrora

Former Master of Coin and Steward of Y'athyr

🎨 Artwork

!Ilvara Valrora.png Optional caption / alt text


🧑 NPC Overview

  • Full Name: Ilvara Valrora
  • Race / Ancestry: Elf
  • Gender / Pronouns: She/Her
  • Occupation / Role: Former Master of Coin for Y'athyr and Former Steward
  • Faction / Allegiance: House Valrora
  • 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
      • DC 15 Gaming Lore
      • DC 18 Diplomacy
      • DC 18 Society
      • DC 20 Perception
    • Influence Skills
      • DC 20 Arcana
      • DC 20 Diplomacy
      • DC 22 Deception
    • Weaknesses
      • Acting with proper etiquette and manners reduces the Influence DC by 2.
    • Resistances
      • Discussing topics that would disrupt the status quo of the city increases the check's DC by 2.
    • Biases

🧠 Intel (auto)

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])
  );
}
name  Add Intel
type command
action Templater: Insert Add Intel Entry to NPC

🏛️ Relations & Factions

  • Primary Faction: House Valrora
  • 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:
    • 2025-12-02: …

🔗 Connections

  • Related NPCs:
    • NPC A (Mentor)
    • NPC B (Rival)
  • PC Ties:
    • Faylen Valora (Daughter)