Jump to content
Message added by ThePitereq,

CarbonAliases Extension is required only if your server runs on Oxide with ShoppyStock version 2.0 or higher!

Addon isn't required on Carbon servers and on 1.x version!

17 Screenshots

  • 62.4k
  • 1.6k
  • 107.72 kB

About Shoppy Stock

Banner.png.cfc30525b4ea5d3a5056b4c80e8a838d.png

RUST Plugin Test Server
TEST MY PLUGINS THERE!

connect play.thepitereq.ovh:28050

 

Shoppy Stock is a powerful and versatile economy system designed to enrich your Rust server with shops, stock markets, transfers, exchanges, and deposit features.
This plugin makes it easy to create multiple shops with unique currencies, set up dynamic stock markets with item listings, and manage a fully customizable server selling center—plus many more advanced options.

Plugin package (zip) contains:

  • ShoppyStock plugin
  • ShoppyConverter plugin (Converts 1.x config to 2.0 config)

 

VideoPreview.png.6049ff4d0a097a83a0dbed5e574ef1e4.png

 

PluginFeatures.png.6ca1b1668a77df970391677343c65fe3.png

Global

  • Includes over 17 detailed Rust-themed GUI windows.
  • Optimized for performance—actions are lightweight and won’t burden your server.
  • Highly expandable, limited only by your imagination.
  • Fully customizable popup messages through the PopUp API.
  • Comprehensive command and API support for currency management.
  • Full language support for all messages and items.
  • Supports NoEscape integration.
  • Complete UI color customization.
  • NPC interaction support for shops and stock markets.
  • Page memory feature remembers your position in the shop when reopened.
  • Deposit and withdraw currencies to and from items.
  • Currency exchange between different types.
  • Built-in currency leaderboard.

Shops

  • Create multiple shops, each using different currencies.
  • Easily import your old currency from other economy plugins.
  • Organize items into categories with custom icons for seamless browsing.
  • Unified search bar across all categories.
  • Buy exactly the amount of items you need.
  • Full custom item support.
  • If currency is item-based, allow deposits into the shop as virtual currency and withdrawals back to items.
  • Granular permission system configurable for each action.
  • Daily or wipe purchase limits.
  • Purchase cooldowns.
  • Configurable discount system.
  • Random offer rotations with customizable listings.
  • Progressive pricing — prices can increase by set values or multipliers on each purchase.

Stock Market

  • Create multiple markets with different currencies.
  • Favorite items tab for quick access.
  • Automatic listing of all vanilla Rust items with blacklist support.
  • Multiple sorting options for better market management.
  • Buy and sell request creation.
  • Configurable server sell price history.
  • Permission-based limits on how many listings each player can create.
  • Listings can be canceled, refunded, or returned to the market at no cost.
  • Customizable taxes on market actions.
  • Support for extra item info like durability and plant genes.
  • Timed price rolls to adjust prices at set hours.
  • Demand-based pricing that adjusts based on item popularity (DiscordCore required for messages).
  • Advanced selling center with a price calculator using over 15 variables (e.g., amount sold, online player count).
  • Stock Market Broker system—players can store or refund items, set alert prices, and even auto-sell resources while offline.
  • Custom categories and full custom item support.
  • Web API support for price checks or integration into server tools (requires web server).
  • Statistics module for fine-tuning your economy.
  • Timed listings with configurable availability durations.
  • Ability to buy back resources sold to the market.
  • Listing taxes based on listing time.
  • Dynamic price history graphs.
  • Individual configuration for server buy/sell offers per item.
  • Generation of historical price data.

Transfer

  • Send currencies to other players, whether they’re online or offline.
  • Configurable transfer limits and taxes.

 

Permissions.png.7983781a50f7dfe369513a3a6158a8a6.png

The following core permission is static and cannot be changed. However, the configuration files include hundreds of customizable permissions covering nearly every action.

  • shoppystock.admin - Grants full access to admin commands and management tools.

 

Commands.png.64c6eb8fd8ffcd9b7be025afe8276d7e.png

All commands can be fully customized in the configuration. Below are the default commands included with the plugin:

  • /shop or /s — Opens the main Shoppy Stock interface.
  • /adminshop — Opens the admin shop management panel. (Available in version 2.1)
  • /deposit — Opens the currency deposit inventory.
  • /mshop or /goldshop — Opens a specific shop.
  • /market — Opens the stock market interface for a specific currency (defaults to “money”).
  • /sell — Opens the sell inventory to sell items directly to the server (defaults to “money”).
  • /list — Opens the interface to list a new item on the stock market (defaults to “money”).
  • /bank — Opens the bank interface for a specific stock market (defaults to “money”).
  • /stockcode <code> — Displays a private listing using a code shared by the listing owner.
  • updateprices — Console command showing details on rolling or updating item prices in the stock market.

 

ImportantInfo.png.b4775d47538077d5eeb41234fd93409c.png

Shoppy Stock is packed with powerful features, and configuring everything the first time can feel overwhelming. 
This guide provides a quick walkthrough to help you get started and understand key parts of the plugin.

Optional Supported Currency Plugins

  • Economics
  • ServerRewards
  • BankSystem
  • IQEconomic

 

Moving from V1 to V2.
Shoppy Stock V2 has been almost completely rewritten from scratch, reusing less than 10% of the old code.
The new configuration is redesigned to be more intuitive and feature-rich.
To help you migrate, use the provided ShoppyConverter, which can convert about 95% of your old configs and data files to the new format.
After converting, always review your new configs carefully — V2 includes dozens of new options that won’t automatically adjust to your preferred settings.

How to convert:

  1. Place ShoppyConverter.cs in your plugins folder.
  2. Follow console instructions to move files to the required location.
  3. Run the conversion command as instructed.
  4. Once converted, place the new files in the correct folders as indicated.

 

Configuration Files

The plugin’s extensive features are divided across several files and folders:

  • /config/ShoppyStock.json
    Main config containing default settings for currencies, shops, stock markets, and global options.
  • /data/ShoppyStock/playersData.json
    Stores global plugin data and player currencies.
  • /data/ShoppyStock/Shops/Configs/<shopName>.json
    Shop configs, including available categories and items.
  • /data/ShoppyStock/Shops/Statistics/
    Data on daily limits, unique purchases, and more.
  • /data/ShoppyStock/StockMarkets/Configs/<stockName>.json
    Stock market configs.
  • /data/ShoppyStock/StockMarkets/Listings/
    Player buy and sell offers.
  • /data/ShoppyStock/StockMarkets/PlayerData/
    Alert data, favorites, banked items, etc.
  • /data/ShoppyStock/StockMarkets/PriceCache/
    Historical price data and current server sell prices.
  • /data/ShoppyStock/StockMarkets/Statistics/
    Data on items sold to the server and total currency earned.

 

Main Config Highlights

Web API
You can use the Web API to show market prices on your website.
Requires web hosting with PHP support.
Download apiupdate.php by CLICKING HERE.
Place it in the directory set by your “Web Price API - Link” config.
Make sure it has permission to create api.html.
The generated file will be accessible at <Web Price API - Link>/api.html.

 

Server-Selling Items → Default Sell Amount Calculation (DSAC)
DSAC helps define the average number of items sold in a period, based on your server’s player activity. The period is an one price roll time.
Example: a PvE x10 server with ~20–30 players might set wood’s DSAC to 1,800,000 — based on my some calculations, but adjust based on your own stats and server needs.

 

Always Run Timer on Hour Minute
Controls when the plugin rolls stock prices.
For example:

  • Values: 0, 30, 60 → rolls at x:00 or x:30.
  • Values: 0, 20, 40, 60 → rolls at x:00, x:20, or x:40.

 

Stock Market - Default Categories
By default, the stock market includes these categories:

  • Favourites
  • MyListings
  • Bank
  • AllItems

Use these codenames in your configs to customize display order.

 

Items - Custom Detail Info (skinId: languageKey)
You can add custom info tags in listings (similar to showing tool condition or clone genes).
For example, tag certain items as “Upgrade Ingredients.”

 

Redeem Inventory Name
Make sure to create a storage with this name in RedeemStorageAPI — otherwise, items from certain actions could disappear, and errors may occur.

 

Generating Shop Config With All Vanilla Items
To automatically add all vanilla RUST items to a shop:

  1. In /config/ShoppyStock.json, set Generate Config With All Default RUST Items to true in the desired shop section.
  2. Delete the existing shop config file in /data/ShoppyStock/Shops/Configs/.
  3. Reload the plugin—this will generate a new config containing all default items.

 

Shop Data Config Highlights

Shop Items - Commands
Supports few types of dynamic variables in commands:

  • {userId} → buyer’s Steam ID
  • {userName} → buyer’s nickname
  • {userPosX}, {userPosY}, {userPosZ} → buyer’s coordinates

 

CommunityQA.png.734f6eab85a5ada864da9e6d7c6f3ab0.png

A collection of answers to common questions about demand systems, price multipliers, stock market trends, and developer API.

 

Multiplier Events & Demand System
Q: How does the demand system work? What is “weight”?
A: The demand system uses “Multiplier Events” defined in the main config. Each event has a weight that determines its chance to be chosen during a price roll. How often demands appear is configured in your stock market file at: /data/ShoppyStock/StockMarket/Configs/<shopName>.json. Make sure names in the main config and stock market config match exactly.

Q: How do “minimal” and “maximal” work?
A: These define a range for random price multipliers.
Example: if minimal is 1.4 and maximal is 1.8, and the original price is 1.4, the final rolled multiplier might be ~1.685 → final price becomes ≈ 2.359.
If the random roll goes above max or below min, it’s clamped to min/max.

 

Stock Market - Timestamps & Trends
Q: What are timestamps used for?
A: The plugin stores historical price data which appears in charts for players with the correct permission.
Tip: set a reasonable timestamp retention value even if you don't plan to show players now—this lets you start collecting useful data early.

 

Data Folder, Stock Market Config
Q: Blocked Multiplier Listing Keys
A: Certain items you want excluded from permission price multipliers.

 

Price Calculator
Q: Price Change - Price Fluctuation Percentage
A: Adds random small price changes to keep the market realistic when no other events run.
Q: Price Change - Same Price Actions Min/Max
A: Controls how many rolls prices must go up or down in sequence, making trends look more natural.
Q: Price Change - Chances To Increment Based On Current Price Percentage
A: It's the chance to run the action listed above. It's made in "<price percentage>": <price increase chance (percentage)> format. It's made to make prices go higher more easily when they are low and harder when they are high.
Q: Price Drop - Amount Sell Values Penalty Multiplier
A: When many items are sold fast, price roll becomes negative × penalty multiplier, making it drop quicker.
Q: Price Drop - Amount Sold Max Price Penalty
A: If a huge amount of an item (e.g., 10000% of DSAC) is sold, price is locked to e.g., 25% of original value for a period (e.g., 24 price rolls).
Q: Price Increase - DSAC Not Achieved
A: When item demand is too low (<100% DSAC sold), price increases faster to encourage farming, e.g., by x1.5.
Q: Default Sell Amount Calculation - Players Online Multiplier
A: Automatically scales DSAC based on current player count (checked each price roll). Useful if online population varies greatly.
Q: Price Multipliers - Minimal Time Distance Between Events
A: Sets a cooldown between multiplier events to avoid price spikes.
Q: Price Multipliers - Chance To Appear Based On Sold Amount
A: Lets multipliers trigger more often when few or many items are sold.
Q: Price Multiplier Events
A: Defines how many price rolls the price-increase/decrease event should last.

 

Server Sell Items
Q: What is the price parent system?
A: Lets you set base items (e.g., Metal Ore) and refined items (e.g., Metal Fragments) so that fragments always stay more valuable than ore by a set difference, encouraging refining.

 

DeveloperAPI.png.67d3781658010dfb5c740dc9eedee53d.png

  • int GetCurrencyAmount(string shopName, BasePlayer player) - Returns player's balance rounded down to integeer. If not found returns 0.
  • int GetCurrencyAmount(string shopName, ulong userId) - Returns player's balance rounded down to integeer. If not found returns 0.
  • float GetCurrencyAmountFloat(string shopName, BasePlayer player) - Returns player's balance. If not found returns 0.
  • float GetCurrencyAmountFloat(string shopName, ulong userId) - Returns player's balance. If not found returns 0.
  • bool TakeCurrency(string shopName, BasePlayer player, int amount) - Takes player currency. Returns true if taken and false if not.
  • bool TakeCurrency(string shopName, BasePlayer player, float amount) - Takes player currency. Returns true if taken and false if not.
  • bool TakeCurrency(string shopName, ulong userId, int amount) - Takes player currency. Returns true if taken and false if not.
  • bool TakeCurrency(string shopName, ulong userId, float amount) - Takes player currency. Returns true if taken and false if not.
  • void GiveCurrency(string shopName, ulong sellerId, int amount) - Gives player currency.
  • void GiveCurrency(string shopName, ulong sellerId, float amount) - Gives player currency.
  • string FormatCurrency(string shopName, BasePlayer player) - Returns player's formatted balance.

 

AdditionalFiles.png.b72ea21df215a1e1521a2a9a8e273fdc.png

Video Configuration
Contains all configuration files shown on video.
My private configuration created for my purposes.
Note: many custom item features won’t work directly on your server—they're specific to the author’s private setup.

Example Configuration.zip

 

DefaultConfig.png.4e84950cfdf01d62144b6f4511163199.png

Default Main Config
CLICK HERE!

Default Shop Data Config
CLICK HERE!

Default Stock Market Data Config
CLICK HERE!

  • Like 1
  • Love 8

User Feedback

1.8m

Downloads

Total number of downloads.

8.5k

Customers

Total customers served.

128.2k

Files Sold

Total number of files sold.

2.7m

Payments Processed

Total payments processed.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.