Show pageOld revisionsBacklinksBack to top You've loaded an old revision of the document! If you save it, you will create a new version with this data. Media Files ====== Shop Law ====== Otherwise known as the player shop handbook. Where players learn how **shopkeepers** work in Nilgiri the Forgotten World — listing the room stock, valuing goods you carry, buying what is for sale, identifying listed items, and checking your balance at the keeper. Listing goods for auction, bidding with ''offer'', auction timers, fees, and how wins or returns are covered on [[auctionlaw|Auction Law]]. SoftHelp ''auction'': commerce needs a Banking Guild account. Immortal builders configure keepers under [[creationshops|Creation Law — Shops]]; this page is the player-facing shop flow. Related walkthroughs: [[shopkeepers|Shopkeepers]] · [[auctionlaw|Auction Law]] · [[bankingguild|Banking Guild]] · [[postalguild|Postal Guild]] · [[gamelaw|Game Law]] (Economy) ===== At a shopkeeper ===== Commands that only work in a shop room against a keeper with ''Acts.SHOPKEEPER'' (elsewhere they print the "not here" style refusal from ''Command'' → ''Communication.cmdNotHere''): * ''list'' — auctions and sales at this keeper * ''value'' — listing / postage quote for an item you carry (how listing spends that quote → [[auctionlaw|Auction Law]]) * ''buy'' — purchase an item that is **for sale** (not mid-auction) * ''identify'' — examine a listed item's stats * ''balance'' — ask the keeper for your bank balance (same guild funds) * ''auction'' / ''offer'' — list goods and bid → [[auctionlaw|Auction Law]] Keepers only **trade** certain item types (armor, weapon, and so on). If the keeper refuses what you bring, try another specialist. Shop rows also store open/close hours for builders; player trade commands do not gate on those hours in the current runtime path. Payment is from your Banking Guild account (carry a merchant note / have funds). SoftHelp example transcripts often end lines with ''with note''. ===== Typical shop flow ===== SoftHelp example-snippets shape a common visit: ''list'' the room, ''value'' something you might consign later, ''identify'' a listing you care about, ''buy'' what is for sale (or ''offer'' while it is still auctioning — see [[auctionlaw|Auction Law]]), and ''balance'' if you want the keeper's short balance whisper. ===== List ===== ''list'' shows each stocked or consigned item with a short list index, hex item id, price in ''gc'', name, and — while still in the auction window — time left and offer count. Produced shop stock (keeper inventory copies) may appear without an auction timer. SoftHelp example-snippet ''ShopListExample'': <code mud> > list The armorer informs you of its auctions and sales: 1) #01A3EEB9 500gc : 'the golden eagle breast plate' (6 days offers:0) 2) #01A3F46D 123gc : 'a great golden eagle shield' (6 days offers:0) 3) #01A513D2 61gc : 'a pair of armored golden eagle leggings' > </code> You may address items by list number (''#1'') or by the hex id (''#01A513D2''). Empty stock whispers: "I have nothing for auction or sale." (''MobileScript.shopkeeperActList''). Owner-listed items whose auction window has ended and that still have no buyer show remaining sale time as ''… sale)'' on the list line (''Auction.list''); those are buyable — see Buy below. Mid-auction bidding is on [[auctionlaw|Auction Law]]. ===== Value ===== Before you list, ''value <item>'' asks the keeper what listing will cost and what refundable shipping/handling deposit applies if you set a **minimum** selling price (so unsold goods can be mailed back). SoftHelp example-snippet ''ShopValueExample'': <code mud> > inventory You are carrying: the golden eagle breast plate (soft aura) a Banking Guild merchant note a small sparkling diamond a potion of youth > value the plate The armorer whispers to you, "I can list your plate for 6 gold coins. If you require a minimum selling price then you will also be charged a refundable 101 gold coins to cover shipping and handling fees for returned items." > </code> The whisper formula is live from code (listing fee + ''shopMailCost(weight)'' for a minimum). SoftHelp ''auction'' and current ''Constant.COST_AUCTION_LISTING'' = 0 mean the **base** listing is tax-covered; sample SoftHelp ''value'' snippets may still show an older non-zero listing line. Always trust ''value'' on your item. How ''auction … minimum …'' spends that quote, and the full fee / timer table, are on [[auctionlaw|Auction Law]]. ===== Buy ===== ''buy'' works only when the listing is **for sale**: either keeper-produced stock, or a player listing whose auction window has ended (and any bids have already resolved). Mid-auction items refuse buy with ''S.auctItemNoSale'' ("That item is for auction, not for sale."). SoftHelp example-snippet ''ShopBuyExample'': <code mud> > list The armorer informs you of its auctions and sales: #01A51392 500gc : 'the golden eagle breast plate' (6 days offers:0) #01A513CB 123gc : 'a great golden eagle shield' (6 days offers:1) #01A513D2 61gc : 'a pair of armored golden eagle leggings' > buy item #01a513d2 with note Account #0000-1001 debited 61gc for purchase #01A513CB by Silk Okay. The armorer whispers to you, "That will be 61 coins, please." You now have a pair of armored golden eagle leggings. > list The armorer informs you of its auctions and sales: #01A51392 500gc : 'the golden eagle breast plate' (6 days offers:0) #01A513CB 125gc : 'a great golden eagle shield' (6 days offers:1) > </code> Same purchase by list number (SoftHelp ''ShopBuyAltExample''): <code mud> > buy item #1 with note Account #0000-1001 debited 61gc for purchase #01A513CB by Silk Okay. The armorer whispers to you, "That will be 61 coins, please." You now have a pair of armored golden eagle leggings. > </code> (Snippet note: SoftHelp ''ShopBuyExample'' / ''ShopBuyAltExample'' show purchase hex ''#01A513CB'' on a buy of leggings ''#01a513d2'' / list ''#1'' — likely a SoftHelp paste inconsistency; live debit text uses the purchased item's id from ''Bank.buy''. SoftHelp ''You now have …'' matches ''S.nowHave''.) Charisma can nudge the buy price slightly (code thresholds on ''Stat.CHARISMA''): high CHA may shave a few percent; very low CHA may hike it. The keeper whispers the adjusted figure when it applies (''S.discount'' / ''S.discountF'' for discounts; ''S.hike'' for low-CHA surcharges). ===== Identify ===== ''identify'' on a listed item (by list ''#n'' or hex id) prints type, AC, flags, wear slots, and modifiers. Live path announces ''COST_IDENTIFY'' (**2** gold): ''"For %d gold, $n informs you:"'' (''MobileScript.shopkeeperActIdentify''). SoftHelp example-snippet ''ShopIdentifyExample'' still shows an older merchant-note lead-in: <code mud> > list The armorer informs you of its auctions and sales: 1) #01A51392 500gc : 'the golden eagle breast plate' (6 days offers:0) 2) #01A513CB 123gc : 'a great golden eagle shield' (6 days offers:0) 3) #01A513D2 61gc : 'a pair of armored golden eagle leggings' > identify item #01a513d2 with note For the Banking Guild merchant note, the armorer informs you: ARMOR "a pair of armored golden eagle leggings" AC apply: 8 ItemFlags : GLOW MAGIC Wear : TAKE LEGS Modifiers: (0) STRENGTH +3 (1) HITROLL +2 --- Affects Modifiers --- > </code> By list number (SoftHelp ''ShopIdentifyAltExample''): <code mud> > identify item #3 with note For the Banking Guild merchant note, the armorer informs you: ARMOR "a pair of armored golden eagle leggings" AC apply: 8 ItemFlags : GLOW MAGIC Wear : TAKE LEGS Modifiers: (0) STRENGTH +3 (1) HITROLL +2 --- Affects Modifiers --- > </code> Prefer the live "For 2 gold, …" cost line from code when identifying today; the item body above is the SoftHelp demo shape. ===== Balance ===== At a shopkeeper, ''balance'' asks the keeper for your Banking Guild balance (same funds as the bank). ''MobileScript.shopkeeperActBalance'' whispers: "Currently, your balance is <amount>." SoftHelp has a full bank-desk ''balance'' transcript (''BankingGuildBalanceExample'') but no separate shop-room balance SoftHelp sample; the keeper whisper text below is from Java only (amount illustrative from the bank SoftHelp ledger figure): <code mud> > balance The armorer whispers to you, "Currently, your balance is 543." > </code> For the full account ledger at a banker, see [[bankingguild|Banking Guild]]. ===== Auction and offers ===== Handing goods to the keeper (''auction''), bidding (''offer''), auction / sale timers, listing fees, outbid refunds, wins, returns, and dumps are documented on [[auctionlaw|Auction Law]]. SoftHelp ''auction'' is the in-game help keyword for that market. ===== Immortal contrast ===== Builders create and save shop rows with ''@shop'' / ''@save shop'' under [[creationshops|Creation Law — Shops]]. Players never use those commands — only the room commands above against a placed keeper. ===== Related ===== * [[auctionlaw|Auction Law]] — list for sale, bid, lifecycle, fees, delivery * [[shopkeepers|Shopkeepers]] — shorter command demos * [[bankingguild|Banking Guild]] — accounts and notes * [[postalguild|Postal Guild]] — receive auction wins / returns * [[gamelaw|Game Law]] — economy hub * [[creationshops|Creation Law — Shops]] — immortal shop build SavePreviewCancel Edit summary Note: By editing this page you agree to license your content under the following license: CC Attribution-Share Alike 4.0 International shoplaw.1790187916.txt.gz Last modified: 2026/09/23 18:25(external edit)