Merchants are the characters who trade items for the game's bone Currencies. Most of them are small Black Sprites standing beside the path in each chapter; the Carriage has its own vendor, Viola and Norwood run private collections, Benita blesses potions instead of selling, and the Dark Mist safe house has one more Black Sprite. All shop data lives in one table with 218 rows grouped into 22 stock lists, and every row holds four versions of itself, one for each New Game Plus journey. This page explains how shops work and what the game never tells you about stock, prices and selling; the stock itself is split over Chapter merchants, Carriage supplies, Viola's collection, Norwood's sundries and Safe house shop.
The vendors#
| Vendor | Where | Stock list | Pays with | Page |
|---|---|---|---|---|
| Black Sprites, 1 to 3 per chapter | Heggem, Adamina, Exilium, Edith, Katib, Blessedland, Karst Cave | 1040, 1042, 2009, 3003, 3004, 4096, 4097, 5116-5118, 6093, 6094, 7056, 7057 | Bone Fragment, Big Bone, Fractured Body, Filthy Core | Chapter merchants |
| Black Sprites (DLC) | Ichthyosauria | 9135-9138 | Bone Fragment, Big Bone, Fractured Body | Chapter merchants |
| Carriage vendor | The Carriage | 99601 | Bone Fragment, Big Bone | Carriage supplies |
| Viola | Carriage and Karst Cave | 1902 | Dominator Crystal | Viola's collection |
| Norwood | Carriage and Karst Cave | 1903 | Anthozoan Bones | Norwood's sundries |
| Benita | Carriage and Karst Cave | none (blessing service) | Bone Fragment | see Blessing below |
| Safe house Black Sprite | Dark Mist safe house | 499001 | Spectre Mushroom | Safe house shop |
The monster id of a stall is also its stock list id: row MonsterId 1040 is "the stall of the sprite numbered 1040". The only deviation is Katib, where list 5118 is sold by the sprite numbered 5127 (see Chapter merchants).
Opening a shop#
You talk to the character, pick "Trade" in the dialog menu, and the game opens an Exchange panel. The kind of panel is set by the TransactionType of the dialog:
| Type | Panel | Used by | Tabs |
|---|---|---|---|
| 1 | Normal | Black Sprites, Carriage vendor | Buy and Sell |
| 2 | Viola | Viola | Buy and Sell (sell fixed-stat trophies) |
| 3 | Norwood | Norwood | Buy and Sell (sell fixed-stat trophies) |
| 4 | Benita | Benita | Blessing only |
| 5 | Secret | no dialog in the data uses it | Buy list only, no tabs |
| 6 | Maze | Safe house Black Sprite | Buy and Sell (sell random-property trophies) |
Viola and Norwood also show their own currency counter, and the first time you open each of their panels a short tutorial pops up.
Buying#
A row is shown in a shop when all of these hold:
- Its stock list (
MonsterId) is the one named by the dialog you opened. - Its item in the current journey is not 0. Some rows are empty in journey 1 and filled later (Viola's four consumables).
- In Story mode, ALL quests in its
ShowQuestIdlist are complete and NONE of the quests in itsHideQuestIdlist is (one completed hide quest is enough to hide the row). Quest lists are separated by;. Outside Story mode this check is skipped. - If it has
DLCSwitch1 you must own the Dark Mist DLC. - Its remaining stock is above 0 (stock -1 means unlimited).
Rows are listed in TransactionId order, not by price. When you press Buy, the game checks, in this order:
- Do you have enough of the payment currency for price x quantity?
- Would your bag exceed the item's stack limit? (Elixirs stack to 10, materials to 99, throwables to 10, and so on.) You get a "reached the maximum" message.
- For trophies (and Dream Chests), is your trophy bag full? The cap is 600 trophies.
Only then are the item and the price exchanged and the stock reduced.
Selling#
Every shop's second tab is the sell tab. Selling is always paid in Bone Fragments (Spectre Mushrooms in the safe house), at a flat price taken from the item's Price column. There are no haggling or journey effects on selling.
| Panel | What can be sold | Payout |
|---|---|---|
| Normal | Materials (item main type 7) and the bone currencies (main type 4) that have a price: crafting scraps, herbs, spores and so on at 1 to 10 each; Big Bone 7; Fractured Body 45; Filthy Core 260. Formulas, documents, trophy boxes, consumables, Immundus and stones (Raw Stone, Blackwater parts) are not listed. | Bone Fragments x price |
| Viola, Norwood | Fixed-stat trophies with a price (76 trophy rows, base price 4 to 40) | Bone Fragments, ceil(Price x (1 + (Level - 1) x 0.1)) |
| Maze | Random-property trophies (246 rows, base price 10 / 12 / 14 / 16 / 18 / 20 for levels 1 to 6) | Spectre Mushrooms, same formula |
The trophy formula uses the level of your own copy, so an enhanced trophy sells for more. A locked trophy cannot be sold. Trophies sold at Viola's or Norwood's are not paid in their own currencies: you can never earn Dominator Crystals or Anthozoan Bones by selling.
The gap between buying and selling is wide. The Carriage vendor sells Heggem Mushroom for 8 Bone Fragments in journey 1 but buys it back for 2, and Big Bone, which the second stalls take as currency, is worth only 7 Bone Fragments on the sell tab.
Blessing (Benita)#
Benita does not sell anything. Her panel starts on the sell tab with the label "Bless" and lists every blessable consumable in your bag (12 elixirs and powders, 15, 25 or 30 Bone Fragments each). The Bone Fragments are always spent; each potion succeeds with a 40% chance (70% / 100% with her talent Elixir Research, which counts even when she is not in your party), and a failure returns the plain potion. Twenty successes on one potion, or a 5% jackpot roll in a batch with a success, hand over that potion's Formula. The costs, the jackpot rule and the maths are owned by Blessing; the formulas by Alchemy#Where the formulas really come from.
Stock, restocking and New Game Plus#
Each row has four sets of numbers (ItemId_1..4, Price_1..4, Num_1..4, IsRefresh_1..4, ShowQuestId_1..4, HideQuestId_1..4). The game picks the column for the save's journey, and journeys above 4 reuse column 4. Arcade mode always uses column 1. Prices rise with every journey (median x1.5, x2.2, x3.25 in journeys 2, 3, 4; the exact steps are hand-set per row, see Chapter merchants#How prices and stock change per journey). Some rows also change the item itself: Throwing Knife becomes Huge Fang, Chipped Immundus becomes Blackwater Debris, and trophies sold are one level higher. See Chapter merchants for the full per-row tables.
What happens to stock you have bought:
- Counters only exist after your first purchase. The save keeps a counter per row id (
transaction_num) that is created when you buy something from a limited row. Rows with stock -1 are unlimited; their counter is written (as a negative number) but never read. - Restock. Only rows with
IsRefresh1 refill, and only back to their full stock. The only refillable rows in the data are Elixir of Sanity (stalls 1040, 2009, 3003, 4096, 5117, 6093, 7056) and Elixir of Hallucination (3003, 4096, 5117, 6093, 7056), 5 each. - When the refill happens. The refill is part of the player-respawn routine. It runs when you rest at an altar (the "worshipping rest" command), when the whole party is dead and you respawn, and when a non-new save is loaded into a stage. Dying therefore restocks your elixirs as well. (The load case is inferred from where the routine is called.)
- New Game Plus. When a new journey (or an Arcade run) starts, all counters of rows with
NotReset0 are deleted, which restores full stock for everything you bought. Rows withNotReset1 keep their counter: all ten alchemy Formulas sold by chapter stalls, Viola's six trophies, the Dark Mist DLC items at the Carriage vendor and everything in the safe house.
Hidden mechanics#
- No discounts exist. The Katib, Karst Cave and Ichthyosauria sprites claim they can offer "a good discount", but the prices are plain table numbers. The Exchange panel code uses the row's price as it is, with no discount, talent or difficulty term in it; the only shop-related talent effect I found is Benita's blessing chance.
- A stall can run out on the first visit. Immundus is limited per row (1 to 5 per stall). Buy everything in a chapter while you are there if you plan to play only one journey; the stock returns with the next New Game Plus journey, at higher prices.
- Dying and resting are free restocks. Because the respawn routine refills elixirs, you can empty a stall of Sanity and Hallucination elixirs, rest, and buy 5 more.
- Formula rows are forever. Once bought, a formula (such as Powder of Defence or Wildfire) is never offered again, even in later journeys. The same goes for Viola's six trophies.
- Contracts move Norwood and Viola's shelves. Three Broken Slates and three Ancient Relics in the story unlock new rows. Those quests are permanent, so Norwood's tier carries over into New Game Plus.
- The whale oil is DLC-only and boss-gated. See Carriage supplies#hm-the-whale-oils-are-only-for-dlc-owners.
- A gap in the Ichthyosauria rows. Row id 93008 does not exist in the data (ids run 93001 to 93011 with that one gap), so the DLC stall 9135 has ten rows, not eleven.
Trivia#
- The same Black Sprite model also appears as a treasure-carrying enemy that runs away from the player (see the enemy data for hero 20003).
- The panel type "Secret" (5) exists in the code but no dialog in the data uses it.
Sources#
ES_TransactionData(gamedata/structdata/exportdata/es_transactiondata.lua, 218 rows; row ids 10001 to 4990013; first row at line 29, last row 4990013 at line 7407).MonsterId= stock list,NotReset,DLCSwitch, and the_1.._4journey columns.MS_TransactionData(structdata/ms_transactiondata.lua:8-62): Init, SetLoop, IsNeedRefresh, GetNumMax, IsNeedReset.FS_SaveStory(structdata/fs_savestory.lua):SetLoopandGetLogicLoop1956-1978,Restart1252 (callsRestartTransactionat 1304),ArcadeRestart1333 (1394),RestartTransaction/GetTransactionNum/RefreshTransactionNum3419-3448, save fieldtransaction_num432-436.- Restock trigger:
ControllerStoryMode:HostPlayerReborn(controller/controllerstorymode.lua:1966-1991,RefreshTransactionNumat 1991), called from lines 1222, 1516 and 1961; rest and death calls inlogic/player/animalbase.lua:13068-13078and13495-13505. - Exchange panel:
ui/controller/exchangectrl.luatypes 11-26, Open 592-697, buy click 225-290, bless click 322-440,LoadSellItem726-960,LoadBlessItem963+,LoadBuyItem1139-1366,GetOnSellItemVirtualList1521-1551,CheckDLCSwitchandIsMonsterPermit1553-1580,GetBuyItemRemainNum1583-1597. Dialog openerui/controller/dialogctrl.lua:1280-1300. - Constants:
MS_ItemData.MainType47-56,ItemID_ExpAddList121-129,TrophyCapacity157,BlessProbability161,BlessGetFormulaTimes162 (structdata/ms_itemdata.lua);BattleData.GameLoopMax= 4 (logic/battle/battledata.lua:45);IapData.GetEnterMaze(sdk/iapdata.lua:445-453). ES_StoryDialogType 6 rows (41 of them) and theirTransactionType;ES_StoryMonsterHeroId 20003 rows;ES_ItemData(Price, IsBless, BlessPrice, Param1),ES_TrophyData(Price, RandomProperty, Level); tutorial texts 1043, 1065, 1994-1996.