A House Divided A House DividedDocumentation
Changelog
Game Design/World & Simulation

Non-Player Politicians (NPPs)

Last updated 2026-08-20
Player wikiNPPs Overview
Source files

NPPs are AI-controlled politicians who keep the world populated and politically active even when there are not enough players to fill every office. They can hold office, enter elections, vote on legislation, join caucuses, receive party pressure, and endorse candidates.

Overview#

Core Data Model#

Core Fields (npps collection)#

Field Type Description
name string Procedurally generated politician name
countryId CountryId Country ownership; always required for cross-country safety
homeState string Home state / region / prefecture key
party string Party slug or sequential-id-backed party reference
avatarUrl string? Optional portrait URL
politicalInfluence number 0-100, with a floor at 10
favorability number 0-100
policies PolicyPositions Economic / social positions and issue-domain stances
currentOffice OfficeType | null Current office held, if any
personality NPPPersonality loyalty, ambition, stubbornness
electionCooldowns Record<string,string> Election re-entry lockouts after dropout
retiredAt Date | null Retirement marker

Personality Traits#

Trait Range Current role in gameplay
loyalty 0-100 Party-discipline pressure, Slate acceptance, whip compliance, caucus stability
ambition 0-100 Reserved for future deeper challenger-behavior tuning; current entry is mostly deterministic
stubbornness 0-100 Resistance to influence, Slate assignments, whips, and cooperation asks

Election Behavior#

Handled from through the election-entry pass in .

Entry Rules#

Current NPP entry is deterministic and priority-based, not a pure random ambition roll.

Geographic Scope#

Entry Order#

NPP filing runs in a deliberate order:

  1. Defending incumbents auto-file first for the seat they already hold
  2. Accepted Slate NPPs file next, even if this creates a same-party primary against a defending incumbent
  3. Fallback fill then adds at most one generic same-party NPP to an otherwise open primary

Priority Order for Generic Fallback Fill#

Race Priority (highest first)
stateSenate
regionalCouncil
sangiin
house
commons
senate
shugiin
governor

Cooldowns and Dropout#

Bill Voting#

Handled by:

Scope#

NPPs now autonomously vote on:

The local pass currently covers:

Cross-Pressure Model#

Bill voting is now a deterministic cross-pressure verdict, not a simple ideology roll. Each vote is the sum of four signed forces:

Verdict rule:

Federal vs Local Weighting#

Federal and local bill voting share the same core structure, but local chambers weight home-region pressure more heavily and donor pressure more lightly than federal voting.

Whips in Auto-Voting#

Autonomous bill voting respects persisted party whips:

Immediate Bill Whips vs Autonomous Resolution#

The Whip Room can also apply NPP bill whips immediately:

Multi-Seat Weighting#

If an NPP holds multiple seats in a chamber, their vote contributes their seatsHeld weight to the tally.

Leadership Voting#

US congressional leadership elections are now treated as player-only for NPP behavior purposes.

The helper logic in remains as shared infrastructure, but the live turn pass does not cast NPP congressional leadership votes.

Influence System#

Players can still influence NPPs directly from the NPP profile page.

Direct Interaction Actions#

The live NPP profile panel now uses a deterministic player -> NPP interaction surface instead of the older hidden-roll request table.

Action Actions Campaign Funds Relationship Gate Effect
Request Endorsement 6 $0 hidden 40-50 Creates or refreshes an arranged endorsement
Private Meeting 3 $0 -50 +5 relationship
Boost Favorability 5 $10,000 none +3 favorability, +2 relationship
Reduce Favorability 5 $10,000 none -3 favorability, -2 relationship
Boost Influence 6 $20,000 none +2 influence, +2 relationship
Reduce Influence 6 $20,000 none -2 influence, -2 relationship

These direct interactions:

Party-Led NPP Management#

See party-influence.md for the party-side surface. Current intended behavior:

Party Whips#

See party-whips.md for the full whip design. NPP-specific behavior to keep in mind:

Endorsements#

Endorsements are now manual-only for NPPs. They do not organically endorse, switch, or re-evaluate campaigns during the turn system anymore.

Request Flow#

Players request endorsements from the NPP profile panel, and the endorsement only applies to the player's currently active campaign in that election.

That means the live requirement is:

Lifecycle#

An arranged endorsement stays active only while that specific campaign remains active and plausible.

Because endorsements are election-scoped, the player must request them again in future races.

Mechanical Effect#

Endorsements currently do two things:

Caucus Interaction#

NPPs can also participate in caucus systems: