Builder's Manual · Chapter 3

Relationships: The Social Web

The Relationship type is the densest connective tissue in the project. Every boon, blood bond, rivalry, and sire-childe line is a relationship file. The AI Storyteller reads this web to determine who owes whom, who hates whom, and what happens when two characters are in the same room. Getting relationships right is the single most important thing you can do to make the chronicle feel alive.

How Relationships Work

Each relationship is a directed edge between two characters. The from field is the source, the to field is the target, and both reference character files by slug. The nature enum classifies the bond, and the oneWay boolean determines whether the edge is directional or mutual.

A file named Viktor Ash and Nadia Moreno (Ally).relationship.json connects a Ventrue ancilla to a Toreador socialite. If from is viktor-ash and to is nadia-moreno with nature: "Ally" and oneWay: false, the bond is mutual — they are allies. If oneWay were true, it would mean Viktor considers Nadia an ally but the feeling is not necessarily reciprocated.

The Nature Enum

The complete set of relationship natures:

NatureMeaningTypical Usage
SireCreator of the childeThe Embrace bond
ChildeCreated by the sireThe reciprocal of Sire
AllyMutual supportCoterie-mates, political partners
EnemyActive hostilityBlood hunts, vendettas
RivalCompetitive tensionHarpies, Primogen jockeying
TouchstoneHumanity anchorMortal who embodies a Conviction
Boon OwedDebt holderFrom owes To a favor
Boon CalledDebt callerFrom called in a favor from To
Blood Bond (Regnant)Bond masterThe dominant partner in a blood bond
Blood Bond (Thrall)Bond servantThe bound partner
MawlaMentor and patronTeacher, protector, sponsor
LoverRomantic bondPast or present
RetainerServant or employeeGhouls, mortal staff
ContactInformation sourceJournalists, Nosferatu, corrupt officials
AdversaryLong-term antagonistMore complex than simple Enemy
FamilyMortal or Kindred kinshipBlood relatives, adopted family
ColleagueProfessional relationshipPrimogen council, coterie business
PackSabbat or Lupine pack bondSupernatural pack ties
OtherUncategorizedEdge cases the enum doesn't cover

A relationship can have multiple natures. Nadia Moreno and Iris Kane might exist as both Blood Bond (Thrall) and Sire — two separate files capturing two dimensions of the same bond. This is the intended pattern: create one file per nature, not one file trying to describe everything.

Intensity and Status

The intensity field uses a dot rating (● to ●●●●●) to signal how significant the relationship is. A one-dot Contact is someone you trade rumors with. A five-dot Blood Bond is an all-consuming obsession. The AI uses intensity to weight relationships when deciding which characters drive a scene.

The status field is free-form text for the current state: "Strained after the Convention of Prague," "Growing closer," "Betrayed but pretending otherwise." Update this as the chronicle progresses. The notes field holds session-level developments. The details field holds static context.

The File Naming Convention

Follow the pattern FromName and ToName (Nature).relationship.json. The platform uses the file name for display in search results and relationship pickers. A clear name means a storyteller knows what they are clicking before they open it. Examples:

  • Viktor Ash and Nadia Moreno (Ally).relationship.json
  • Nadia Moreno and Iris Kane (Blood Bond (Regnant)).relationship.json
  • Marcus Webb and Viktor Ash (Adversary).relationship.json

Adding Relationships

When you add a new character, create at minimum:

  1. A Sire relationship (if Kindred)
  2. A relationship to at least one coterie-mate
  3. A Touchstone relationship for each Conviction

Then think about what other characters they would logically know. A Ventrue neonate probably has a Contact or Mawla in the Primogen. An Anarch has an Enemy in the Sheriff's office. A Thin-Blood has an Adversary in the Camarilla at large. Every relationship you add makes the AI's social navigation richer.

What Not to Do

  • Don't create a relationship without both from and to characters existing. A dangling reference breaks the web.
  • Don't use nature: "Other" when a more specific enum value fits. The AI makes better decisions with precise relationship types.
  • Don't create relationships that violate the fiction. If an ancient elder hides behind a neonate's false identity, most characters should not have a relationship directly to the elder — they should point at the mask.
  • Don't forget to set oneWay. A Boon Owed is inherently directional. An Ally bond might be mutual. Think about who feels what.
Manual updated Sep 8, 2026.