Contact and NPC Relationship Networks
Abstract
Contact networks treat NPCs as a campaign resource rather than set-dressing. The procedure answers three practical questions: how to generate contacts quickly, how to classify them for practical use, and how to advance relationships between sessions without scripting outcomes.
This is distinct from first-contact reaction rolls (which handle immediate encounter disposition) and from faction pressure clocks (which track organizational power). Contact networks are personal — specific named individuals with leverage, vulnerabilities, and triggers.
Contact Generation
Domain-Sorted Generation (Running Silent model)
Generate contacts by domain first, then type within domain:
| d6 | Domain | Typical Contact Types |
|---|---|---|
| 1 | Academic | Scholars, archivists, sages, instructors |
| 2 | Engineering / Technical | Mechanics, hackers, artificers, builders |
| 3 | Corporate / Institutional | Officials, administrators, legal brokers |
| 4 | Street / Criminal | Fixers, smugglers, gang leads, forgers |
| 5 | Trade / Blue Collar | Merchants, laborers, transport operators |
| 6 | Underground / Specialist | Cult figures, political dissidents, black-market dealers |
Roll within domain (typically d100 on a domain-specific table) for the specific type.
Type-First Generation (Carousing / Downtime model)
Alternatively, generate contact type directly when context doesn't privilege a domain:
| d12 | Contact Type |
|---|---|
| 1 | Fellow practitioner of your trade |
| 2 | Guard (20% chance holds rank) |
| 3 | Criminal |
| 4 | Noble or high-status individual |
| 5 | Politician or courtier |
| 6 | Clergy or holy figure |
| 7 | Magic practitioner or technologist |
| 8 | Commoner with useful local knowledge |
| 9 | Noble's staff or attaché |
| 10 | Artisan or specialist craftsperson |
| 11 | Merchant |
| 12 | Non-human or unusual creature hidden in society |
Contact Relationship States
Each contact exists in one of four relationship states. Relationships change through play events.
| State | Description | Mechanical Effect |
|---|---|---|
| Ally | Actively helpful; extends resources or protection | Will take personal risk; provides favors or information |
| Friend | Positive disposition; available for services | Provides services within normal limits; no special risk |
| Neutral | No established relationship | Requires approach and roll to engage |
| Enemy | Active antipathy or grudge | Works against party; alerts rivals; refuses service |
State shifts: Relationships move between states through contact events — downtime actions, carousing consequences, failed obligations, or mid-session events. At minimum, one contact state change per session is realistic in an active urban campaign.
Three-Tag Contact Tracking
For any named NPC the party has interacted with more than once, store three tags:
- Leverage — what they can offer right now (information, access, resources, protection, a specific service).
- Vulnerability — what could destabilize or coerce them (a secret, a debt, a dependent, an exposed crime).
- Trigger — what would force them to act this week regardless of the party's actions.
Update at least two tags after every session that touches that NPC. A contact without an active Trigger is dormant — useful as a resource but not a source of campaign pressure.
Obligation and Debt Patterns
Contacts often come with strings attached. Common obligation patterns generated through play:
| Obligation Type | Description | Escalation |
|---|---|---|
| Favor promised | Character owes the contact a service | Contact calls in favor at inconvenient moment |
| Debt (financial) | Money owed to contact or venue | Contact sends collectors; blocks access to services |
| Oath sworn | Public commitment made during carousing or negotiation | Violation triggers reputation damage and contact state drop |
| NPC companion | Promised to help contact's associate for d6 sessions | Associate appears at session start expecting to be included |
| Duel scheduled | Formal conflict registered with witness NPCs | Ignoring it degrades standing with all contacts who know |
Referee utility: Obligations convert contacts from passive resources to active campaign pressure. A party with many friendly contacts and many outstanding obligations has a rich social pressure environment without any new enemies.
Between-Session Relationship Advancement
After each session, run a quick contact pulse:
- Identify any contacts who were touched by session events (directly or indirectly).
- Roll or choose: did their state shift? (Friendly favors paid back, debts ignored, rivals threatened on their behalf?)
- Advance one Trigger per active contact.
- Inject at least one contact event into the rumor stream (a contact is asking for the party, a contact has been seen with a rival faction, a contact has a job offer).
This keeps contacts active between sessions without scripting their behavior.
NPC Relationship Web Structure
Track campaign social dynamics as a living graph rather than a list.
Architecture: - Core node: a settlement, district, or hub location. - Power nodes: factions, offices, patrons, gangs, guilds — entities with institutional leverage. - Personal nodes: named individual contacts attached to power nodes. - Connectors: brokers, couriers, fixers, clergy — NPCs who link otherwise separate power nodes. - Fragile edges: debts, blackmail, grudges, secret dependencies between nodes.
Practical format: A half-page diagram with labeled edges showing obligation, alliance, rivalry, or dependency. Update after each session. Fragile edges should be visible — these are the play opportunities.
Implementation Variants
Cyberpunk Contact Domains (Running Silent)
Domain-sorted by professional sphere. Generate from domain (d6) then metatype (d20) within domain. Contacts carry a primary service and a secondary demand — what they can provide and what they expect in return. The demand creates built-in obligation without requiring GM invention.
Fantasy Downtime Contact Acquisition (Luke Gearing Carousing)
Contacts appear as carousing consequences. The character does not choose to cultivate them — they emerge from high-variance downtime events. Some contacts begin as Enemies or carry obligations. This produces messier but more surprising contact webs than structured generation.
Campaign Web Model (Prep Tools / Papers & Pencils)
Referee maintains a graph of the full NPC landscape. Each named NPC has Leverage, Vulnerability, Trigger tags. After each session the GM advances at least two edges (change one relationship state, advance one Trigger). The web drifts on its own even when the party is not interacting directly.
Design Principles
- Contacts as campaign engines. A well-maintained contact web generates adventure hooks without requiring GM invention.
- Obligations create drama. Contacts without obligations are vending machines. Contacts with obligations have agency.
- Relationship states shift through play. Static NPC relationships atrophy — advance them or they fade to neutral.
- Fragile edges are play opportunities. Every debt, blackmail tie, or grudge between power nodes is a hook the party can pull.
See Also
- Patronage, Favor, and Obligation Economy — Campaign loop for converting contact leverage into explicit favors and escalating obligations
- Reaction and Morale Procedures — First-contact disposition mechanics; contact networks cover ongoing relationships after first contact
- Downtime Consequences and Complication Procedures — Contact acquisition often emerges from downtime consequence rolls
- Adversary Rosters — Runtime faction positioning; contact networks handle the social layer above tactical positioning
- d100 Carousing — Source for contact-acquisition consequence taxonomy
- Running Silent Toolkit — Domain-sorted contact generators and mission contact integration
- Campaign Scaffold and Prep Tools — NPC relationship web model and between-session advancement procedures