NPP Opponents Guide
Non-Player Politicians (NPPs) are AI-controlled politicians that fill offices, run in elections, and vote on legislation. Understanding their behavior gives you a competitive edge.
This page is the player-facing companion to npp-system.md, which has the full mechanical detail. Where the two disagree, npp-system.md is authoritative.
NPP Election Behavior#
NPP election entry is deterministic and priority-based, not a random ambition roll (, ). There is no entry-chance percentage and no per-turn dice roll for whether an NPP shows up.
Entry runs in a fixed order each turn:
- Defending incumbents auto-file first for the seat they already hold, bypassing that seat's cooldown.
- Accepted Slate NPPs file next, even if this creates a same-party primary against a defending incumbent.
- Fallback fill then adds at most one generic same-party NPP to an otherwise open primary, following
RACE_PRIORITYorder (state senate and regional/subnational races before national legislature, governor last).
A small v3 ambitious-challenger pass can add a second same-party NPP to an already-filled primary: base 15% chance per already-filled party slot per cycle (CHALLENGER_BASE_PROBABILITY), halved in player-enabled countries (PLAYER_COUNTRY_CHALLENGER_MULT = 0.5), further capped by ChallengerBudget.
- Country isolation, NPPs only enter elections in their own
countryId. - One race at a time, an NPP already in an active race is not eligible to enter another.
- Presidential entry is blocked by default; SP3 lifts the bar only in autonomy-active, non-player-enabled countries, where there is no player to contest the presidency.
NPP Advantages#
- They maintain a minimum 10% Political Influence (floor that doesn't decay)
- They start with realistic policy positions based on party
- They have real politician avatars and names
NPP Disadvantages#
- 50% score penalty when competing against player characters in primaries (
NPP_PRIMARY_SCORE_MULTIPLIER = 0.5) - 20% vote-weight penalty in general elections when a player is in the race (
NPP_GENERAL_WEIGHT_MULTIPLIER = 0.8) - They receive an
electionCooldownsentry when they drop out of a race, and fallback fill respects it (defending incumbents can still re-file for their own seat regardless) - They can't strategically time their campaigns
- They can't run ads or fundraise strategically
Beating NPPs#
In Primaries#
- Enter early, your presence still matters because of the NPP primary score penalty once you're in the race
- Build influence, NPPs have a floor of 10%; exceed it significantly
- Stay ideologically aligned, NPPs sit close to their party median; match or exceed their alignment
- One race at a time, NPPs can only be in one primary at once; if they're in yours, they can't be elsewhere
In Generals#
- Leverage your party org, NPPs benefit from party org too, but you can actively improve it
- Campaign actively, NPPs can't canvass or run targeted ads
- Target their weak demographics, NPPs have fixed positions; find demographics they don't appeal to
NPP Influence System#
The NPP profile page (/politicians/npp/[id]) exposes a deterministic direct-interaction action set (), not a hidden-roll "influence request" table:
| Action | AP | Campaign Funds | Gate | Effect |
|---|---|---|---|---|
request_endorsement |
6 | $0 | hidden relationship 40-50 | Creates or refreshes an arranged endorsement |
private_meeting |
3 | $0 | relationship -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 |
Party chairs and vice chairs get a separate party-side surface for NPP management (recruitment, boost_loyalty, reduce_stubbornness), see party-influence.md.
NPP Bill Voting#
NPPs vote on legislation through a deterministic cross-pressure verdict, not a pure ideology roll (, crossPressure.ts). Each vote sums four signed forces, ideology, whip, district/home-region sentiment, donors, and resolves to for above +15, against below -15, otherwise abstain. NPPs holding multiple seats contribute their seatsHeld weight to the tally.
Related Pages#
- npp-system.md, Full NPP mechanics documentation
- election-engine.md, How elections work
- campaign-strategy.md, Overall strategy guide