Verified
A complete GUI shop system for Rust with categorized item stores, a player-to-player marketplace, live auctions, direct trading, dynamic pricing, NPC vendors, vending machine terminals, and deep analytics — all powered by EconomyCore. Plugin by TheOwlSky | gameservershub.com | Discord
Install required dependency: EconomyCore plugin
Optional: Install ImageLibrary for item icon images
Drop Shop.cs into your carbon/plugins/ folder
Config auto-generates at carbon/configs/Shop.json
Grant permissions:
oxide.grant group default shop.use
oxide.grant group default shop.sell
oxide.grant group default shop.marketplace
oxide.grant group default shop.auction
oxide.grant group default shop.trade
oxide.grant group admin shop.adminPlayers open the shop with /shop or /s in-game
On first load, Shop auto-fills items from all Rust items if no categories exist
That's it. MySQL, Discord webhooks, NPC vendors, and dynamic pricing are optional enhancements.
Grant with: oxide.grant user <steamid> <permission> or oxide.grant group <group> <permission>
Permission | What It Does |
|---|---|
| Open the shop GUI ( |
| Access the Shop tab specifically |
| Access the Sell tab ( |
| Access the Marketplace tab ( |
| Create marketplace listings |
| Access the Auctions tab ( |
| Create auction listings |
| Use the trade system ( |
Permission | What It Does |
|---|---|
| Full admin control — console commands, editor mode |
| Link NPC vendors to the shop |
| Link vending machines as shop terminals |
Permission | What It Does |
|---|---|
| All purchases cost nothing |
| Skip buy/sell cooldown timers |
| Ignore daily/wipe/lifetime buy limits |
| Bypass wipe-block hour restrictions |
| Override max active marketplace listings (5, 10, 15, 20, 25, 30, or 50) |
Discount & cooldown permissions are defined in config — Shop registers them automatically.
Typical setup:
oxide.grant group default shop.use
oxide.grant group default shop.shop
oxide.grant group default shop.sell
oxide.grant group default shop.marketplace
oxide.grant group default shop.marketplace.list
oxide.grant group default shop.auction
oxide.grant group default shop.auction.create
oxide.grant group default shop.trade
oxide.grant group admin shop.admin
oxide.grant group moderator shop.setnpc
oxide.grant group moderator shop.setvm
Command | What It Does |
|---|---|
| Opens the full shop GUI |
| Shorthand for |
| Opens the shop directly to the Sell tab |
Command | What It Does |
|---|---|
| Opens the shop to the Marketplace tab |
| Opens a private marketplace listing by its share code |
Command | What It Does |
|---|---|
| Opens the shop to the Auctions tab |
Command | What It Does |
|---|---|
| Send a trade request to a nearby player |
| Accept an incoming trade request |
| Cancel your current trade |
| Re-open the trade window if already in a trade |
All admin console commands require shop.admin permission (or server console).
Command | What It Does | |||
|---|---|---|---|---|
| Auto-populate the shop with all Rust items and default prices | |||
| Set sell prices for all items as a ratio of buy price (default | |||
`shop.reset <items\ | categories\ | players\ | all>` | Clear shop data — items, categories, player data, or everything |
| Trigger a manual wipe reset (stock, cooldowns, limits, marketplace, auctions) | |||
| Open the shop in admin editor mode (in-game only) | |||
| Look at an NPC and link it as a shop vendor with optional category filters | |||
| Link the vending machine you're looking at as a shop terminal | |||
| Unlink the vending machine you're looking at | |||
| Activate a timed sale defined in config | |||
| Deactivate a running timed sale | |||
| Import items from another shop plugin's data file |
Format | Source Plugin |
|---|---|
| Mevent Shop ( |
| ShoppyStock ( |
| ShopUI |
| ServerRewards |
Command | What It Does |
|---|---|
| Today's sessions, unique players, purchases, sales, revenue |
| Top 10 purchased items (7-day window) |
| Top 10 search queries (7-day window) |
| Top 10 spending players |
| Top 10 zero-result searches (items players want but can't find) |
| Player segment breakdown (new, casual, regular, whale) |
| Top 10 cart-abandoned items |
| Category views and purchases |
| Peak shopping hours (UTC) |
| Price history for a specific item (last 20 snapshots) |
| Active listings, average time-to-sell, tax revenue |
| Active auctions, average bids, completion rate |
Shop's config file lives at carbon/configs/Shop.json. Sections are grouped below.
Setting | Default | What It Does |
|---|---|---|
|
| Currency ID from EconomyCore used by default |
|
| Minimum seconds between any two shop actions |
|
| Reopen the last tab a player was on |
|
| Remember each player's preferred currency |
|
| Items shown per page in grid view |
|
| Number of columns in grid layout |
|
| Items shown per page in list view |
|
| Starting view mode ( |
|
| Allow players to use grid view |
|
| Allow players to use list view |
|
| Show a confirmation popup before buying |
|
| Show a confirmation popup before selling |
|
| Show detailed item info when clicked |
|
| Allow multi-item cart checkout |
|
| Show quick quantity buttons (1, 5, 10, 25, 50, 100) |
|
| Disable all selling — shop becomes buy-only |
|
| Automatically open the shop when a player connects |
|
| Text shown in the bottom bar |
|
| Logo text in the shop header |
|
| Quick-select quantity buttons |
Sound effects are configurable for open, purchase, and error events using Rust prefab paths.
Setting | Default | What It Does |
|---|---|---|
|
| Enable the main shop tab |
|
| Enable per-item stock limits and restocking |
|
| Populate items from all Rust items on first load |
|
| Sell price as fraction of buy price when auto-generating |
|
| Allow multi-item cart purchases |
|
| Maximum items in the cart at once |
|
| Let players sell items back to the shop |
|
| Reset stock levels on wipe |
|
| Clear buy cooldowns on wipe |
|
| Reset daily/wipe buy limits on wipe |
|
| Clear player favorites on wipe |
|
| Clear all marketplace listings on wipe |
|
| Clear all auctions on wipe |
|
| Reset dynamic price multipliers on wipe |
Setting | Default | What It Does |
|---|---|---|
|
| Enable the sell terminal tab |
|
| Allow selling items from main inventory |
|
| Allow selling items from the hotbar |
|
| Allow selling equipped clothing |
|
| Skin IDs that cannot be sold |
Setting | Default | What It Does |
|---|---|---|
|
| Prevent opening the shop while in combat (NoEscape) |
|
| Prevent opening during a raid (NoEscape) |
|
| Block shop access in building-blocked zones |
|
| Seconds after respawn before shop access |
|
| Block while on a horse, boat, etc. |
|
| Block while swimming |
|
| Block during active duels |
Setting | Default | What It Does |
|---|---|---|
|
| Enable the player marketplace |
|
| Tax deducted from the seller on sale (percent) |
|
| How long a listing stays active |
|
| Maximum listing duration (7 days) |
|
| Active listings allowed per player |
|
| Allow share-code-only private listings |
|
| Lowest price a seller can set |
|
| Item shortnames banned from the marketplace |
Setting | Default | What It Does |
|---|---|---|
|
| Enable the auction system |
|
| Tax deducted from the winning bid |
|
| Shortest auction allowed |
|
| Longest auction allowed |
|
| Minimum bid increase as percent of current bid |
|
| Time added when a bid is placed in the final minutes |
|
| Concurrent auctions a player can run |
|
| Lowest starting bid allowed |
Setting | Default | What It Does |
|---|---|---|
|
| Enable player-to-player trading |
|
| Maximum meters between traders |
|
| Seconds before an idle trade auto-cancels |
|
| Seconds the target has to accept a trade request |
|
| Let players include currency in trade offers |
|
| Maximum items each player can offer |
Setting | Default | What It Does |
|---|---|---|
|
| Enable supply/demand price fluctuation |
|
| How much the base price influences the final price (0-1) |
|
| How much demand influences the final price (0-1) |
|
| Lowest a price can drop (percent of base) |
|
| Highest a price can rise (percent of base) |
|
| Hours of purchase/sale history used for demand calculation |
|
| How often prices recalculate |
|
| Maximum price change per update cycle (5%) |
|
| Quantity thresholds for automatic bulk discounts |
|
| One-time discount for a player's first purchase of each item |
Define custom discount tiers in config. Each entry has:
Permission — registered automatically (e.g., shop.vip.10)
Discount Percent — percentage off buy prices
Priority — highest priority wins when a player has multiple
Define permission-based cooldown multipliers:
Permission — registered automatically
Global Cooldown Multiplier — multiplied against global cooldown
Item Cooldown Multiplier — multiplied against per-item cooldowns
Shop's entire color scheme is configurable. All values use Rust's RGBA format ("R G B A" from 0-1). Key colors:
Setting | Default | What It Controls |
|---|---|---|
|
| Full-screen overlay behind the shop |
|
| Main shop panel |
|
| Selected tab highlight (green) |
|
| Buy button color |
|
| Sell button color (red) |
|
| Discount percentage badge |
|
| Active sale banner |
All theme colors — header, cards, text, notifications, scrollbar, border, and bottom bar — are customizable.
Setting | Default | What It Does |
|---|---|---|
|
| Use local images instead of fetching from URLs |
|
| Cache item images when a player joins |
|
| Resolution of item icon images in pixels |
Setting | Default | What It Does |
|---|---|---|
|
| Write purchase transactions to log files |
|
| Write sell transactions to log files |
|
| Write admin actions to log files |
Shop is a full-screen GUI with five tabs: Shop, Marketplace, Auctions, Sell, and Trade. Players open it with /shop and browse categorized items.
Players select a category from the sidebar
Items display in grid or list view with prices, stock status, and sale badges
Clicking an item opens an item detail modal with full info
Players choose a quantity using quick-select presets or custom input
Click Buy for instant purchase or + Cart to add to cart
Checkout processes all cart items in one transaction
Shop supports three item types:
Item — a standard Rust item (with optional skin, attachments, ammo, plant genes, or container contents)
Command — executes a server command on purchase (for kits, VIP, custom rewards)
Kit — grants a predefined kit
When Enable Stock System is true, each item can have limited stock:
Stock depletes on purchase
Auto-restocks at a configurable interval and amount
Stock resets on wipe if Auto Wipe Reset Stock is enabled
Each item can enforce limits per player:
Daily Limit — resets every 24 hours
Wipe Limit — resets on server wipe
Lifetime Limit — permanent across all wipes
Min/Max Per Transaction — quantity bounds per single purchase
Global Cooldown — minimum time between any two shop actions (default 0.5 seconds)
Per-Item Cooldown — configurable per item in seconds
Both can be reduced with cooldown override permissions
Permission-based discounts — VIP tiers with automatic percentage off
Category discounts — percentage off all items in a category
Timed sales — scheduled sales affecting specific items or categories, with recurring options (daily, weekly, monthly, every wipe)
Bulk discounts — automatic discounts at quantity thresholds
First-purchase discounts — one-time discount per item per player
On server wipe, Shop can automatically reset:
Stock levels, cooldowns, buy limits
Marketplace listings and auctions
Player favorites
Dynamic price data
All wipe behaviors are individually configurable.
The marketplace lets players list their own items for sale to other players.
Seller opens the Marketplace tab and clicks Create Listing
Selects an item from inventory, sets a price and currency
The item is removed from inventory and listed publicly (or privately with a share code)
Buyer browses listings, searches by name or seller, and purchases
Seller receives payment minus the listing tax (default 5%)
Listing expires after the configured duration if unsold
Private listings are hidden from browse — only accessible via /market code <CODE>.
Blacklisted items cannot be listed. Max active listings are controlled by permission (shop.marketplace.limit.5 through .50).
Auctions let players sell items to the highest bidder.
Seller creates an auction with a starting bid, optional buyout price, and duration
Bidders place bids that must exceed the current bid by the minimum increment (default 5%)
Anti-snipe protection extends the auction by 2 minutes if a bid arrives near the end
When the auction ends, the highest bidder receives the item and the seller receives payment minus tax
If a buyout price is set, any bidder can instantly win the auction at that price
Auctions with no bids end as NoBids and the item returns to the seller
Bid history is tracked and viewable in the UI.
Shop includes direct player-to-player trading with a split-screen trade window.
Player A types /trade PlayerB
Player B receives a trade request and types /trade accept
Both players see a trade window with two sides
Each side can add items (up to 8) and currency from any EconomyCore currency
Both players click Ready, then Confirm
Items and currency swap atomically — if either side fails, the trade rolls back
Restrictions:
Players must be within Max Distance meters (default 50)
Trade auto-cancels after Trade Timeout Seconds (default 120)
If either player disconnects, the trade cancels and items return
When enabled, item prices fluctuate based on supply and demand.
How it calculates:
Final Price = (Base Price × Base Weight) + (Base Price × Demand Multiplier × Demand Weight)
Demand is calculated from purchases and sales within the Demand Window (default 24 hours)
Prices change by at most Price Change Rate per update cycle (default 5%)
Prices never drop below Price Floor (50% of base) or rise above Price Ceiling (200% of base)
Price trends are tracked as up, stable, or down — visible in the UI and available via API.
Dynamic pricing must be enabled per-item in the item data (Dynamic Pricing Enabled: true on each price entry).
Link HumanNPC NPCs as shop vendors:
Spawn an NPC using the HumanNPC plugin
Look at the NPC and run: shop.setnpc "Merchant" 1 2 3 (name + category IDs)
Players interact with the NPC to open the shop filtered to those categories
Each NPC vendor can have:
Custom name and category filters
Price/sell multipliers — adjust all prices up or down
Allowed currencies — restrict which currencies are accepted
Required permission — limit who can use this vendor
Link in-world vending machines as shop terminals:
Look at a vending machine and run: shop.setvm "Shop Terminal" 1 2 3
Players interact with the vending machine to open the shop
Unlink with shop.unsetvm
Vending machine links support the same multipliers, currency restrictions, and permissions as NPC vendors.
Enable Discord notifications for shop events.
{
"Discord Webhook": {
"Enabled": true,
"Webhook URL": "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL",
"Purchase Notifications": true,
"Sale Notifications": true,
"Admin Action Notifications": true,
"Error Notifications": true,
"Marketplace Notifications": true,
"Auction Notifications": true,
"Trade Notifications": false,
"Embed Color (decimal)": 4437377,
"Discord Timestamp Format": "F"
}
}
Event | What Triggers It |
|---|---|
Purchase | Player buys an item from the shop |
Sale | Player sells an item to the shop |
Admin Action | Admin uses editor mode, fill, reset, or wipe commands |
Error | A transaction fails (insufficient funds, stock out, etc.) |
Marketplace | Listing created, sold, expired, or cancelled |
Auction | Auction created, bid placed, won, expired |
Trade | Trade completed (disabled by default) |
Shop optionally stores analytics and transaction history in MySQL/MariaDB. All gameplay data works without MySQL — it only adds analytics and multi-server insights.
{
"MySQL Settings": {
"Enabled": true,
"Host": "localhost",
"Port": 3306,
"Database": "gshshop",
"Username": "root",
"Password": "",
"Table Prefix": "gshshop_",
"Server ID": "server1",
"SQL Batch Size": 50,
"SQL Flush Interval Seconds": 10,
"Max Pending Operations": 500,
"Analytics Enabled": true,
"Behavior Tracking Enabled": true,
"Behavior Tracking Detail Level": "Standard",
"Analytics Retention Days": 90,
"Behavior Retention Days": 30,
"Price History Retention Days": 60,
"Whale Spending Threshold": 10000.0
}
}
Table | What It Stores |
|---|---|
| Every buy/sell transaction with player, item, amount, currency, price |
| All marketplace listings with seller, buyer, status, tax |
| Auction entries with bids, status, completion data |
| Individual bid history for all auctions |
| Completed trade records between players |
| Shop browsing sessions — open time, close time, tabs visited, purchases made |
| Granular UI events (page views, clicks, searches) within sessions |
| Dynamic price snapshots over time |
| Daily item metrics — views, cart adds, purchases, revenue, abandons |
| Daily category metrics — views, time spent, bounces, purchases |
| Search queries with result counts (find zero-result searches) |
| Player segments (new, casual, regular, whale), lifetime stats |
| Stock level snapshots over time |
| Aggregated daily totals — sessions, players, purchases, revenue |
Requirements: MariaDB 10.6 LTS recommended. Avoid 10.10+ due to a known InvalidCastException bug.
Multi-server: Set a unique Server ID per server. All tables are keyed by server ID, so multiple servers can share one database.
Behavior Tracking Detail Levels:
Minimal — sessions and transactions only
Standard — adds item popularity, category analytics, search tracking
Detailed — adds individual session events and granular click tracking
Retention: Old data is automatically purged based on the configured retention days.
Shop uses a full-screen CUI overlay with multiple layers:
┌──────────────────────────────────────────────────────────┐
│ [Logo] SHOP | MARKETPLACE | AUCTIONS | SELL | TRADE [X]│ ← Header + Tabs
│ Balance: 1,250 Cash [🔍 Search...] │ ← Balance + Search
├────────┬─────────────────────────────────────────────────┤
│ │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ Weapons│ │ AK │ │ M4 │ │ LR │ │ SAR │ │ MP5 │ │
│ Tools │ │$500 │ │$450 │ │$350 │ │$200 │ │$300 │ │
│ Attire │ │[Buy]│ │[Buy]│ │[Buy]│ │[Buy]│ │[Buy]│ │
│ Medic │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ Ammo │ │
│ Food │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ Build │ │ ...more items... │ │
│ │ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
├────────┴─────────────────────────────────────────────────┤
│ [◄ Prev] Page 1 of 5 [Next ►] [🛒 Cart (3)] │ ← Pagination + Cart
├──────────────────────────────────────────────────────────┤
│ GAME SERVERS HUB gameservershub.com │ ← Bottom Bar
└──────────────────────────────────────────────────────────┘
Key UI elements:
Tab bar — Switch between Shop, Marketplace, Auctions, Sell, and Trade
Sidebar — Category list with icons and item counts
Content area — Grid or list view with item cards showing name, price, stock, sale badges
Item detail modal — Full item info, quantity selector with presets, buy/cart buttons
Cart panel — Slide-out cart with item list, totals, and checkout button
Quantity selector — Quick presets (1, 5, 10, 25, 50, 100) + custom input + max affordable
Confirmation dialogs — Purchase and sell confirmations with totals
Toast notifications — Success, error, warning, and info popups
Search bar — Context-aware search (items, listings, auctions, players)
Sort controls — Name, price ascending/descending, newest, most popular
The UI auto-destroys when the player closes the shop, disconnects, or dies.
Other plugins can interact with Shop using [PluginReference]:
[PluginReference] private Plugin Shop;
// Open the shop for a player
Shop?.Call<string>("API_OpenShop", player);
// Open a specific tab ("Shop", "Marketplace", "Auctions", "Sell", "Trade")
Shop?.Call<string>("API_OpenShopTab", player, "Marketplace");
// Close the shop
Shop?.Call("API_CloseShop", player);
// Check if a player has the shop open
bool isOpen = Shop?.Call<bool>("API_IsShopOpen", player.userID) ?? false;
// Get buy/sell prices for an item
double buyPrice = Shop?.Call<double>("API_GetBuyPrice", "rifle.ak", "cash") ?? -1;
double sellPrice = Shop?.Call<double>("API_GetSellPrice", "rifle.ak", "cash") ?? -1;
// Get dynamic buy price (includes demand multiplier)
double dynPrice = Shop?.Call<double>("API_GetDynamicBuyPrice", "rifle.ak", "cash") ?? -1;
// Get price trend (-1 = falling, 0 = stable, 1 = rising)
int trend = Shop?.Call<int>("API_GetPriceTrend", "rifle.ak", "cash") ?? 0;
// Check if an item is in stock
bool inStock = Shop?.Call<bool>("API_IsInStock", "rifle.ak") ?? false;
// Get current stock level (-1 if stock system disabled)
int stock = Shop?.Call<int>("API_GetStock", "rifle.ak") ?? -1;
// Force a purchase (deducts currency, gives item)
var result = Shop?.Call<Dictionary<string, object>>("API_ForceBuy", player.userID, "rifle.ak", 1, "cash");
// result["Success"] = true/false, result["TotalCost"], result["Error"]
// Force a sale (takes item, deposits currency)
var result = Shop?.Call<Dictionary<string, object>>("API_ForceSell", player.userID, "rifle.ak", 5, "cash");
// result["Success"], result["TotalPayout"], result["AmountSold"], result["Error"]
// Create a marketplace listing programmatically
string listingId = Shop?.Call<string>("API_CreateListing", sellerId, "rifle.ak", 1, 0UL, "cash", 500.0);
// Get active listing/auction counts
int listings = Shop?.Call<int>("API_GetActiveListingCount", player.userID) ?? 0;
int auctions = Shop?.Call<int>("API_GetActiveAuctionCount", player.userID) ?? 0;
// Check if a player is in a trade
bool inTrade = Shop?.Call<bool>("API_IsInTrade", player.userID) ?? false;
// Initiate a trade between two players
Shop?.Call("API_OpenTrade", initiator, target);
// Get a player's preferred currency
string currency = Shop?.Call<string>("API_GetPlayerCurrency", player.userID);
// Get currently active sales
var sales = Shop?.Call<Dictionary<string, object>>("API_GetActiveSale");
// Get linked vending machine count
int vmCount = Shop?.Call<int>("API_GetLinkedVendingMachineCount") ?? 0;
Lang file: carbon/lang/en/Shop.json
Shop includes approximately 290 lang keys across all 10 supported languages: English, Russian, Spanish, German, Portuguese (BR), French, Chinese (Simplified), Turkish, Polish, and Korean.
Message categories:
ui.* — All UI labels, buttons, tabs, and tooltips
msg.* — In-game chat messages and notifications
err.* — Error messages (no permission, insufficient funds, out of stock)
admin.* — Admin command responses and stats output
market.* — Marketplace-specific messages
auction.* — Auction-specific messages
trade.* — Trade-specific messages
Key messages:
Key | Default | When Shown |
|---|---|---|
| Purchase confirmation | After buying an item |
| Sell confirmation | After selling an item |
| No permission error | When lacking required permission |
| Not enough currency | When balance is too low |
| Item out of stock | When stock is depleted |
| Buy limit exceeded | When daily/wipe/lifetime limit hit |
| Trade request notification | When another player requests a trade |
| Outbid notification | When someone outbids you |
Start with auto-fill: Let Shop populate items on first load, then customize categories and prices
Import from other plugins: If migrating from Mevent Shop, ShoppyStock, ShopUI, or ServerRewards, use shop.import <format> to bring your items over
Set up categories first: Organize items into logical groups — players browse by category
Sell ratio: Default Sell Price Ratio: 0.5 means players get 50% back when selling. Lower to 0.3 for a tighter economy, raise to 0.7 for casual servers
Use shop.fill.prices 0.4 to bulk-set all sell prices at 40% of buy price
Dynamic pricing: Enable for a living economy. Set Price Floor: 70 and Price Ceiling: 150 for moderate swings, or 50/200 for volatile markets
Bulk discounts: Add tiers like {MinQuantity: 10, DiscountPercent: 5} and {MinQuantity: 50, DiscountPercent: 10} to encourage larger purchases
Tax rate: 5% is balanced. Lower to 2-3% for active markets, raise to 8-10% to act as a currency sink
Anti-snipe: 2 minutes is standard. Raise to 5 for high-value auctions
Zero-result searches: Use shop.stats zero to find items players are searching for but can't find — then add them
Shop uses dynamic hook subscription — NPC and vending machine hooks are only active when vendors exist
Auto-save runs every 5 minutes by default
MySQL operations are batched and flushed every 10 seconds to minimize database calls
All timers are properly destroyed on plugin unload
Set unique Server ID values per server in MySQL config
All servers can share one MySQL database
Player profiles and analytics are keyed by server ID
Verify the player has shop.use permission: oxide.show user <steamid> shop.use
Check if restrictions are blocking: combat, raid, building blocked, mounted, swimming
If EconomyCore is not loaded, the shop waits for it — check carbon/logs/ for errors
Shop requires EconomyCore to be loaded and initialized first
Verify EconomyCore is in carbon/plugins/ and has no errors
Shop checks for economy readiness on server init and retries periodically
Check that the item is Enabled: true in shop data
Verify the item's category is enabled and the player has access
If using NPC vendors, check that the vendor's category list includes the item's category
Verify host, port, username, and password in config
Use MariaDB 10.6 LTS — avoid 10.10+ (known InvalidCastException bug)
Check firewall rules allow the connection
Look for connection errors in carbon/logs/
Listings expire after Default Listing Duration Hours (default 48 hours)
Listings are wiped on server wipe if Auto Wipe Reset Marketplace is true
Check if the item is blacklisted in Blacklisted Items
Both players need shop.trade permission
Trade Settings > Enabled must be true
Players must be within Max Distance meters of each other
Trades timeout after Trade Timeout Seconds of inactivity
Shop is a full-featured GUI store plugin for Rust servers running Carbon or Oxide. It provides a categorized item shop, player-to-player marketplace, live auction system, direct trading, dynamic pricing, NPC vendor support, and deep analytics with MySQL — all integrated with EconomyCore for multi-currency support.
Drop Shop.cs into your carbon/plugins/ folder alongside EconomyCore. The config generates automatically at carbon/configs/Shop.json. Grant shop.use to all players and shop.admin to staff. On first load, Shop auto-fills items from all Rust items.
Yes. Shop uses the standard RustPlugin base class and is fully compatible with both Carbon and Oxide/uMod servers. It uses Oxide-compatible APIs for maximum compatibility.
Yes. Shop supports importing from Mevent Shop, ShoppyStock, ShopUI, and ServerRewards using shop.import <format>. Items and categories are imported with their prices preserved.
Join the Game Servers Hub Discord at https://discord.gg/gsh or visit https://gameservershub.com for documentation, updates, and direct support from TheOwlSky.
Shop v1.5.0 — Developed by TheOwlSky | gameservershub.com | Discord
Sign in to leave a review
Sign InNo reviews yet
Be the first to share your experience with this resource.
No version history available
The creator hasn't published version updates yet.