Pascal's Wager Wiki

NPCs in Pascal's Wager are the people (and a few creatures) the Courier can talk to between fights: survivors in the villages, helpers who open gates, merchants, companions waiting to join and a few mysterious figures. They have no names in the data tables (the model name is an internal Chinese label), so most are known by their lines. The pages linked below give each character's story, what they hand out and the hidden flags that drive their dialog.

Where NPCs appear#

ChapterStory NPCs and services
Carriage hubThe playable heroes talk in menus when you pick the next destination; see Carriage.
1, HeggemOld Woman of Heggem, the talking egg (The Tear of Heggem), two Black Spirit merchants, five Heggies.
2, AdaminaLittle Girl of Adamina and her mother, Herbalist of Adamina, one Black Spirit, five Heggies.
3, ExiliumRosen Cavalier Patrick (character), Benita (two spots), two Black Spirits, five Heggies.
4, EdithFrollo, Elena (seven spots), Vincent (see Vincent and Eleanor), the old woman of Find Andrew, Jerold, two Black Spirits, five Heggies.
5, KatibKatib NPCs (sunflower, stick man), the Gravedigger, Jerold, three Black Spirits, five Heggies.
6, BlessedlandBlessedland NPCs, Eleanor, Glenn, Benita, two Black Spirits, five Heggies.
7, Karst CaveViola, Norwood, Benita, Jerold and Glenn at the exit, the hanging man of Hunger, two Black Spirits, five Heggies.
8, Colossal GraveA dying woman who gives a bracelet (below), and Teresa as the final boss.
9, Ichthyosauria (DLC)Ichthyosauria NPCs, five Black Spirits, five Heggies.

The numbers of Black Spirits and Heggies come from tables StoryMonster (hero 20003 and 90008; 31 merchant rows with a dialog and 40 Heggie rows) and StoryFrog.

Black Spirits (merchants)#

The black sprite model (hero 20003, 31 story-monster rows with a dialog: 14 in chapters 1 to 7, 5 in the DLC and 12 in the safe-house, maze and boss-rematch stories) is the merchant. One more row of the model in chapter 6 (monster 6121, shown by flag 63713) has no dialog and sells nothing. They all follow the same script: a greeting, a menu with Trade and Leave, then the shop panel (table TransactionData; see Merchants for stock and prices). Chapter 1 has two merchants, chapter 2 one, chapters 3, 4, 6 and 7 two each, chapter 5 three and the DLC five.

The farewell line depends on what you did. After the shop closes the game picks the next line with an index: 1 if you bought or sold anything, 2 if you left without trading. Merchants therefore answer with two different lines per shop, for example "Ha-ha, simple human" if you traded and "Ha-ha, cunning human" if you did not, or the grumpy "I've met meager Couriers just like you, and I'm sorry to say they're all dead now" if you left empty-handed in chapter 3. From exchangectrl.lua:23-26, 56 and dialogctrl.lua:991-1023.

Companions as NPCs#

The playable heroes also have NPC spots in the story. Most are one-line gateways in a chapter that allow the hero to join or leave.

HeroWhere they appear as an NPC
ViolaChapter 7 (two spots, flagged as NPC) and the carriage hub.
BenitaChapter 3 (two spots), chapter 6 (the talk after Teresa is taken), chapter 7, the carriage hub.
NorwoodChapter 7 (two spots) and the carriage hub.
JeroldChapters 4, 5, 7 and 9, and the carriage hub (the DLC hero).
ElenaChapter 4 (seven spots).

Other single NPCs#

  • The dying woman of the Colossal Grave (hero 20046, chapter 8, monster 8023). The data labels her model "Viola's mother", which suggests who she is (inferred; the dialog does not name her). She asks whether you are still hanging on and says she and her companions sacrificed an innocent Marcion girl and drank the water of a taboo, which turned them into what they are. She no longer remembers whom she is waiting for and gives the Courier a Bracelet (item 10052, quest 85022) engraved with Samarosian words (the item text says it was left by the Mysterious Woman in the Colossal Grave), asking him to find the person who recognizes it and tell them she waited here. The Bracelet is a key item (see Key items).
  • Proxy Higgins's body in chapter 6 is not a person you can talk to but a warning prompt; see Blessedland NPCs.

The 11 Tales#

The Witness achievement ("Finish all the Tales") needs 11 flags. Each belongs to a story NPC (quest ids 95011 to 95071). The quest pages own the steps and rewards (Side Quests#Witness: "Finish all the Tales"); this table says who ends each Tale.

ChapterTale flagsNPC
195011, 95012Old Woman of Heggem (The Woman Looking for Her Child); the talking egg, which cries that you smell like the Witch (The Tear of Heggem)
295021, 95022Little Girl of Adamina or her mother (Mother and Daughter); Herbalist of Adamina (The Pain of Newborn)
395031Rosen Cavalier Patrick (character) (Headless Knight)
495041, 95042The old woman who waits for her sons (Find Andrew); Vincent (Old Man and the Candle, Vincent and Eleanor)
595051The stick man in Katib NPCs (The Wandering Courier)
695061, 95062Eleanor (Die or Become the Sendril); the blind old man (The Secret of the Four Holy Pillars, Blessedland NPCs)
795071The hanging man who wants to wake from a dream (Hunger)

The achievement "War and Destiny" (id 10017) shares three of those flags (95031, 95042, 95061). The DLC quest River of Memories has no Tale flag.

How the dialog system works#

Dialog lines live in table StoryDialog. Every row has a type, and the type decides how it is shown (ms_storydialog.lua:7-18):

TypeName in codeCountUse
1ClickNext1,686An ordinary line, advanced by a click.
2IncludeOption198A line that opens a menu of options.
3Option526One menu entry the player picks.
4HostWhisper374The active hero's thought, drawn above the player.
5NpcWhisper117A short line spoken by a nearby NPC (matched by monster id).
6Transaction41Opens the shop panel of a merchant.
7CrowWhisper130A line spoken by the crow.
8Frog40Opens the Heggies panel.
0(unset)3Menu entries ("Leave", "Accept") that carry no type.
9, 10Wear, Statue1 eachA "wear" prompt (inferred to be an outfit prompt), and the maze statue prompt (see Maze statues).

Hidden mechanics#

  • Flags decide everything. Each NPC spot has a dialog entry, a show flag and a hide flag. A spot appears when its show quest is complete and its hide quest is not. Dialog rows have their own show and hide flags, and a spot lists several entry ids; the first entry that passes the flags is shown (inferred from the data layout). This is why NPCs seem to "move" from a hiding place to a cell to a safe spot as you progress.
  • Gold text (a color tag, DBBA7F) marks options that mostly start, hand in or advance a quest (an observed pattern, not stated in the code).
  • Read flags. Each topic option sets a "read" quest id (the 900xx range), which the game uses to remember which topics you have asked about.
  • Quest actions. A dialog line completes quests; a quest can give items (action 2), take items (18), show a quest-log message (19), play a movie (7), play a timeline (25), destroy a monster (5), go to a stage (24) or record an achievement (30; flag system: Side Quests#Hidden mechanics). The enum is in controllerstorymode.lua:94-.
  • Random lines. When a row lists several possible next lines (MultiNextId), the game picks one at random among those whose flags pass.
  • Arcade copies. Story ids 1001 to 1007 are Arcade-mode versions of chapters 1 to 7 (the code subtracts 1000 to find the music, controllerstorymode.lua:887-888), and a subset of NPCs is copied there: the little girl and her mother, Patrick's second spot, Eleanor, the Higgins gate, Frollo's last spot, Glenn, the Gravedigger and a few hero spots. See Arcade mode.
  • The crow. Type 7 lines are spoken by the crow that follows the player.

Sources#

  • Tables StoryDialog (3,117 rows), StoryMonster (rows with DialogId and IsNPC), StoryQuest, StoryFrog, TransactionData, UIQuest, Achievement ids 10017, 12004 and 12009.
  • reference/lua_src/luascript/structdata/ms_storydialog.lua:7-18; ui/controller/dialogctrl.lua:9-18, 991-1023, 1296-1301; ui/controller/exchangectrl.lua:23-26, 56; controller/controllerstorymode.lua:94-.
  • Data dumps built for this article: build/wiki/data/npcs/dlg_<hero>.txt and npc_monsters.json.
Categories:NPCs