Parent Region: INPUT[suggester(optionQuery(#Category/Place)):MyContainer]

Column

Place Name

INPUT[select(
option(1, ā„¹ļøGeneral),
option(2, ā‰ļøGoals),
option(3, šŸ“GM Notes),
class(tabbed)
)]

Tabbed

NOTE

INPUT[select(
option(1, šŸ”—Hierarchy),
option(2, šŸ”—People),
option(3, ⚔Enemies/Allies),
option(4, šŸ› ļøServices),
option(5,āž•Membership),
option(6, šŸ›”ļøRanks),
class(tabbed)
)]

Tabbed


General

Select Parent: INPUT[suggester(optionQuery(#Category/Hub),optionQuery(#Category/Region)):MyContainer]

Select Category: INPUT[template-group-type][:MyCategory]

Values: The syndicate values skill and ambition, but also discretion and loyalty.

Allies / Enemies:

Membership Requirements:

Benefits This crime syndicate can protect its members from the consequences of all but the most heinous crimes. Rank 1: borrow resources (100 gp), case (+15), diversion (+15), gather information, lookout (4 ways, +15) Rank 2: borrow resources (1,000 gp), put in a good word, remove evidence, rob, search black market Rank 3: borrow resources (5,000 gp), command team (1d4 NPCs of 3rd level, or 3d4 NPCs of 1st level), destroy evidence, market manipulation, reciprocal benefits Rank 4: black market mastery, borrow resources (15,000 gp), command team (1d4 NPCs of 6th level, or 5d4 NPCs of 3rd level)

Goals

Public Goals

  • Achieve This
  • Achieve That

Membership

To join the group, a PC must spend X week ā€˜doing’ something, or ā€˜something else’.

GM Notes

Make notes of what you need to track in the town here.

Hierarchy

BUTTON[button_person] List important relationships here.

// 1) Grab your frontmatter arrays
const leader    = dv.current().leader    ?? null;
const officers  = dv.current().officers  ?? [];
const members   = dv.current().members   ?? [];
const initiates = dv.current().initiates ?? [];
 
// 2) Render the Mermaid diagram
dv.paragraph(
  "```mermaid\nflowchart LR\n" +
 
  // Leader node
  (leader
    ? `L[${leader}]:::internal-link\n`
    : "") +
 
  // Officers group
  (officers.length > 0
    ? `OG[Officers]\nL --> OG\n` +
      officers.map((o,i) =>
        `O${i+1}[${o}]:::internal-link\nOG --> O${i+1}\n`
      ).join("")
    : "") +
 
  // Members group
  (members.length > 0
    ? `MG[Members]\n${officers.length ? "OG" : "L"} --> MG\n` +
      members.map((m,i) =>
        `M${i+1}[${m}]:::internal-link\nMG --> M${i+1}\n`
      ).join("")
    : "") +
 
  // Initiates group
  (initiates.length > 0
    ? `IG[Initiates]\n${members.length ? "MG" : (officers.length ? "OG" : "L")} --> IG\n` +
      initiates.map((n,i) =>
        `I${i+1}[${n}]:::internal-link\nIG --> I${i+1}\n`
      ).join("")
    : "") +
 
  "```"
)

Enemies/Allies

Enemies: INPUT[inlineListSuggester(optionQuery(#Category/Group),optionQuery(#Category/People)):MyEnemies]

Allies: INPUT[inlineListSuggester(optionQuery(#Category/Group),optionQuery(#Category/People)):MyAllies]

People

The following people are members of this group.

properties:
  file.name:
    displayName: Star Systems Name
  note.MyCategory:
    displayName: Type of Star System
  note.char_race:
    displayName: Race
  note.char_gender:
    displayName: Gender
  note.char_age:
    displayName: Age
views:
  - type: cards
    name: Group Members - Cards
    filters:
      and:
        - file.folder == "2-World/People"
        - list(Connected_Groups).contains(this)
    order:
      - file.name
      - char_age
      - char_gender
      - char_race
    image: note.image
  - type: table
    name: Group Members - Table
    filters:
      and:
        - file.folder == "2-World/People"
        - list(Connected_Groups).contains(this)
    order:
      - file.name
    sort:
      - property: file.name
        direction: DESC
    columnSize:
      file.name: 182
 

Services

Services offered.

Public Services

ItemCostWeight
Service 11gpL
Service 21cp-

Ranks

Ranks listed here

  • Rank 1: Benefit
  • Rank 2: Benefit
  • Rank 3: Benefit