Skip to content
3 Death Saves

Haggling and Pricing

Every price a player sees in the vignette starts from the item’s base value and passes through the shop’s price modifiers. Haggling sits on top of that as an optional in-character way for a player to move the numbers.

Each shop carries a buy modifier and a sell modifier. The buy modifier scales what the shop charges for its goods. The sell modifier scales what the shop pays for goods a player offers. Both apply shop-wide. You can override either one for a specific item or for a specific actor. When several modifiers apply to the same line, they multiply together. Ranges and defaults are listed on the settings reference.

Haggling is off until you enable it for a shop in the Shop Settings app. There you set the target DC, the price on a win, and the price on a loss. You also choose which skills a player may lean on. Leaving the skill list blank allows any skill the system offers. A toggle limits haggling to one attempt per visit.

At the confirm screen the player sees a haggle prompt alongside the cart. The player picks a skill and rolls it against the shop’s DC. The roll posts to chat with the skill and DC in the flavor text. Meeting the DC wins the exchange. A win lowers what the shop charges that character and raises what the shop pays them. A loss does the opposite. The shopkeeper answers in character inside the vignette, quoting the new percentage, and the confirm screen carries a won-or-failed badge for the rest of the visit.

The skill list comes from the system adapter. For a system without skill presets, or for a check the presets do not cover, you can add custom roll rows in Shop Settings. Each row pairs a label with a roll formula. The formula must contain a die; a flat formula or one the system cannot read is flagged and never offered to players. Custom rows appear in the haggle prompt next to any adapter skills and work in any system.

Currency handling also comes from the system adapter. Totals display in the shop’s currency, and payment is settled across the buyer’s denominations, with change counted out where needed. A trade ends in one of four outcomes: success, insufficient funds, out of stock, or cancelled. In the dialogue tree editor a Transaction node can route each outcome to its own choice, so the shopkeeper reacts differently to an empty purse than to a change of heart. A cancelled branch is always required; outcomes without their own branch fall back to it.