You built something that simply works — a vendor script that treats money and inventory like the serious business they are. This LSL package is a no-nonsense vendor and payment handler: exact-price enforcement, automated refunds, owner controls, floating price display, and sales tracking. It’s designed to be drop-in simple for creators selling items in Second Life while giving owners the tools they need to manage sales and handle problems without digging through logs or griefing.
Install it in a vendor prim, drop your product into the object’s inventory, set the item name and price, and the script handles the rest. It checks inventory before accepting payment, immediately refunds incorrect or overpayments, notifies both buyer and owner when something goes wrong, and keeps a running tally of sales and revenue. That means fewer angry customers, fewer manual refunds, and a cleaner storefront.
What makes this script dependable is how it treats edge cases. If the item is missing from inventory it refuses the payment and refunds the buyer with a clear message. If someone pays the wrong amount the script safely returns the funds and tells the buyer why. The refund routine checks debit permissions and gracefully informs the owner if automatic refunds are unavailable — so you’re never left wondering what happened to a failed sale.
Owner controls are straightforward and private. Tap the vendor and owner dialogs present options to reset sales or query totals. Customers get a clean dialog asking to confirm the purchase and are directed to use the Pay action to complete the transaction — minimizing accidental buys. The script uses a temporary private listen channel for dialog responses so normal chat stays uncluttered.
Visual feedback matters. A floating text display shows the product name and L$ price, and can optionally display live sales statistics. The text updates automatically as sales happen, giving storefronts a professional, informative feel without extra signage. When stock runs out the script flips the display to “OUT OF STOCK” in red so customers immediately know the situation.
Technical owners will appreciate the safe, modular structure. Refund logic is bundled into a helper function that verifies permissions before attempting debit refunds. Sales accounting increments counters for both unit count and total revenue, and those values are used by the owner menu and floating text. The script also includes a short timeout for dialog/listen operations so stray listens don’t linger.
Customization is easy. Change the item name, price, floating message, and whether stats are shown in the floating text. The owner menu and customer dialog text are simple strings you can edit. Because the script is written clearly and split into helpers, modders can add features such as delivery delays, alternate payment tiers, or integration with external customer management scripts without wading through a monolithic blob.
This code is built with real-world vendor pain points in mind: missing inventory, incorrect payments, missing debit permission, and owner visibility. It reduces support requests by handling refunds automatically when possible and by sending direct messages to both buyer and owner when manual intervention is required. For sellers who run multiple vendors, this script’s consistent behavior across objects makes troubleshooting predictable and fast.
Use cases:
Indie creators selling texture packs, HUDs, or small product bundles.
Roleplay vendors with exact-price items where refunds need to be prompt and auditable.
Shops that prefer a lightweight, self-contained vendor rather than a multi-scripting dependency.
Market stalls where clarity about stock and price reduces disputes.
Set up is quick: put the script in a prim, ensure the item (exact name) exists in the same prim, set the price and optional floating text, and give the owner permission to debit (the script will request it). Test with a small L$ payment to ensure the vendor gives the item and updates stats, then go live.
Support tips and best practices:
Always test on a private region or a trusted alt with a small amount of L$ first.
Keep the item name exact; the script checks inventory by name.
If you plan to sell multiple different products from the same object, clone the script and change the ITEM_TO_GIVE constant for each variant.
If automatic refunds fail, llInstantMessage calls inform both buyer and owner — check the owner IM and the object owner balance to process any manual corrections.
Consider toggling SHOW_STATS_IN_TEXT for high-traffic stalls; the floating stats are useful but can clutter smaller displays.
Why this script instead of a simpler vendor? Simpler scripts may accept wrong payments, lose track of refunds, or fail silently when inventory is missing.
- returns incorrect or out-of-stock payments and alerts buyer + owner.
- accepts only the configured L$ amount to prevent partial/overpayments.
- owner dialog with “RESET STATS” and “CHECK STATS” plus private listen channel.
- dynamic llSetText display showing price and optional live sales counts.
- requests debit permission, checks before refunding, and reports failures.








