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:
| Nature | Meaning | Typical Usage |
|---|---|---|
Sire | Creator of the childe | The Embrace bond |
Childe | Created by the sire | The reciprocal of Sire |
Ally | Mutual support | Coterie-mates, political partners |
Enemy | Active hostility | Blood hunts, vendettas |
Rival | Competitive tension | Harpies, Primogen jockeying |
Touchstone | Humanity anchor | Mortal who embodies a Conviction |
Boon Owed | Debt holder | From owes To a favor |
Boon Called | Debt caller | From called in a favor from To |
Blood Bond (Regnant) | Bond master | The dominant partner in a blood bond |
Blood Bond (Thrall) | Bond servant | The bound partner |
Mawla | Mentor and patron | Teacher, protector, sponsor |
Lover | Romantic bond | Past or present |
Retainer | Servant or employee | Ghouls, mortal staff |
Contact | Information source | Journalists, Nosferatu, corrupt officials |
Adversary | Long-term antagonist | More complex than simple Enemy |
Family | Mortal or Kindred kinship | Blood relatives, adopted family |
Colleague | Professional relationship | Primogen council, coterie business |
Pack | Sabbat or Lupine pack bond | Supernatural pack ties |
Other | Uncategorized | Edge 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.jsonNadia Moreno and Iris Kane (Blood Bond (Regnant)).relationship.jsonMarcus Webb and Viktor Ash (Adversary).relationship.json
Adding Relationships
When you add a new character, create at minimum:
- A Sire relationship (if Kindred)
- A relationship to at least one coterie-mate
- 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
fromandtocharacters 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.