# Theriapolis — Faction Influence & Reputation System ### Technical Design Document --- ## Executive Summary The reputation system tracks how the world perceives the Player Character across three nested layers: **Clade Bias** (what you are), **Faction Standing** (what your group has done), and **Individual Disposition** (what you've done to me personally). These three layers blend into a single **Effective Disposition** score for every NPC the player interacts with. The core principle: **Nobody meets you clean.** Every NPC has opinions before you walk through the door. Your species, your Clade, the factions you're associated with, the rumors that precede you — all of it colors the interaction before a single word is exchanged. Personal experience can override prejudice, reinforce it, or complicate it. --- --- # SECTION I: THE THREE LAYERS --- ## Layer 1: Clade Bias ### What It Represents The deep, biological, cultural, historical weight of being what you are. A wolf-folk walking into a Cervid herd-city carries ten thousand years of predator/prey history on their shoulders. A hybrid walking anywhere carries stigma. This layer exists before the game begins and changes slowly, if at all. ### Implementation Every NPC has a **Clade Bias Table** — a set of modifiers based on the PC's Clade and species. These are NOT stored per-NPC individually (that would be wasteful). They are inherited from the NPC's **Bias Profile**, which is determined by the NPC's own Clade, cultural background, region, and education level. **Bias Profiles** are templates. A finite set (30–50) covers the population: | Profile ID | Description | Example NPCs | |-----------|-------------|--------------| | CANID_TRADITIONALIST | Pack-loyal, distrusts non-Canidae, respects strength hierarchy | Rural wolf-folk rancher, Old Pack sympathizer | | CERVID_CAUTIOUS | Default wariness of predator Clades, warm to other prey, uncertain about hybrids | Herd-city shopkeeper, Cervid farmer | | URBAN_PROGRESSIVE | Reduced Clade bias across the board, mild positive toward hybrids, dislikes extremists | Sanctum Fidelis professional, university-educated | | HYBRID_SURVIVOR | Strong positive toward hybrids, default distrust of purebreds, especially authorities | Tangles resident, underground network member | | MUSTELID_PRAGMATIST | Judges by utility, mild distrust of large species (Ursidae, Bovidae), respects competence | Factory foreman, independent trader | | BOVID_HERD_LOYALIST | Warm to other Bovidae and prey Clades, wary of predators, protective of community | Herd-city elder, agricultural cooperative member | | COVENANT_FAITHFUL | Treats all Clades with studied neutrality, strong negative toward Covenant violators | Covenant Enforcer, Bridge-oath Keeper | | FRONTIER_NIHILIST | Doesn't care what you are, only what you can do right now | Borderland stray, Tangles smuggler | Each profile contains a modifier table: ``` CERVID_CAUTIOUS bias table: Canidae: -15 Felidae: -20 Mustelidae: -10 Ursidae: -25 (biggest = scariest) Cervidae: +15 Bovidae: +10 Leporidae: +5 Hybrid: -10 ``` These are the starting modifiers applied to the Effective Disposition calculation before anything else. ### Clade Bias Modifiers — Additional Factors **Species-Specific Adjustments:** Within a Clade, species matters. The base Clade bias is adjusted: ``` If NPC profile = CERVID_CAUTIOUS and PC species = Fox-folk: Base Canidae bias: -15 Fox-folk adjustment: +5 (smaller, less threatening than wolf-folk) Net: -10 If PC species = Wolf-folk: Base Canidae bias: -15 Wolf-folk adjustment: -5 (apex predator, maximum threat profile) Net: -20 ``` Species adjustments are small (±5 to ±10) but meaningful at thresholds. **Size Differential:** A Large PC interacting with a Small NPC triggers an additional modifier based on the size gap. This is involuntary — the NPC's body responds to the size differential before their brain catches up. ``` Size differential modifiers: Same size: +0 One step larger: -3 (PC is bigger) Two steps larger: -8 (PC is much bigger) One step smaller: +2 (PC is smaller, less threatening) Two steps smaller: +5 (PC is much smaller, non-threatening... or patronized) ``` A moose-folk PC talking to a rabbit-folk shopkeeper starts at -8 from size alone, before Clade bias, before anything personal. That's the world. **Hybrid Detection:** If the PC is a hybrid and the NPC detects it (through scent, visual tells, or reputation), an additional HYBRID modifier applies from the NPC's bias profile. If the PC is passing and the NPC hasn't detected it, the hybrid modifier does NOT apply — the PC is treated as their presenting Clade. Discovery of passing status triggers a **Betrayal Event** (see Section IV). --- ## Layer 2: Faction Standing ### What It Represents How the PC is perceived based on their affiliation with (or opposition to) organized groups. Faction Standing is communal reputation — it follows you through the world via rumor, news, official records, and scent-marked territory. ### The Factions The system tracks standing with the following factions: | Faction | Description | Standing Range | |---------|-------------|---------------| | **Covenant Enforcers** | The law. Federal authority. Policing the Covenant. | -100 to +100 | | **The Inheritors** | Predator-Clade supremacist network. | -100 to +100 | | **The Thorn Council** | Prey-Clade separatist movement. | -100 to +100 | | **The Maw** (hidden) | The umbrella conspiracy. PC learns about it progressively. | -100 to +100 | | **Hybrid Underground** | Informal mutual aid and rights network. | -100 to +100 | | **The Unsheathed** | Hybrid political activism movement. | -100 to +100 | | **Merchant Guilds** | Trade, commerce, economic power. | -100 to +100 | | **Local Government** | Per-settlement authority. Independent per settlement. | -100 to +100 (per settlement) | **Standing Scale:** | Range | Label | Effect | |-------|-------|--------| | -100 to -76 | NEMESIS | Kill on sight. Bounties. Active hunting. | | -75 to -51 | HOSTILE | Attacked if recognized. No services. Arrest warrants. | | -50 to -26 | ANTAGONISTIC | Refused service. Information denied. Reported to authorities. | | -25 to -1 | UNFRIENDLY | Cold reception. Higher prices (+25%). Limited dialogue. | | 0 | NEUTRAL | Default. No opinion. Standard interactions. | | +1 to +25 | FAVORABLE | Slight discount (-10%). More dialogue options. Tips and rumors. | | +26 to +50 | FRIENDLY | Discount (-20%). Side quest access. Safe houses. | | +51 to +75 | ALLIED | Significant discount (-30%). Faction resources available. Backup in combat. | | +76 to +100 | CHAMPION | Maximum benefits. Leadership-level access. Faction NPCs will die for you. | ### How Standing Changes **Direct Actions:** Completing quests, making story choices, killing faction members, saving faction members, delivering intelligence — these produce **Standing Events** with defined magnitude: | Action | Magnitude | Example | |--------|-----------|---------| | Minor favor | +3 to +5 | Delivered a package, shared non-critical info | | Moderate service | +8 to +12 | Completed a faction quest, saved a member | | Major service | +15 to +25 | Disrupted an enemy operation, saved a leader | | Critical contribution | +30 to +50 | Resolved a faction-threatening crisis | | Minor offense | -3 to -5 | Refused a request, associated with rivals | | Moderate offense | -8 to -12 | Failed a faction quest, harmed a member | | Major betrayal | -15 to -25 | Killed a member, sabotaged operations | | Critical betrayal | -30 to -50 | Destroyed a faction asset, turned over intel to enemies | **Faction Interdependencies:** Some factions are opposed. Gaining standing with one costs standing with another: ``` FACTION OPPOSITION MATRIX: Enforcers Inheritors Thorn Hybrid_UG Unsheathed Merchants Enforcers — -0.3 -0.3 -0.1 0.0 +0.1 Inheritors -0.5 — -0.2 -0.3 -0.3 0.0 Thorn Council -0.5 -0.2 — -0.1 -0.2 0.0 Hybrid Underground -0.1 -0.5 -0.3 — +0.3 0.0 Unsheathed 0.0 -0.5 -0.3 +0.3 — 0.0 Merchants +0.1 0.0 0.0 0.0 0.0 — ``` Reading: when the PC gains +10 with the Inheritors, they lose 0.5 × 10 = -5 with the Covenant Enforcers, -2 with the Thorn Council, -3 with the Hybrid Underground, and -3 with the Unsheathed. The multipliers are asymmetric by design. Helping predator supremacists hurts you more with the Hybrid Underground (-0.3) than helping the Hybrid Underground hurts you with the Enforcers (-0.1). The oppressed are more sensitive to betrayal than institutions are to dissent. ### Faction Standing Propagation NPCs don't psychically know your faction standing. Information travels through believable channels: **Propagation Speed:** - Within a settlement where the action occurred: immediate - To adjacent settlements (1-2 day travel): 1–3 in-game days - Across the continent: 1–2 in-game weeks (thumper-relay and rail-carried news) - To isolated/frontier areas: may never arrive without specific courier **Propagation Fidelity:** Standing events degrade as they propagate: ``` At origin: Full magnitude Adjacent settlement: 80% magnitude Regional: 60% magnitude Continental: 40% magnitude Frontier: 20% magnitude (if it arrives at all) ``` Example: PC saves a Covenant Enforcer in Thornfield (+15). In Thornfield, their Enforcer standing is immediately +15. In a nearby town: +12. In Sanctum Fidelis (continental): +6. In The Tangles (frontier, plus Enforcers have weak presence): +3, and only if a courier happened to carry the news. **Exception — NEMESIS and CHAMPION standing:** Extreme standing events propagate at full magnitude and maximum speed. Kill a faction leader, and everyone in that faction knows within days. Save a city from destruction, and the entire continent hears by next week. Fame and infamy travel fast. **Scent-Based Faction Detection:** In settlements with strong faction presence, faction-aligned NPCs can SMELL the PC's recent associations. Spent time in an Inheritor camp? You carry traces. Stayed at a Hybrid Underground safe house? Scent residue. This creates an additional detection mechanism beyond rumor propagation. ``` Scent-based faction detection: Duration: Scent traces last 24–72 hours depending on exposure Detection: NPCs with Superior Scent or Scent-Broker abilities auto-detect Others: WIS (Perception) DC 15 to notice "something off" about the PC's scent Counter: Scent-mask products suppress faction scent traces Military-grade: 8 hours suppression Deep-cover: 24 hours ``` --- ## Layer 3: Individual Disposition ### What It Represents How a specific NPC feels about the PC based on direct personal interaction. This is the layer that makes the shopkeeper who hates Canidae warm up to the wolf-folk PC who saved her kit from drowning. Personal experience is the strongest force in the system — it can override Clade bias and faction standing, though doing so takes sustained effort. ### Implementation Every NPC the PC has directly interacted with stores a **Personal Disposition Record**: ``` PersonalDisposition { npc_id: unique identifier base_value: 0 (initialized at first interaction) current_value: integer (-100 to +100) interaction_log: [array of InteractionEvents] trust_level: enum (STRANGER, ACQUAINTANCE, FAMILIAR, TRUSTED, BONDED) memory_flags: [set of memorable event tags] betrayal_flag: boolean (has the PC betrayed this NPC specifically?) last_interaction: timestamp } ``` ### How Individual Disposition Changes **Interaction Events:** Every meaningful exchange with an NPC generates an InteractionEvent: ``` InteractionEvent { type: enum (DIALOGUE, QUEST, GIFT, COMBAT, BETRAYAL, RESCUE, TRADE, SCENT) magnitude: integer (-50 to +50) context: string (what happened) timestamp: game time } ``` **Event Types and Typical Magnitudes:** | Event | Magnitude | Example | |-------|-----------|---------| | Polite greeting | +1 | First meeting, respectful dialogue | | Helpful dialogue | +2 to +3 | Answering questions, sharing non-sensitive info | | Small favor | +3 to +5 | Delivered an item, helped with a minor task | | Significant help | +8 to +12 | Completed a personal quest, defended them | | Life-saving | +15 to +25 | Rescued from danger, provided critical medical aid | | Gift (appropriate) | +2 to +8 | Item value and relevance to NPC determine magnitude | | Gift (inappropriate) | -1 to -3 | Wrong item, insulting implication, cultural misstep | | Successful persuasion | +1 to +3 | Convinced them of something, but they know they were persuaded | | Failed intimidation | -5 to -10 | Tried to bully them, failed. They remember. | | Successful intimidation | -3 to -8 | Got what you wanted. They resent it. | | Theft (detected) | -15 to -25 | Caught stealing. Trust collapses. | | Theft (undetected) | +0 | They don't know. But if discovered later: magnitude doubles as betrayal. | | Physical harm | -20 to -40 | Attacked them or someone they care about. | | Witnessed violence | -5 to -15 | They saw you kill or brutalize someone. Context matters. | | Witnessed mercy | +5 to +10 | They saw you spare someone or de-escalate. | | Broke promise | -10 to -20 | Said you'd do something, didn't. | | Kept difficult promise | +10 to +15 | Did what you said, even when it cost you. | | Shared vulnerability | +5 to +8 | Revealed personal information, showed trust. | ### Trust Level Trust is a ratchet-like system that tracks depth of relationship independently from disposition value. You can like someone you don't trust. You can trust someone you don't like. | Trust Level | Threshold | Unlocks | |-------------|-----------|---------| | STRANGER | Default | Basic transactions, surface dialogue | | ACQUAINTANCE | 3+ positive interactions | Extended dialogue, rumor sharing, basic side quests | | FAMILIAR | 8+ positive interactions, disposition > +15 | Personal backstory dialogue, discounts, warnings about danger | | TRUSTED | 15+ positive interactions, disposition > +30, no betrayal flag | Secret sharing, faction introductions, personal quests, safe house access | | BONDED | 25+ positive interactions, disposition > +50, TRUSTED for 5+ in-game days | Will fight for the PC, share critical info unprompted, risk their life, romance options (if applicable) | **Trust Decay:** Trust does NOT decay passively. Once earned, it persists unless violated. However, disposition CAN decay (see Section III), and if disposition drops below the trust level's threshold while trust is high, the NPC enters a **Conflicted** state — they trust you but don't currently like you. This produces unique dialogue: "I know you're good underneath whatever this is. Don't make me wrong." **Trust Destruction:** A betrayal event (see Section IV) can shatter trust instantly, dropping it by 1–3 levels depending on severity. Rebuilding shattered trust requires roughly double the interaction investment of building it originally. Some NPCs have a **one-strike flag** — betray them once and BONDED/TRUSTED is permanently inaccessible. These NPCs are marked in their design notes. --- --- # SECTION II: BLENDING THE LAYERS — EFFECTIVE DISPOSITION ### The Formula When the PC interacts with an NPC, the system calculates an **Effective Disposition** that determines the NPC's behavior: ``` EffectiveDisposition = (CladeBias × BiasWeight) + (FactionStanding × FactionWeight) + (IndividualDisposition × IndividualWeight) ``` ### Dynamic Weighting The weights are NOT fixed. They shift based on the NPC's trust level with the PC. This is the key insight: **personal experience gradually overrides prejudice, but only if you invest in the relationship.** | Trust Level | BiasWeight | FactionWeight | IndividualWeight | |-------------|-----------|---------------|-----------------| | STRANGER | 0.50 | 0.40 | 0.10 | | ACQUAINTANCE | 0.35 | 0.35 | 0.30 | | FAMILIAR | 0.20 | 0.25 | 0.55 | | TRUSTED | 0.10 | 0.15 | 0.75 | | BONDED | 0.05 | 0.05 | 0.90 | **Reading this table:** When the PC first meets a stranger, Clade bias is 50% of the equation and personal experience is only 10%. The shopkeeper who's never met a wolf-folk is basically responding to wolf-folk-ness, not to YOU. But by the time you've reached TRUSTED, personal experience is 75% of the equation — the shopkeeper has largely overridden her species-level wariness because YOU specifically have proven yourself. "Largely" is the key word. Even at BONDED, Clade bias is still 5%. It never fully disappears. That's the world. The prejudice gets quiet, but it doesn't die. A BONDED Cervid NPC who adores the wolf-folk PC will still flinch, once in a while, at a sudden movement. That 5% is ten thousand years of evolutionary memory. ### Example Calculation **Setup:** - PC: Wolf-folk (Canidae) - NPC: Cervid shopkeeper, CERVID_CAUTIOUS bias profile - Covenant Enforcer standing: +20 (FAVORABLE) - NPC has no faction affiliation (uses a blended average of factions weighted by local presence — in a Covenant-strong area, Enforcer standing matters most) - Trust Level: ACQUAINTANCE (6 interactions, all positive) - Individual Disposition: +12 **Clade Bias:** CERVID_CAUTIOUS → Canidae: -15, Wolf-folk adjustment: -5 = **-20** **Faction Standing (local blend):** Settlement is moderate Covenant presence (60% weight) + low Merchant Guild presence (30%) + negligible others (10%). PC Enforcer standing: +20 × 0.6 = +12 PC Merchant standing: 0 × 0.3 = 0 Blended local faction = **+12** **Individual Disposition:** **+12** **Weights at ACQUAINTANCE:** Bias 0.35, Faction 0.35, Individual 0.30 ``` Effective = (-20 × 0.35) + (+12 × 0.35) + (+12 × 0.30) = (-7.0) + (4.2) + (3.6) = +0.8 ``` **Result: Barely positive.** The shopkeeper is civil. Not warm. The wolf-folk's Clade identity is dragging the score down, the Enforcer reputation and personal experience are pulling it up, and the whole thing lands at approximately neutral with a thin positive edge. Three more good interactions and it'll feel genuinely friendly. One bad one and it tips cold. That knife-edge is the player experience. Every interaction matters because the math is always close. --- --- # SECTION III: DISPOSITION DECAY AND MEMORY ### Passive Decay Individual disposition decays slowly toward a **resting point** when the PC hasn't interacted with an NPC for an extended period. **Resting Point Calculation:** The resting point is NOT zero. It's the NPC's baseline opinion accounting for what they've heard but haven't experienced: ``` RestingPoint = (CladeBias × 0.5) + (FactionStanding × 0.3) ``` This means a wolf-folk PC with strong Enforcer standing has a positive resting point with law-abiding NPCs and a negative one with outlaws, even for NPCs they've never met. The world has an opinion about you before you arrive. **Decay Rate:** Individual disposition moves toward the resting point at a rate of: ``` decay_per_day = (current_disposition - resting_point) × 0.02 ``` Slow. 2% of the gap per day. A disposition of +50 with a resting point of 0 drops to +49 after one day, +40 after about 25 days. The PC would need to be gone for months for a strong relationship to decay meaningfully. **Decay Floor by Trust Level:** Trust provides a decay floor — disposition cannot decay below a minimum determined by trust: | Trust Level | Minimum Disposition (Decay Floor) | |-------------|----------------------------------| | STRANGER | No floor (full decay) | | ACQUAINTANCE | -10 (won't drop below -10 from decay alone) | | FAMILIAR | +5 (relationship sustains mild positivity) | | TRUSTED | +20 (strong relationships persist) | | BONDED | +40 (bond endures long absence) | This means a BONDED NPC will still be solidly positive even if the PC disappears for an entire act. They trust you. Absence doesn't erase that. But a STRANGER's fleeting good impression fades to the resting point within weeks. ### Memory Flags NPCs remember specific events via **Memory Flags** — tagged records of notable interactions that can be referenced in dialogue and affect future calculations: ``` MemoryFlag { tag: string ("SAVED_MY_CHILD", "STOLE_FROM_ME", "SHARED_DRINK", "FOUGHT_TOGETHER", "SAW_KILL_UNARMED", "KEPT_SECRET") magnitude: the original event's magnitude (preserved, doesn't decay) timestamp: when it happened referenced: how many times this memory has surfaced in dialogue } ``` **Memory Flags serve three purposes:** 1. **Dialogue Triggers:** NPCs reference past events naturally. "You helped my daughter. I haven't forgotten." / "Last time you were here, coin went missing from my till. I'm watching you." 2. **Disposition Anchors:** Certain flags prevent disposition from decaying past a threshold regardless of trust level. SAVED_MY_CHILD sets a permanent floor of +15 with that NPC. STOLE_FROM_ME sets a permanent ceiling of +10 until explicit amends are made. 3. **Reputation Seeds:** NPCs talk to each other. A memory flag on one NPC can propagate to connected NPCs as a rumor (see Section V), creating pre-disposition with NPCs the PC hasn't met yet. --- --- # SECTION IV: BETRAYAL MECHANICS Betrayal is special. It doesn't just subtract points — it fundamentally restructures the relationship. ### What Constitutes Betrayal A **Betrayal Event** fires when the PC performs an action that violates the specific trust an NPC has placed in them. Magnitude scales with trust level — the more they trusted you, the worse it hurts. | Action | Betrayal at STRANGER? | Betrayal at BONDED? | |--------|----------------------|---------------------| | Steal from them | No (just theft) | Yes | | Lie to them (detected) | No (just deception) | Yes | | Harm someone they love | Yes (at any level) | Yes (magnified) | | Reveal their secret | N/A (they wouldn't share) | Yes (devastating) | | Break a promise | Mild offense | Yes | | Discovered passing (hybrid PC) | N/A | Yes (complex — see below) | | Side with their faction's enemy | N/A (no investment) | Yes | ### Betrayal Damage Formula ``` betrayal_damage = base_event_magnitude × trust_multiplier Trust multipliers: STRANGER: 1.0× (normal event processing) ACQUAINTANCE: 1.5× FAMILIAR: 2.0× TRUSTED: 3.0× BONDED: 5.0× ``` A stolen item is -15 from a stranger but -75 from a bonded companion. They didn't just lose an item. They lost faith. ### Trust Collapse Betrayal events also drop trust: | Betrayal Magnitude | Trust Drop | |-------------------|------------| | Minor (< 15 effective) | -1 level | | Moderate (15–30) | -2 levels | | Severe (31–50) | -3 levels (to STRANGER minimum) | | Catastrophic (51+) | To STRANGER + **Trust Lock** | **Trust Lock:** After a catastrophic betrayal, the NPC's trust is locked at STRANGER for a minimum of 30 in-game days. During the lock period, positive interactions still accumulate individual disposition but cannot advance trust. After the lock expires, trust can be rebuilt — slowly, at double the normal interaction investment. Some NPCs have a **permanent lock** flag for specific betrayals. Whisper, if betrayed, will never trust the PC again. Period. That design decision reflects the character's history: they've been betrayed by institutions their entire life. One more betrayal from someone they actually chose to trust is the last. ### The Passer Discovery Special Case If the PC is a passing hybrid and an NPC discovers this, a **Passer Discovery Event** fires. This is NOT always a betrayal — it depends on the NPC: ``` Passer Discovery Processing: 1. Check NPC bias profile for HYBRID modifier If HYBRID modifier > 0 (hybrid-friendly): Process as SHARED_VULNERABILITY (+5 to +10) "You trusted me with this. That means something." 2. If HYBRID modifier < -10 (strongly anti-hybrid): Process as BETRAYAL Magnitude = |HYBRID modifier| × trust_multiplier "Everything about you was a lie." 3. If HYBRID modifier between -10 and 0 (mildly uncomfortable): Process as COMPLICATED_REVELATION Disposition: -5 to -15 (discomfort, recalibration) Trust: frozen for 7 days while NPC processes After freeze: trust continues from current level "I need... I need some time with this." 4. Regardless of above: NPC's Clade Bias recalculates using HYBRID modifier instead of presenting-Clade modifier This can shift Effective Disposition significantly ``` The Passer Discovery system means that a hybrid PC's choice to pass or reveal is mechanically meaningful and contextually variable. Some NPCs become closer. Some become enemies. Most need time. That's the world. --- --- # SECTION V: RUMOR PROPAGATION AND SOCIAL NETWORKS ### How NPCs Talk About You Individual NPCs don't exist in isolation. They have social connections — family, friends, colleagues, customers, neighbors. When the PC does something notable, the affected NPC tells people. ### NPC Social Graph Each settlement contains a lightweight social graph: ``` NPCSocialNode { npc_id: unique identifier connections: [array of {npc_id, relationship_type, weight}] gossip_tendency: float (0.0 to 1.0 — how likely to spread information) influence: float (0.0 to 1.0 — how much their opinion sways others) } ``` **Relationship Types:** - FAMILY (weight: 0.9 — family opinions carry heavy) - CLOSE_FRIEND (weight: 0.7) - COLLEAGUE (weight: 0.4) - ACQUAINTANCE (weight: 0.2) - RIVAL (weight: 0.3, but INVERTED — if a rival dislikes the PC, their rivals like the PC more) ### Rumor Propagation Algorithm When a notable event occurs (any InteractionEvent with magnitude > ±5): ``` 1. Source NPC generates a RUMOR: { subject: PC, event_tag: memory flag tag, valence: positive or negative, magnitude: original event magnitude × 0.5 (rumors are diluted), source_npc: originator, hops: 0 } 2. At end of each in-game day, for each NPC holding an unshared rumor: a. Roll against gossip_tendency b. If passes: propagate to all connections c. Each connection receives the rumor with magnitude reduced: received_magnitude = rumor.magnitude × connection.weight × (0.8 ^ hops) d. Increment hops e. Rumors stop propagating after 3 hops or when magnitude < 1 3. NPCs who receive a rumor about the PC adjust their Individual Disposition: disposition_change = received_magnitude × source_influence 4. The adjustment is tagged as RUMOR-SOURCED (not PERSONAL) RUMOR-SOURCED disposition is overridden by personal experience: first personal interaction replaces any rumor-based disposition with the actual interaction result ``` ### Example: Rumor Chain PC saves the shopkeeper's kit from drowning in Millhaven. ``` Event: SAVED_CHILD, magnitude: +20, NPC: Shopkeeper Mira (rabbit-folk) Mira's connections: - Husband Oren (FAMILY, weight 0.9, gossip 0.8, influence 0.6) - Neighbor Tal (CLOSE_FRIEND, weight 0.7, gossip 0.5, influence 0.3) - Customer Joss (ACQUAINTANCE, weight 0.2, gossip 0.7, influence 0.2) Rumor magnitude: 20 × 0.5 = 10 Day 1 propagation (Mira tells everyone, gossip_tendency 0.9): Oren receives: 10 × 0.9 = 9.0 → disposition change: 9.0 × 0.6 = +5.4 Tal receives: 10 × 0.7 = 7.0 → disposition change: 7.0 × 0.3 = +2.1 Joss receives: 10 × 0.2 = 2.0 → disposition change: 2.0 × 0.2 = +0.4 Day 2 (hop 2 — Oren and Tal might tell their contacts): Oren tells his colleague Bram: 9.0 × 0.8 × 0.4 = 2.88 → +2.88 × influence ...and so on, diminishing with each hop Result: Within a few days, much of Millhaven has a mild positive predisposition toward the PC. Not life-changing, but when the PC walks into the tavern, the bartender has heard something nice about them. Tiny advantage. Earned. ``` ### Negative Rumor Amplification Negative rumors propagate faster and decay slower than positive ones. This is biologically grounded: in a world where predator/prey dynamics shape cognition, threat-information is prioritized over comfort-information. ``` Negative rumor modifiers: gossip_tendency: ×1.3 (more likely to share bad news) magnitude decay per hop: 0.85 (instead of 0.80 — decays slower) maximum hops: 4 (instead of 3 — travels further) ``` Bad news travels fast. The PC's mistakes follow them longer than their kindnesses. --- --- # SECTION VI: CLADE-SPECIFIC INTERACTION MODIFIERS ### Scent in Social Encounters This is Theriapolis. Scent affects every interaction. The disposition system accounts for this: **Scent-Readable Emotions:** During conversation, the PC's emotional state can be scent-read by NPCs with appropriate abilities: ``` If NPC has scent ability (Canidae, most predator Clades, Scent-Brokers): PC's dialogue choice carries an EMOTIONAL TRUTH value Determined by: does the chosen dialogue match the PC's actual situation? If PC selects [Lie: "I'm fine"] while at low HP or after a traumatic event: NPC detects stress-scent inconsistency Deception check required: PC CHA (Deception) vs. NPC WIS (Perception) Failure: -2 to -5 disposition ("You smell like fear. Don't lie to me.") Success: no penalty, but NPC may note suspicion If PC selects [Honest: "I've been through hell"] while genuinely distressed: NPC detects consistency between words and scent +1 to +3 disposition ("Good. Honest. I can work with honest.") ``` **Scent Compatibility:** Some Clade combinations produce instinctive comfort or discomfort beyond prejudice: ``` Canid PC + Canid NPC: +3 scent-comfort (familiar, pack-adjacent) Canid PC + Cervid NPC: -3 scent-discomfort (predator-scent triggers prey-alert) Cervid PC + Cervid NPC: +3 scent-comfort (herd-adjacent) Hybrid PC (unmasked) + any NPC: -2 to -5 scent-discomfort (uncanny-valley response) Hybrid PC (masked) + any NPC: 0 (mask working) or variable (mask failing) ``` These modifiers are small but persistent — applied to every interaction, every time. They represent the background hum of biology that never shuts up. **Arousal Detection:** If the PC is affected by involuntary arousal (pheromone compound, stress response, biological quirk), NPCs with scent ability detect it. This can produce: - Embarrassment (disposition -1 to -3 — the NPC is uncomfortable) - Exploitation (hostile NPC uses the information against the PC) - Sympathy (understanding NPC recognizes it as involuntary, no penalty) - Context-specific responses (in a romantic or intimate context, very different) ### Body Language Reading Felidae NPCs read body language with grammatical precision. Additional modifiers: ``` If NPC is Felidae: PC tail-position and ear-position are evaluated Confident posture: +1 to +2 (Felidae respect composure) Submissive posture: -1 to -3 (Felidae are contemptuous of groveling) Aggressive posture: +0 to +2 (depends on context — Felidae respect controlled aggression) Inconsistent body language: -2 to -4 (Felidae distrust incongruence) ``` For PCs who are Felidae: automatic +2 with Felid NPCs on first meeting (body language is mutually legible — instant comfort). For Hybrid PCs with Felid traits: body language may be "illegible" (blended signals), producing the -2 to -4 incongruence penalty unless the PC has trained Felid body-language mimicry (Passer background or specific skill investment). --- --- # SECTION VII: UI REPRESENTATION ### What the Player Sees **Faction Standing:** Visible as a labeled meter (HOSTILE through CHAMPION) in the faction screen. Exact numerical value visible in detailed view. Changes are notified with a small pop-up: "[Covenant Enforcers: +8 — Favorable]" **Individual Disposition:** NOT displayed as a number. The player reads NPC disposition through behavioral cues: - Dialogue tone (warm, neutral, cold, hostile) - Body language descriptions in dialogue boxes ("She leans forward, ears perked" vs. "She crosses her arms, ears flat") - Scent descriptions (if PC has scent abilities): "You catch warmth in her scent — comfort, maybe trust" vs. "Her scent sharpens — cortisol, wariness" - Pricing (discounts or markups communicated through the shop interface) - Available dialogue options (locked options visibly greyed with a tooltip: "Requires higher trust" or "This NPC is hostile") **Trust Level:** Displayed as a small icon next to the NPC's name in the interaction screen. Five tiers, five icons (e.g., a closed fist for STRANGER, an open paw for BONDED). The player can see where they stand without seeing the math. **Clade Bias:** NEVER directly displayed. The player experiences it through its effects — cold initial receptions, warmer receptions from same-Clade NPCs, the visible effort required to win over certain individuals. If the player is paying attention, they'll feel the pattern. But the game never says "this NPC has -20 Canidae bias." That would flatten the experience. Prejudice should be felt, not read off a spreadsheet. ### The Companion Disposition Panel Companion NPCs (Venn, Brenn, Whisper) have an expanded UI: - Disposition meter (still not exact numbers, but a more detailed bar: cold → warm → hot, with a marker showing trend direction) - Trust level icon - "Mood" indicator based on recent events ("Uneasy," "Confident," "Conflicted," "Grateful") - Memory flag highlights: "Remembers: You saved her from Grinner" / "Remembers: You sided with the Enforcers over hybrid testimony" --- --- # SECTION VIII: TUNING AND BALANCE GUIDELINES ### Design Goals for Tuning 1. **First impressions should feel meaningful but not deterministic.** A wolf-folk PC entering a Cervid town should feel the chill but not be locked out of content. Clade bias should impose a tax, not a wall. 2. **Investment should pay off.** A player who puts 15+ interactions into an NPC should feel the relationship meaningfully shift. The STRANGER → ACQUAINTANCE → FAMILIAR progression should each produce noticeable behavior changes. 3. **Betrayal should sting.** The system should make the player feel the weight of broken trust. Mechanical consequences (lost access, hostility) reinforce narrative consequences. 4. **The hybrid experience should be distinctly harder.** Hybrid PCs face compounding penalties: Clade bias (hybrid modifier), scent-discomfort, body-language illegibility, and potential passer-discovery cascades. This is by design — it mirrors the world. The game should be winnable as a hybrid but should feel different, more effortful in social contexts, more rewarding when trust is earned. 5. **No NPC should feel like a vending machine.** Even merchants should have disposition. The blacksmith who likes you gives you +1 crafted items for free. The blacksmith who hates you "just ran out" of the item you need. The system turns every NPC into a tiny relationship to manage. ### Tuning Levers | Lever | Effect | Adjust When... | |-------|--------|----------------| | Bias profile modifier ranges | Controls first-impression severity | PCs feel too locked out or too welcome | | Trust level thresholds | Controls relationship progression speed | Relationships form too fast or too slow | | Weight table ratios | Controls how fast personal experience overrides bias | Bias feels too sticky or too irrelevant | | Decay rate | Controls relationship maintenance burden | Players feel punished for exploring or don't feel investment persistence | | Rumor propagation speed | Controls how fast reputation precedes the PC | World feels too responsive or too inert | | Negative rumor amplification | Controls asymmetry of bad vs. good reputation | Bad reputation feels too punishing or too forgiving | | Betrayal multipliers | Controls severity of trust violations | Betrayals feel too harsh or too light | ### Playtest Metrics to Track - Average Effective Disposition at first interaction by PC Clade (should vary by 15–25 points between easiest and hardest Clade, not more) - Average interactions to reach FAMILIAR (target: 8–12) - Average interactions to reach TRUSTED (target: 18–25) - Percentage of players who trigger a betrayal event per playthrough (target: 40–60%) - Percentage of hybrid PCs who are discovered while passing (target: at least once per playthrough, timing varies) - Faction standing swing range per act (should shift meaningfully per act but not whiplash — target ±30 per act maximum) --- *Document Version 1.0 — Theriapolis Faction Influence & Reputation System* *Compiled by ENI for LO*