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 commerce handbook. Where players learn how **shopkeepers** and the **auction** market work in Nilgiri the Forgotten World — listing, bidding, buying, identifying, fees, timers, and how won or returned goods are delivered. Nilgiri shops are an **auction-style** market backed by the [[bankingguild|Banking Guild]], not a classic sticker-price-only storefront. A bank account is required for commerce (SoftHelp ''auction''). Immortal builders configure keepers under [[creationshops|Creation Law — Shops]]; this page is the player-facing flow. Related walkthroughs: [[shopkeepers|Shopkeepers]] · [[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 * ''auction'' — hand an item to the keeper to list it * ''offer'' — bid on an item still in its auction window * ''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) 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''. ===== 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. <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''). ===== 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: <code mud> > 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 (see Fees); sample SoftHelp snippets may still show an older non-zero listing line. Always trust ''value'' on your item. ===== Auction (list an item) ===== Hand goods to the keeper with ''auction''. SoftHelp: * ''auction <item> <start-price>'' * or ''auction <item> for <n> gold'' * with return postage: ''auction <item> <start-price> minimum <min-price>'' The start price must be greater than zero. A minimum, if set, must be ≥ 0 and ≤ the start price. The item leaves your inventory into shop storage and appears on ''list''. <code mud> > auction headress for 10 gold You hand a pontiff's headress to the armorer. Account #0000-10A9 debited 0gc for auction service #00F31DC3 'a pontiff's headress' by Quenyarhun Okay. The armorer whispers to you, "Taxes cover the cost of your listing." > </code> With a minimum (SoftHelp example-snippet shape; fees follow weight × mail multiplier): <code mud> > auction the plate for 500 gold coins at a minimum of 200 with note You hand the golden eagle breast plate to the armorer. Account #0000-1000 debited 106gc for auction service #01A3EEB9 by Quenyarhun Okay. The armorer whispers to you, "That'll be 106 coins, please." > </code> SoftHelp: if you list **without** a minimum and the item never sells, the shopkeeper may **dump** it free of charge. If you need the item back, set a minimum and pay the postage deposit. ===== Offer (bid) ===== While an item is still in its **auction** window (owner-listed, time remaining), buy it with ''offer'', not ''buy''. Bids below the next allowed price are refused; a successful bid debits your account. If you are outbid, the prior bid is credited back. <code mud> > offer 125 gold for #01a513cb with note Account #0000-1001 debited 125gc for auction #01A513CB by Silk Okay. The armorer whispers to you, "Thanks for your offer! Your account will be deducted. Should you be outbid, your offer will be refunded." > offer 1 gold coin for item #01a51392 with note The armorer whispers to you, "Your offer is too low. Try 500 gold coins." > </code> The next bid must be at least **110%** of the current high bid (or one coin higher when that percentage would not raise the price) — ''Auction.PRICE_INCREASE_PERCENT''. ===== 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 the auction-not-sale message. <code mud> > buy item #01a513d2 with note Account #0000-1001 debited 61gc for purchase #01A513D2 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> 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. ===== Identify ===== ''identify'' on a listed item (by list ''#n'' or hex id) prints type, AC, flags, wear slots, and modifiers. SoftHelp-style demo: <code mud> > 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> ===== Auction lifecycle ===== From ''Auction'' / ''AuctionEvent'' / SoftHelp ''auction'': - **List** — ''auction'' stores the item under the keeper; auction clock starts (''TIME_TO_AUCTION'' = **2 real weeks**). - **Bid** — ''offer'' while time remains and offers are open. List lines show remaining time and ''offers:N''. - **Win (bids)** — when the auction clock expires **with** at least one offer, the high bidder is mailed the item (''Mailer.send'', collect via [[postalguild|Postal Guild]]); the seller's bank account is credited the final bid (''Bank.creditAuction''). - **Expire, no bids** — after the auction window, the listing enters a **sale** period (''TIME_TO_SELL'' = **1 real month** of countdown shown as ''… sale)''). Asking price drops each real day to **70%** of the prior price (''PRICE_DECREASE_PERCENT'' / ''PRICE_DECREASE_PERIOD''), never below your minimum. Players may ''buy'' at the current sale price. - **Return** — if a **minimum** was set and the sale period also runs out with no buyer, the item is mailed back to the owner. - **Dump** — SoftHelp: without a minimum, unsold goods may be dumped free; code also purges listings whose discounted price reaches **0**. - **Cancel** — no player cancel command was found in SoftHelp or the shopkeeper command set; omitted. Auction resolution is polled about every **30 real minutes** per keeper (''AuctionEvent.PULSE''). ===== Fees (from SoftHelp + ''Constant'') ===== * **Base listing** — SoftHelp: free / covered by taxes when the listing debit is 0 (''COST_AUCTION_LISTING'' = 0; whisper ''Taxes cover the cost of your listing.''). * **Minimum / return postage** — when ''minimum'' > 0, debit adds ''COST_MAIL_MULTIPLIER'' × item weight (multiplier **2**). ''value'' quotes ''shopMailCost'' = 1 + that product as the refundable shipping figure. * **Identify** — ''COST_IDENTIFY'' = **2** gold (announced on the identify path). * **Bids / buys** — full offer or sale price debited from your account; outbid amounts credited back. Ask ''value'' on your item for the live quote rather than memorizing sample numbers from old SoftHelp snippets. ===== 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 ===== * [[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.1790187103.txt.gz Last modified: 2026/09/23 18:11(external edit)