β€ΉPrevious Post

πŸ›οΈ Stylish Shop v1.5.0: Purchase Requirements, Discounts, and Price Variance

Next Postβ€Ί
πŸ›οΈ Stylish Shop v1.5.0: Purchase Requirements, Discounts, and Price Variance
DESCRIPTION

v1.5.0 adds item purchase requirements, per-buyer personal discounts, randomized price variance, and configurable shop entry methods. Requirements appear in both the purchase confirmation dialog and the item detail panel across all 11 themes.

This release requires GlitchSmith Library v0.8.2 or newer and Foundry VTT v13 or v14.

πŸ”’ Item Purchase Requirements

Shop items can now require the buyer to own specific items before purchasing. Each requirement has a target item, a quantity, and an optional consume flag that spends the required items on a successful purchase.

Requirements resolve by UUID first, then fall back to an exact item name match when the UUID is unavailable.

The purchase confirmation dialog shows a live requirement block with needed, owned, and consumed counts, and disables the confirm button until every requirement is met.

Consume-aware reservation prevents double-spending the same owned item across multiple simultaneous requirements. Server-side transaction validation stays authoritative.

✏️ Requirement Editor in Shop Settings

Each shop item row now has a requirements section where GMs can add, edit, and remove requirements.

Drop a Foundry Item onto a requirement row to auto-fill its UUID, name, and thumbnail preview, or type the item name manually.

The UUID field is hidden by default to keep the editor compact. Requirement thumbnails render smaller than the main item thumbnail for clear visual hierarchy.

🎯 Personal Discounts

The Currency & Pricing tab now has a Personal Discounts editor where GMs can give individual buyer actors a percent discount that stacks with the shop multiplier and per-item discount.

Each row has a buyer picker dialog with search, All/PC/NPC filters, and portrait thumbnails. Picking a buyer fills the actor UUID, ID, and name automatically.

Discounts apply to purchase prices only and are enforced on the server side, so the client display, purchase confirmation, and transaction calculation all use the same discounted price.

🎲 Randomized Shop Prices

The Currency & Pricing tab has a Price Variance (%) default that gives each newly added or restocked item a stable random price within plus or minus that percent.

Every item row also has its own Variance (%) field: leave it blank to follow the shop default, set 0 to disable variance for that item, or enter 1-100 for an item-specific spread.

The variance is built from the manual per-shop price when one is set, so systems that cannot auto-read an item's price can still randomize a typed-in price. The generated price is stamped once and does not reroll when opening the shop, never drops a paid item to free, and keeps the base price's highest denomination.

πŸšͺ Shop Entry Methods

Shop Settings now lets GMs choose whether each shop opens through the G-key proximity prompt, double-clicking the shop token, or both.

Existing shops keep G-key entry enabled by default, while double-click entry starts disabled until a GM turns it on.

Double-click entry requires a configured shop token to be visible and within the module's interaction range. The Token HUD remains GM-only for Shop Settings.

πŸ”‘ Key Hints Toggle

Shop Settings now includes a Key Hints toggle that hides each theme's bottom key-hint and navigation footer while leaving keyboard and mouse behavior unchanged.

🎨 Theme Improvements

The purchase confirmation requirement block has theme-specific styling across every shipped shop theme: SF uses a cyan scanning manifest, Astra uses an amber cargo manifest, Terminal uses a CRT readout, Guild uses a requisition clause, Fantasy uses a spellbook reagent list, Paper Moon uses a ticket strip, Dustroad uses a bill-of-sale layout, Smithy uses a forge work order, Frenzy uses a black-market checklist, and the default themes use cleaner shop ledger cards.

The focused item detail panel now shows purchase requirements alongside stats and description across all 11 themes, so players can see what they need before pressing buy.

Grid Default, Terminal, Guild, Fantasy, Paper Moon, and Dustroad shop lists now show each item's artwork in buy and sell rows instead of category glyphs. Each grid theme has its own thumbnail frame to match the shop's visual style.

grid-fantasy and character-fantasy search bars now sit flush under their headers with thinner dividers and flatter inset inputs. Focused item rows use a gold inset accent line instead of a right-slide animation.

Bug Fixes

Vendor currency on item purchase: Fixed an issue where purchasing items from a shop did not increment the shop actor's currency when infinite funds was disabled. Transactions now correctly grant funds to the vendor, log the deposit in their bank statement (when paying via bank), and enforce bank account existence checks for the vendor before starting the transaction.

grid-fantasy item list spacing: Removed the doubled black border and gap between the category header and the search bar.

Subfolder-hosted Foundry instances: Replaced root-relative GlitchSmith Library imports with relative module imports, so Stylish Shop settings load correctly when Foundry is served under a route prefix such as /INSTANCE/game.

Frenzy detail pane scroll: The item detail panel in the Frenzy theme could not scroll, so the purchase button was hidden when requirement rows or long descriptions pushed it past the visible area. The panel now scrolls when content overflows.

Links

Module Wiki: https://www.notion.so/364a9504d0878176b9afe4fc160145b2

Install Guide: How to Install Premium Modules

The Glitch Smith PATREON 5 favs
VIEWS1
FILES1 file
POSTEDJun 24, 2026
ARCHIVEDJun 24, 2026