suhturhn's Wishlist
-
Shoppy Stock
By ThePitereq in Plugins
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)
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.
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.
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.
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:
Place ShoppyConverter.cs in your plugins folder. Follow console instructions to move files to the required location. Run the conversion command as instructed. 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:
In /config/ShoppyStock.json, set Generate Config With All Default RUST Items to true in the desired shop section. Delete the existing shop config file in /data/ShoppyStock/Shops/Configs/. 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
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.
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.
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
Default Main Config
CLICK HERE!
Default Shop Data Config
CLICK HERE!
Default Stock Market Data Config
CLICK HERE!
-
Vote Map
Give your players ability to vote for their favorite map or alternatively gather feedback on
various custom maps to see if players are interested before buying them.
• FAQ
• Can I add as many maps as I want?
Yes, numbers of map you can have is unlimited, although I recommend using around 15-20.
• Do map votes wipes automatically?
Yes you can enable this option in config file. Every time you change map, votes will be wiped.
• Is there any limit for images?
No, you can use as many images as you want, but I advice you using smaller images. Avoid using images with
high resolution since plugin showing them in sizes 500x300 (image gallery) and 190x190 (thumbnail). You can
use online image resizers.
• ImageLibrary
While I listed it as optional dependency, I strongly suggest you to install this plugin. Not only it will significantly speed
up image loading in game but it will also preserve image quality for users with low gfx settings. If file size is above allowed
limit of ImgLibrary, you will get console error and image wont be cached into server. In this case, image will be loaded
directly from url.
When you load VoteMap plugin first time, ImageLibrary should start load order automatically. If not, reload ImageLibrary
and then reload VoteMap again or use console command "refreshallimages" .
• Discord Message
Broadcast winning map before the wipe into your discord server.
• Commands
• Map List Example (data/votemap/maplist.json)
• Vote Settings (config/VoteMap.json)
-
Crafts
Crafting system that allows you to create items, cars, vehicles, recyclers, etc!
Commands
craft open interface crafts.setwb [categories: cat1 cat2 ...] set new custom workbench
Permissions
You can set permission in config, for example:
"Permission (ex: crafts.use)": "crafts.use", crafts.setworkbench - allows you to use the "crafts.setwb" command (set custom workbenches)
Craft Types
Command Vehicle Item Recycler ModularCar
How to install a custom workbench
1. Spawn the workbench (for example, in RustEdit or a plugin) 2. In the game, go to him and use the command "crafts.setwb" and specify the necessary categories. Example: /crafts.setwb Misc 3. Go to config (oxide/config/Crafts.json) and configure this workbench (use SafeZone, workbench level, etc.)
VIDEO
FAQ
Q: Where can I see an example of a config?
A: Config
-
VirtualRecycler
VirtualRecycler Plugin
The VirtualRecycler Plugin, developed by M&B-Studios, is a powerful tool designed for Rust server administrators and VIP players. This plugin allows players to use virtual recycling machines to quickly and efficiently recycle their surplus items.
Features:
Commands: The plugin offers a set of chat commands that enable players to open and use their virtual recycling machine.
Permissions: Various permissions are supported, including:
virtualrecycler.use: Grants players permission to use the virtual recycling machine.
virtualrecycler.admin: Provides admins with instant recycling capabilities.
virtualrecycler.vip: Offers VIP players a customized recycling speed.
virtualrecycler.raidablebases: Allows players to open the VirtualRecycler only in the raidable bases
Automatic Recycling: When a player opens their virtual recycling machine, the recycling process starts automatically. The recycling speed may vary depending on permissions.
Ease of Use: Operating the virtual recycling machine is straightforward and user-friendly. Players can quickly and conveniently recycle their surplus items.
Efficient Management: The plugin offers efficient management of recycling machines, ensuring that each player can only use their own machine.
With the VirtualRecycler Plugin, you can enhance the recycling experience on your Rust server while simplifying the management and control of recycling machines.
If you have any questions or problems, join my discord
https://discord.gg/D2zTWCEnrN
{ "Commands": [ "vrec", "vr", "virtualrec", "vrecycler", "virtualrecycler" ], "DefaultPermission": "virtualrecycler.use", "DefaultSpeed": 1.0, "AutoStart": false, "PermissionSpeeds": { "virtualrecycler.admin": 0.1, "virtualrecycler.raidablebases": 0.5, "virtualrecycler.vip": 0.5 }, "StaticRecyclerSpeeds": { "virtualrecycler.static1": 1.0, "virtualrecycler.static2": 0.5, "virtualrecycler.vipstatic": 0.1 } }
-
Virtual Quarries
By ThePitereq in Plugins
RUST Plugin Test Server
TEST MY PLUGINS THERE!
connect play.thepitereq.ovh:28050
Virtual Quarries plugin is a major upgrade to quarries. You can create and place quarries that extract any type of resource and access them from anywhere on the map. Set up an infinite number of quarry types, apply custom quarry limits with a permission system, grant friends access to resource storage, upgrade your quarry to get more resources, customize survey items and fuel, and much more! You can even customize the static quarries on the map to be instanced, allowing each player to have their own quarry.
Extensive customization and enhancements for quarries. Place an infinite number of quarries of various types and give access to friends and teammates, including offline players. Customize the output for each quarry type, allowing them to dig anything from stone and ores to rockets and C4, with full support for skins and display names. The permission system lets you limit the number of quarries per player, and you can upgrade your quarries for better output, capacity, and fuel efficiency. The items required to place quarries can be customized based on the quarry's resource output. M ultiple types of survey charges, each corresponding to different quarry types. Full data merge through wipes. Responsive RUST-themed UI. Customizable fuel types for each quarry. Custom digging method ensures quarries dig once every 60 seconds by default to improve performance, but this frequency is configurable. Supports static quarries, pumpjacks, and the giant excavator pit, with instanced inventories for each player and customizable outputs.
virtualquarries.use - Allows you to open /qr menu. (Needs to be enabled in config) virtualquarries.share - Allows players to give other teammates access to their quarries. (Needs to be enabled in config) virtualquarries.static.quarry - Gives access to static quarries. (Needs to be enabled in config) virtualquarries.static.pumpjack - Gives access to static pump jacks. (Needs to be enabled in config) virtualquarries.static.excavator - Gives access to giant excavator. (Needs to be enabled in config)
/qr - Opens Virtual Quarry Menu. (Configurable)
Economy Plugin Config
0 - None 1 - Economics 2 - ServerRewards 3 - IQEconomic 4 - BankSystem 5 - ShoppyStock Quarry Limit Extra
You can limit sum of quarries by adding "*" into your permission list, so players can mix quarry profiles until they reach overall limit.
Example: "virtualquarries.default": { "*": 3, "pumpjack": 1 }, Based on regular configuration this setup will limit player to have 3 of any type of quarrym but only 1 pumpjack, so he can have 2 quarries and 1 pumpjack or 3 quarries and no pumpjack.
OnQuarryUpgraded(BasePlayer player, int quarryLevel, string quarryProfile) - Called when quarry is successfully upgraded. OnQuarryRemoved(BasePlayer player, string quarryProfile) - Called when quarry is successfully removed. OnCustomSurveyThrow(BasePlayer player, string quarryProfile) - Called when custom survey is successfully throwed. OnQuarryPlaced(BasePlayer player, string quarryProfile) - Called when quarry is succesfully placed.
Example Config
With additional quarry types, more upgrade levels etc. (my private configuration)
VirtualQuarries.json
{ "Command List": [ "qr", "quarry", "quarries", "vq", "virtualquarry", "virtualquarries" ], "UI Action Cooldown (in seconds, 0 to disable)": 0.0, "Enable Console Logs": true, "PopUpAPI - Preset Name": "Legacy", "Override Custom Skinned Items With Steam Icons (no URLs needed)": false, "Additional Steam Image Download": false, "Require Permission For Use": false, "Lock Access To Quarry Profiles If Lost Permission": false, "Mining Quarry/Pump Jack Limit Permissions": { "virtualquarries.default": { "pumpjack": 1, "quarry": 2 }, "virtualquarries.vip": { "pumpjack": 2, "quarry": 3 } }, "Sharing - Require Permission": false, "Sharing - Remove Members If Owner Offline More Than X Days (0, to disable)": 0, "Sharing - Share Only To Teammates": false, "Data - Enable Data Wipe On Server Wipe": false, "Data - Store Container Data In File And Restore On Server Wipe": false, "Data - Store Container Interval (in seconds)": 1800, "Quarry Tick (how often quarries dig resources, in seconds)": 60, "Static Quarry Tick (how often quarries dig resources, in seconds)": 60, "Excavator Quarry Tick (how often quarries dig resources, in seconds)": 60, "Storage Prefab": "assets/prefabs/deployable/large wood storage/box.wooden.large.prefab", "Sound - Start Sound": "assets/prefabs/npc/autoturret/effects/online.prefab", "Sound - Stop Sound": "assets/prefabs/npc/autoturret/effects/offline.prefab", "Survey Charge - Allow Throwing Survey Charges": false, "Survey Charget Types": { "survey": { "Effect Path": "assets/bundled/prefabs/fx/survey_explosion.prefab", "Required Permission (empty, if not required)": "", "Chance For Resources (0-100)": 75, "Displayed Survey Title Translation Key": "SurveyCharge", "Required Item": { "Shortname": "surveycharge", "Skin": 0, "Amount": 1, "Display Name": null, "Icon URL": "" } } }, "Upgrades - Used Economy Plugin (0 - None, See Website For More Info)": 0, "Upgrades - Economy Currency (If Economy Plugin Is 5 - ShoppyStock)": "rp", "Removing Quarries - Refund Items": true, "Removing Quarries - Refund Upgrades": false, "Go Back Button - Position (1-2)": 1, "Upgrade UI - Responsive Position": true, "Static Quarries - Enable": false, "Static Quarries - Disable Running Effect": false, "Excavator Quarry - Enable": false, "Excavator Quarry - Lock Air Drops": false, "Excavator Quarry - Resource Container Size": 18, "Excavator Quarry - Fuel Container Size": 6, "Static Quarries - Quarry Requires Permission": false, "Static Quarries - Pump Jack Requires Permission": false, "Static Quarries - Excavator Requires Permission": false, "Static Quarries - Resource Container Size": 18, "Static Quarries - Fuel Container Size": 6, "Static Quarries - Fuel Item": { "Shortname": "lowgradefuel", "Skin": 0, "Amount": 1.0, "Display Name": null, "Icon URL": null }, "Excavator Quarry - Fuel Item": { "Shortname": "diesel_barrel", "Skin": 0, "Amount": 1.0, "Display Name": null, "Icon URL": null }, "Static Quarries - Metal Quarry Output": [ { "Shortname": "stones", "Skin": 0, "Amount Per Tick": 150.0, "Display Name": "" }, { "Shortname": "metal.ore", "Skin": 0, "Amount Per Tick": 22.5, "Display Name": "" } ], "Static Quarries - Sulfur Quarry Output": [ { "Shortname": "sulfur.ore", "Skin": 0, "Amount Per Tick": 22.5, "Display Name": "" } ], "Static Quarries - HQM Quarry Output": [ { "Shortname": "hq.metal.ore", "Skin": 0, "Amount Per Tick": 1.5, "Display Name": "" } ], "Static Quarries - Pump Jack Output": [ { "Shortname": "crude.oil", "Skin": 0, "Amount Per Tick": 6.0, "Display Name": "" } ], "Static Quarries - Excavator Outputs": { "HQM": [ { "Shortname": "hq.metal.ore", "Skin": 0, "Amount Per Tick": 50.0, "Display Name": "" } ], "Metal": [ { "Shortname": "metal.fragments", "Skin": 0, "Amount Per Tick": 2500.0, "Display Name": "" } ], "Stone": [ { "Shortname": "stones", "Skin": 0, "Amount Per Tick": 5000.0, "Display Name": "" } ], "Sulfur": [ { "Shortname": "sulfur.ore", "Skin": 0, "Amount Per Tick": 1000.0, "Display Name": "" } ] }, "Quarry Profiles": { "pumpjack": { "Required Permission (empty, if not required)": "virtualquarries.pumpjack", "Displayed Icon": { "Shortname": "mining.pumpjack", "Skin": 0, "Amount": 1, "Display Name": null, "Icon URL": "" }, "Survey Type": "survey", "Displayed Quarry Title Translation Key": "PumpjackTitle", "Chance": 5, "Minimal Resources Per Node": 1, "Maximal Resources Per Node": 2, "Fuel Required Per Tick": { "Shortname": "lowgradefuel", "Skin": 0, "Amount": 1.0, "Display Name": null, "Icon URL": null }, "Enable Upgrades": true, "Items Required To Place": [ { "Shortname": "mining.pumpjack", "Skin": 0, "Amount": 1, "Display Name": null, "Icon URL": "" } ], "Resources": { "crude": { "Output Item - Shortname": "crude.oil", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": true, "Required Permission (empty if not required)": "", "Chance": 0, "Minimal Output Per Tick": 0.8, "Maximal Output Per Tick": 3.0, "Additional Items Required To Place": [] } }, "Upgrades": [ { "Required Items": [], "Required Currency (0 to disable)": 0, "Fuel Storage Capacity": 6, "Capacity": 6, "Gather Multiplier": 1.0, "Fuel Usage Multiplier": 1.0, "Additional Resources (Resources keys)": [] }, { "Required Items": [ { "Shortname": "wood", "Skin": 0, "Amount": 14000, "Display Name": null, "Icon URL": "" }, { "Shortname": "stones", "Skin": 0, "Amount": 10000, "Display Name": null, "Icon URL": "" } ], "Required Currency (0 to disable)": 12000, "Fuel Storage Capacity": 6, "Capacity": 9, "Gather Multiplier": 1.2, "Fuel Usage Multiplier": 1.0, "Additional Resources (Resources keys)": [] } ] }, "quarry": { "Required Permission (empty, if not required)": "", "Displayed Icon": { "Shortname": "mining.quarry", "Skin": 0, "Amount": 1, "Display Name": null, "Icon URL": "" }, "Survey Type": "survey", "Displayed Quarry Title Translation Key": "QuarryTitle", "Chance": 25, "Minimal Resources Per Node": 1, "Maximal Resources Per Node": 2, "Fuel Required Per Tick": { "Shortname": "lowgradefuel", "Skin": 0, "Amount": 1.0, "Display Name": null, "Icon URL": null }, "Enable Upgrades": true, "Items Required To Place": [ { "Shortname": "mining.quarry", "Skin": 0, "Amount": 1, "Display Name": null, "Icon URL": "" } ], "Resources": { "hq": { "Output Item - Shortname": "hq.metal.ore", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": false, "Required Permission (empty if not required)": "", "Chance": 10, "Minimal Output Per Tick": 0.3, "Maximal Output Per Tick": 2.0, "Additional Items Required To Place": [] }, "metal": { "Output Item - Shortname": "metal.ore", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": false, "Required Permission (empty if not required)": "virtualquarries.metal", "Chance": 50, "Minimal Output Per Tick": 22.5, "Maximal Output Per Tick": 45.0, "Additional Items Required To Place": [] }, "scrap": { "Output Item - Shortname": "scrap", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": false, "Required Permission (empty if not required)": "virtualquarries.scrap", "Chance": 5, "Minimal Output Per Tick": 0.1, "Maximal Output Per Tick": 1.0, "Additional Items Required To Place": [ { "Shortname": "wood", "Skin": 0, "Amount": 7000, "Display Name": null, "Icon URL": "" } ] }, "stone": { "Output Item - Shortname": "stones", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": true, "Required Permission (empty if not required)": "", "Chance": 0, "Minimal Output Per Tick": 150.0, "Maximal Output Per Tick": 300.0, "Additional Items Required To Place": [] }, "sulfur": { "Output Item - Shortname": "sulfur.ore", "Output Item - Skin": 0, "Output Item - Display Name": "", "Output Item - Icon URL (Required if Skin not 0)": "", "Include Always": false, "Required Permission (empty if not required)": "", "Chance": 50, "Minimal Output Per Tick": 15.0, "Maximal Output Per Tick": 30.5, "Additional Items Required To Place": [] } }, "Upgrades": [ { "Required Items": [], "Required Currency (0 to disable)": 0, "Fuel Storage Capacity": 6, "Capacity": 6, "Gather Multiplier": 1.0, "Fuel Usage Multiplier": 1.0, "Additional Resources (Resources keys)": [] }, { "Required Items": [ { "Shortname": "wood", "Skin": 0, "Amount": 7000, "Display Name": null, "Icon URL": "" }, { "Shortname": "stones", "Skin": 0, "Amount": 5000, "Display Name": null, "Icon URL": "" } ], "Required Currency (0 to disable)": 6000, "Fuel Storage Capacity": 6, "Capacity": 9, "Gather Multiplier": 1.2, "Fuel Usage Multiplier": 1.0, "Additional Resources (Resources keys)": [ "scrap" ] } ] } } }